ゴールデンクロスとデッドクロスでエントリーするEA
ゴールデンクロスとデッドクロスでエントリーするEAを作成します。
メタエディタ(MetaEditor)を立ち上げる
メタエディタ(MetaEditor)を立ち上げましょう。今回は名前を「GC-DC」で作成します。
パラメーターを記述する
パラメーターを記述しましょう。
input int TakeProfit = 5;//利確 input double Lots = 0.01;//ロット数 input int MagicNumber = 12345;//マジックナンバー
Copy
OnTick()関数を記述する
OnTick()関数を記述しましょう。
まず、はじめに移動平均線を格納する変数を作成します。
double kakoMA50,kakoMA100; double genMA50,genMA100;
次にそれぞれの変数にiMA関数の値を代入します。シフトで1つ前の足かどうかの違いになります。
kakoMA50 = iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,1); kakoMA100 = iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,1); genMA50 = iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,0); genMA100= iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,0);
ゴールデンクロスしている条件を記載します。
if(kakoMA50 <= kakoMA100 && genMA50 > genMA100)
条件が合えば、ロングのポジションを持ちます。
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10,"Order Long",MagicNumber,0,Red);
ショートエントリーも同様にデッドクロスしているかの条件を記載します。
if(kakoMA50 >= kakoMA100 && genMA50 < genMA100)
条件が満たされていればショートのポジションを持ちます。
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*10,"Order Short",MagicNumber,0,Blue);
これで、OnTick()関数は完了です。
double kakoMA50,kakoMA100;//過去MA50,過去MA100 double genMA50,genMA100;//現在MA50,現在MA100 kakoMA50 = iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,1);//1つ前の50日線 kakoMA100 = iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,1);//1つ前の100MA genMA50 = iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,0);//現在の50MA genMA100= iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,0);//現在の100MA if(kakoMA50 <= kakoMA100 && genMA50 > genMA100)//もし50日移動平均線が100日線を下から上にクロスしたら(ゴールデンクロス) { OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10,"Order Long",MagicNumber,0,Red);//ロングエントリー } if(kakoMA50 >= kakoMA100 && genMA50 < genMA100)//もし50日移動平均線が100日線を上から下にクロスしたら(デッドクロス) { OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*10,"Order Short",MagicNumber,0,Blue);//ショートエントリー }
Copy
ソースコード全体
//+------------------------------------------------------------------+ //| GC-DC.mq4 | //| Copyright 2020, FX-EA System Project Creator | //| https://creator.fx-ea-system-project.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, FX-EA System Project Creator" #property link "https://creator.fx-ea-system-project.com/" #property version "1.00" #property strict /*パラメーター*/ input int TakeProfit = 5;//利確 input double Lots = 0.01;//ロット数 input int MagicNumber = 12345;//マジックナンバー //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double kakoMA50,kakoMA100;//過去MA50,過去MA100 double genMA50,genMA100;//現在MA50,現在MA100 kakoMA50 = iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,1);//1つ前の50日線 kakoMA100 = iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,1);//1つ前の100MA genMA50 = iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,0);//現在の50MA genMA100= iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,0);//現在の100MA if(kakoMA50 <= kakoMA100 && genMA50 > genMA100)//もし50日移動平均線が100日線を下から上にクロスしたら(ゴールデンクロス) { OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10,"Order Long",MagicNumber,0,Red);//ロングエントリー } if(kakoMA50 >= kakoMA100 && genMA50 < genMA100)//もし50日移動平均線が100日線を上から下にクロスしたら(デッドクロス) { OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*10,"Order Short",MagicNumber,0,Blue);//ショートエントリー } } //+------------------------------------------------------------------+
Copy
コメント
[…] 【MQL】ゴールデンクロスとデッドクロスでエントリーするEA【初級編】 […]