FX自動売買 MT4のEAについてまとめてみた(EA作成~起動)

投資

次のような悩みがある方はぜひ見てください

EAを作成してみたいけど、やり方がわからない…
とりあえずEAを動かしてみたい

今回の記事はEAのファイル作成~EAの起動までをまとめました

EAファイルの新規作成

メタエディターを開く

EAを作成するためにメタエディターを開きます
画像の赤枠のアイコンをクリックしてください
見つからない場合は、ツール -> メタエディターか、F4で開くことができます

ファイル新規作成

新規作成をクリックします(画像①)
MQLウィザードが表示されますので、エキスパートアドバイザを選択し、次へをクリック(画像②)

EAの名前を決めて、次へをクリック
今回はexampleで作成しています

あとはデフォルトのままで完了までクリックします

次のような画面が出ていれば、EAの新規作成が完了しました

初期関数について

ファイルを作成すると、次の3つの関数が既に作成されています
それぞれの役割は次のようになります

  • OnInit()
  • OnDeinit()
  • OnTick()
OnInit()

初期化処理を行う関数です
EA適用時、MT4再起動時などのタイミングで動作します

OnDeinit()

終了処理を行う関数です
EA削除時やMT4を閉じる前などのタイミングで動作します

OnTick()

ティックが動くたびに動作します
基本的にはここで自動売買の動作を指定します

EAプログラミング~バックテスト

ファイルの新規作成ができたので、実際に自動売買のプログラムを作成していきます
今回は次のようなEAを作成していきます

  1. ローソク足が出現するたびに動作する
  2. 移動平均線の値とローソク足の始値を比較
  3. 移動平均線より始値のほうが低い場合売り、
    移動平均線より始値のほうが高い場合買いで注文を行う

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起動方法

  1. 画像のようにナビゲータから起動したいEAを、起動したいチャートへドラッグ&ドロップします

  2. 次のような画面がでてきますので、自動売買を許可するにチェックを入れてOKをクリック
  3. うまく起動している場合、チャートの右上にニコチャンマークが出ています
    自動売買を許可するにチェックを入れていない場合やEAがうまくいっていない場合、
    不機嫌そうなマークになります

EA停止方法

EAを停止する場合は、EAを起動しているチャート上で右クリック、
エキスパートアドバイザ -> 削除をクリックすることで停止できます

おすすめのサイト

EAを作成する際に、mql4(EAのプログラミング言語)の関数を調べたい場合次のサイトがおすすめです

 

コメント

タイトルとURLをコピーしました