EA、インジケータの作り方講座 第2回 インジケータとプログラム

初期生成されたプログラムの解説

これは、インジの新規作成で生成されたプログラムです。処理は一切入っておらず空の状態です。

1番左の行番号に対応する形で、詳しく説明していきます。

行番号 説明 重要度
1~5 //(スラッシュ2つ)から始まっている行は、コメントを意味します。

コメントには、プログラムの処理の説明などメモ書きのように使用します。

プログラムには全く影響を与えませんので、消去しても問題ありません。

ここでは、ファイル名や著作者、リンクがコメントとして自動的に初期挿入されています。先ほどインジの新規作成のチュートリアルで入力したものですね。

6 #propertyはプログラムの情報などを定義するときに使う、お決まりの文言です。#propertyの後でどういった情報を宣言するのか指定します。

ここでは、copyrightと指定して、著作者を宣言することを表しています。

著作者が”PATA”であることを宣言しています。

7 ここでは、linkと指定して、リンク先を宣言することを表しています。

リンク先が”http://patafx.blog.fc2.com/”であることを宣言しています。

8 ここでは、versionと指定して、プログラムのバージョンを宣言することを表しています。

バージョンが”1.00”であることを宣言しています。

9 ここでは、strictと指定して、コンパイルのモードを宣言しています。
10 ここでは、indicator_chart_windowと指定して、メインのチャートウィンドウにインジを表示させることを宣言しています。。
6~10 6~8については、どの部分に影響が表れるのか後で説明しますが、記述していなくてもプログラムに影響はありません。

9は、詳細については難しいので説明は避けますが、どのプログラムでも必ず記述するようにしてください。

10は、別の章にて説明しますので、今回はスルーでお願いします。

11~13

16,18

21~23

35,37

,40

ただのコメントです。消去しても問題ありません。
14~20 OnInit()はインジをチャートに挿入した際、最初に一度処理されます。

15と20の{ }の間にプログラムを記述します。

24~39 OnCalculate(…)はチャートにレートが配信される(価格が変動する)都度、処理されます。

34と39の{ }の間にプログラムを記述します。

コンパイルの実行

コンパイルとは、簡単に言えばプログラムファイルから実行ファイルを生成することです。

mq4ファイルは人間が解読可能なプログラムファイルであり、MetaEditorで作成・修正が可能ですが、ex4ファイルはMT4上で動作させるための実行ファイルであり、人間は解読不可能であるため修正はできません。

それでは、初期生成されたプログラムをコンパイルしてみましょう。

ファイルを修正した場合は、赤丸のアイコンをクリックして保存します。

保存アイコンがグレーになったことを確認して、コンパイルをクリックします。

「ツールボックス」が表示され、「エラー」タブで赤丸部分のように0 errorであればコンパイル成功です。

インジがMT4に追加されたことの確認

コンパイルすることでHelloMT4.ex4ファイルが生成され、MT4でカスタム・インディケータとして認識されます。

MT4の画面で確認してみましょう。

MT4を起動させて、チャートを開いていない場合は、適当な通貨ペアのチャートを開きます。

メニューバーから「挿入」-「インディケータ」-「カスタム」を選び、その中に「HelloMT4」が存在することを確認します(アルファベット順に並んでいます)。

「HelloMT4」を選択してみてください。

「HelloMT4」のプロパティが表示されます。

「1.00」というのはバージョン情報で、プログラムの8行目の記述が反映されています。

さらに、その下の赤丸には著作者が記載されていて、カーソルをそこに合わせてリンクをクリックしてみてください。

ブラウザが起動し、プログラムの7行目に記述したURLへと移動します。

#propertyの宣言がここに反映されていることが分かります。

今回は、「OK」をクリックしてインディケータを挿入します。

まだ、プログラムに処理は入れていませんので、画面上は何の変化もありません。

mq4ファイルとex4ファイルの保存場所

メニューバーから「ファイル」-「データフォルダを開く」をクリックします。

「MQL4」フォルダ-「Indicators」フォルダにファイルが保存されていますね。

MT4では、このフォルダにあるex4ファイルをカスタム・インディケータとして認識していますので、覚えておいてください。