【MT4】mql4での自作プログラムの作り方(その1)
この記事は自分でプログラムを作ってみたい方向けに作成しています。
インジゲータ新規作成の手順から、自分のエントリーポイントを表示させるところまでを目標に書いていきます。
プログラミングをするにあたってわからないであろうところはその都度説明していきます。
では早速作っていきましょう。
インジゲータファイルを作成する。
1 MT4を立ち上げる。
2 MetaEditorを立ち上げる(上の画像の赤丸をクリック)
上の画像のような画面が立ち上がります。
この画面でプログラムを書いていきます。
3 画面左上の新規作成をクリック
4 上図のカスタムインジゲータをチェックして「次へ」をクリック
5 上図に以下を入力し、「次へ」をクリック
・「名前」にインジゲータのタイトルを入力してください。
(今回はMY_Indicator)にしました。
・「著作者」は自分の名前かコードネームを書くとモチベーションが上がります。笑
・「リンク」はなんでもいいです。笑
6 上図の一番上にチェックを入れて「次へ」をクリック
7 上図に何もチェックせずに「完了」をクリック
とりあえずこれでインジゲータが出来上がりました。
これから上図にプログラムを書いていきます。
プログラムの構成の説明
新規作成をした段階ではプログラムを記述するところが大きく三つに分かれていますので、簡単に説明していきます。
・「#property」がいっぱい書かれているところ
ここにインジゲータをチャート挿入した時に出るパラメータの設定や、矢印を表示させるためのアイテム設定を書いていきます。
・「int OnInit()」と書かれているところ
ここはインジゲータをチャートに挿入した段階で一回だけ処理されるプログラムを書いていきます。
自分の公開しているインジゲータでいうところのチャートの矢印の設定や、勝率の表示部分の設定、ボタンの作成や位置決めとかです。
・「int OnCalclate」と書かれているところ
ここにメインのプログラムを書いていきます。
この部分に書いたプログラムはローソク足が動く度に実行されます。
とりあえず矢印を表示させるプログラムを書いてみる。
・「#property」といっぱい書かれているところ終わりに下記のプログラムを記述してください。(コピペではなく、なるべく自分で打ち込んでください。)
#property indicator_buffers 1 //矢印用一個作成(バッファー)
double BufDown_Arrow[]; //バッファー用配列
・入力が終わりましたら次に画面の上の中央ぐらいある「コンパイル」をクリックしてください。
「0 errors,0 warnings」と表示されていれば記述間違いなしです。
1以上のエラーが出ている場合は、
ースペルミス(打ち間違い)
ー「;」が「:」になっていないか
ー「全角スペース」を入力してしまっていないか(半角スペースを使わないとだめです。)
を確認してエラーが0になるまでコンパイルしてください。笑
以下、この作業はコンパイルしてください。とだけ記載していきます。
・「int OnInit()」のreturn(INIT_SUCCEEDED)の2つ上の行に下記のコードを入力して、コンパイルしてください。
SetIndexBuffer(0,BufDown_Arrow);//バッファーにバッファー用配列を割り当て
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,2,Yellow);//矢印を使う設定と色の設定
SetIndexArrow(0,234);//矢印の種類(下矢印)の設定
・「int OnCalclate」のreturn(rates_total);の2つ上の行に下記のコードを入力して、コンパイルしてください。
BufDown_Arrow[1] = High[1] + 5*Point;//一個前のローソク足の高値ちょい上に表示
これで完成です。
今回作成したインジゲータをMT4のチャートに挿入してみてください。
現在のローソク足の一個前に下矢印が表示されていると思います。
今日はここまで。
次回は今回記述したコードの説明をします。