FX-EA System Projectはこちら公式ラインに登録して
プレゼントをもらう

【MQL】RSIが70以上か30未満で逆張りトレードするEA【初級編】

MQL MT4 RSI 70以上 30未満 逆張りトレード EAMT4EA作成

RSIが70以上か30未満で逆張りトレードするEA

RSIが70以上か30未満で逆張りトレードするEAを作成したいと思います。

メタエディタ(MetaEditor)を立ち上げる

メタエディタ(MetaEditor)を立ち上げましょう。今回は名前を「RSI-7030」で作成します。

パラメーターを記述する

パラメーターを記述しましょう。

input int TakeProfit = 5;//利確(pips)。
input double Lots = 0.01;//ロット数
input int MagicNumber = 12345;//マジックナンバー
Copy

OnTick()関数を記述する

OnTick()関数を記述しましょう。

まず、OrdersTotal()でポジションが0なのを確認してRSIが30以下の場合という条件にします。

if(iRSI(Symbol(),0,14,PRICE_CLOSE,0) < 30 && OrdersTotal() == 0)

条件を満たしていればロングのポジションを持ちます。

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10,"Order Long",MagicNumber,0,Lime);

ショートエントリーも同様にOrdersTotal()でポジションが0なのを確認して70以上の場合という条件にします。

 if(iRSI(Symbol(),0,14,PRICE_CLOSE,0) > 70 && OrdersTotal() == 0)

条件が満たされていればショートのポジションを持ちます。

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*10,"Order Short",MagicNumber,0,Red);

これでOnTick()関数は完了です。

   if(iRSI(Symbol(),0,14,PRICE_CLOSE,0) < 30 && OrdersTotal() == 0) //RSIが30以下でオーダーが0の時
  {
     OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10,"Order Long",MagicNumber,0,Lime); 
   } 
   if(iRSI(Symbol(),0,14,PRICE_CLOSE,0) > 70 && OrdersTotal() == 0)//RSIが70以上でオーダーが0の時
   {
     TOrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*10,"Order Short",MagicNumber,0,Red);
   }
  }
Copy

ソースコード全体

//+------------------------------------------------------------------+
//|                                                     RSI-7030.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;//利確(pips)。
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()
  {
//---
   if(iRSI(Symbol(),0,14,PRICE_CLOSE,0) < 30 && OrdersTotal() == 0) //RSIが30以下でオーダーが0の時
  {
     OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10,"Order Long",MagicNumber,0,Lime); 
   } 
   if(iRSI(Symbol(),0,14,PRICE_CLOSE,0) > 70 && OrdersTotal() == 0)//RSIが70以上でオーダーが0の時
   {
     OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*10,"Order Short",MagicNumber,0,Red);
   }
  }
//+------------------------------------------------------------------+
Copy

まとめ

コメント

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