ゴールデンクロスとデッドクロスでエントリーする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【初級編】 […]