次のような悩みがある方はぜひ見てください
EAを作成してみたいけど、やり方がわからない…
とりあえずEAを動かしてみたい
今回の記事はEAのファイル作成~EAの起動までをまとめました
EAファイルの新規作成
メタエディターを開く
EAを作成するためにメタエディターを開きます
画像の赤枠のアイコンをクリックしてください
見つからない場合は、ツール -> メタエディターか、F4で開くことができます
ファイル新規作成
新規作成をクリックします(画像①)
MQLウィザードが表示されますので、エキスパートアドバイザを選択し、次へをクリック(画像②)
EAの名前を決めて、次へをクリック
今回はexampleで作成しています
あとはデフォルトのままで完了までクリックします
次のような画面が出ていれば、EAの新規作成が完了しました
初期関数について
ファイルを作成すると、次の3つの関数が既に作成されています
それぞれの役割は次のようになります
- OnInit()
- OnDeinit()
- OnTick()
初期化処理を行う関数です
EA適用時、MT4再起動時などのタイミングで動作します
終了処理を行う関数です
EA削除時やMT4を閉じる前などのタイミングで動作します
ティックが動くたびに動作します
基本的にはここで自動売買の動作を指定します
EAプログラミング~バックテスト
ファイルの新規作成ができたので、実際に自動売買のプログラムを作成していきます
今回は次のようなEAを作成していきます
- ローソク足が出現するたびに動作する
- 移動平均線の値とローソク足の始値を比較
- 移動平均線より始値のほうが低い場合売り、
移動平均線より始値のほうが高い場合買いで注文を行う
EAコード
実際のコードになります
OnTick()の部分を次のように書き換えてください
OnInit()、OnDeinit()部分は変更はないので、そのままで大丈夫です
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
//ローソク足が新しく出たかを判定するための変数
int Volume_check=0;
void OnTick(){
//ローソク足が新しく出たか判定
if (Volume[0]<Volume_check) {
//移動平均25の値を取得
double SMA25 = iMA(NULL,0,25,0,MODE_SMA,PRICE_CLOSE,1);
//始値を取得
double op0=iOpen(NULL,0,0);
//移動平均値と始値を比較
if(SMA25>op0){
//移動平均>始値の場合、売りを注文
OrderSend(Symbol(),1,0.1,Bid,10,Bid+0.2,Bid-0.2,NULL,0,0,Magenta);
}else{
//移動平均<始値の場合、買いを注文
OrderSend(Symbol(),0,0.1,Ask,10,Ask-0.2,Ask+0.2,NULL,0,0,Magenta);
}
Volume_check=0;
}else{
Volume_check=Volume[0];
}
}
//+------------------------------------------------------------------+
EAバックテスト結果
作成したEAでバックテストを行いました
次が結果となります
ジグザグしていますが、一応プラスみたいです!
EAファイルの保存場所
作成したEAファイルは、次の場所で確認できます
- メタエディターの場合
ナビゲータのExpertsで保存されているEAを見ることができます
- エクスプローラーの場合
ファイル -> データフォルダを開くをクリックするとエクスプローラーが開きます
エクスプローラーでMQL4 -> Expertsを開くと保存されているEAを見ることができます
※インジケータを見たい場合は、ExpertsではなくIndicatorsを開くことで見ることができます
スクリプトであれば、Scriptsです
もしどこかからダウンロードしたEAやインジケータを使用したい場合は、
エクスプローラーでExperts、Indicatorsを開き、ダウンロードしたEA、インジケータを保存することで使用できます
EA起動
EA起動方法
- 画像のようにナビゲータから起動したいEAを、起動したいチャートへドラッグ&ドロップします
- 次のような画面がでてきますので、自動売買を許可するにチェックを入れてOKをクリック
- うまく起動している場合、チャートの右上にニコチャンマークが出ています
自動売買を許可するにチェックを入れていない場合やEAがうまくいっていない場合、
不機嫌そうなマークになります
EA停止方法
EAを停止する場合は、EAを起動しているチャート上で右クリック、
エキスパートアドバイザ -> 削除をクリックすることで停止できます
おすすめのサイト
EAを作成する際に、mql4(EAのプログラミング言語)の関数を調べたい場合次のサイトがおすすめです
- MT4でEA自作しちゃお~
情報が網羅的にあるので、とりあえず調べるのに役立ちます - MT4-TRADERS
上記サイトより関数などの情報は少ないですが、
私はこちらの説明文が好みです
終わり
今回はEAの作成~起動までをまとめました
バックテストのやり方などは下の記事で書いていますので、ぜひ見てみてください
コメント