MT4EAを今後自作していきたい方にとって、当サイトではできるだけわかりやすくEAの作り方を紹介していきます。
なお、基本的には公式サイトMQL5の情報を1次情報としながら紹介していきます。
MQL4言語はMT4用の開発言語で、現在は積極的な更新はされていません。
メタクウォーツ社はMT5への移行を積極的に進めているためです。しかし、2019年時点で日本の国内FX業者はMT4の取扱のみのため、公開前提であればMQL4の学習が必要となります。
EA処理のフローチャート
EAは基本的に以下のようなフローチャートに従って動きます。
プログラムは値段が動く度にトレードチャンスがあるかをチェックするのです。
- まずはマーケットがオープンしているかを確認。
- マーケットがオープンの場合、トレードチャンスかどうかを確認する。チャンスならトレードへ、チャンスがないなら最初に戻ります。
- トレード実行はエントリーとエグジットがあります。エグジットするまで完了しません。
- エントリー後は完了していないのでまた、スタートから処理を開始します。
- 最終的に、エグジットまで行けば終わりです。
毎回、プログラムを書く時は自分が今何をしているかを思い出しながら書いてみてくださいね。
1. MetaEditorを起動する
MT4を起動し、「ツール」>「メタエディター(MetaEditor)」からMQL4を編集するためのエディターを起動します。
MetaEditorから新規EAを作成する
メタエディター(MetaEditor)が起動したら早速EAを作るためのテンプレートを新規で作成します。
「新規作成」よりMQLウィザードを立ち上げます。
今回はEAを作るので、エキスパートアドバイザ(テンプレート)を選択します。
MQL ウィザードの一般プロパティは、EAの名前やパラメータを作成します。
今回は、EAの名前と、パラメータ用のデータを設定しましょう。
今回はストップロス用のパラメータとして、StopLossをIntタイプで設定します。初期値は30としておきましょう。
イベントハンドラは特にチェックは不要です。
チェックするとそれぞれの関数が初期テンプレートに記載されます。
こちらも同様にチェック不要。
コンパイルをして実行ファイルを作成する
まずは、ほとんど空っぽのソースコードをコンパイル(実行ファイルを作成する作業)して、実行用のファイルを作ってみましょう。
メニューないにある「コンパイル」をクリック
コンパイルをすると、下のツールボックスに0 errorと表示されるはずです。
エラーがない場合、コンパイルが完成して実行ファイルが作成された事を意味します。
それぞれファイルはこの様になります。
- sample.ex4 : 実行ファイル(実際にMT4で設定するファイル。コンパイルするとできる)
- sample.mq4 : ソースコードファイル(エディターで編集しているのはこれ。)
せっかくなので、実際に設定できるか確認してみましょう。
MT4へ行きます。「ナビゲーター」のエキスパートアドバイザーを右クリックして更新をします。
すると、先程作成したEAが表示されますので、ドラッグアンドドロップ。
エキスパートアドバイザーをドラッグすると、設定画面が表示されます。
パラメーターを見てみましょう。最初に作成したStopLossが設定されていることがわかります。
これが、よくあるEAのパラメーター設定と同じ意味になります。
今回はストップロスだけですが、スプレッドの設定や、週末前決済のON/OFFなどはここからユーザー側で更新できるようにしてあげると便利ですね。
OKを押して追加すると・・・
出ました!よくあるEAのマークですね^^
初期mq4ファイルの中身を解説
初期ファイルは以下のようなソースコードになります。
ソースコード内にコメントをしていますが、メインの処理はOnTickに記載していきます。
ここで、Tickが動く毎に処理が実行されていきます。
次回以降は、この初期ソースコードに順番にロジックを追加していきたいと思います。