iMA()移動平均線のテンプレート[MT4][備忘録]

FX
スポンサーリンク

MT4のExpertAdvidor作成時の移動平均線のサンプルコードです。

MT4のEAで移動平均線を使うには、iMA()という関数を使います。

iMA()は以下のように記述されます。

double  iMA(
   string       symbol,           // 通貨ペア
   int          timeframe,        // 時間足
   int          ma_period,        // 計算期間
   int          ma_shift,         // 移動平均線シフト
   int          ma_method,        // 移動平均線計算方法
   int          applied_price,    // 適応価格
   int          shift             // シフト
   );

例えば、

double Ma = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

はチャート上の通貨ペア・時間足で5日の指数平滑移動平均線の現在のローソク(バー)より一本前の値を取得します。

また以下のように変数を変えることができます。

<スポンサーリンク>

timeframe0チャート上の時間足
PERIOD_M11分足
PERIOD_M55分足
PERIOD_M1515分足
PERIOD_M3030分足
PERIOD_H11時間足
PERIOD_H44時間足
PERIOD_D1日足
ma_methodMODE_EMA指数平滑移動平均
MODE_LWMA加重移動平均
MODE_SMA単純移動平均
MODE_SMMA平滑移動平均
applied_pricePRICE_CLOSE終値
PRICE_OPEN始値
PRICE_HIGH高値
PRICE_LOW安値
PRICE_MEDIAN高値と安値の中値
PRICE_TYPICAL(高値+安値+終値)/3
PRICE_WEIGHTED加重終値

 

以下のサンプルコードは、3本の移動平均線をより小次郎講師の移動平均線大循環分析を行いました。

//+------------------------------------------------------------------+
//| 移動平均線                                                        |
//+------------------------------------------------------------------+
int Circulation;
  
int EmaCirculation()
{
   double ema5  = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);
   double ema20 = iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,1);
   double ema40 = iMA(NULL,0,40,0,MODE_EMA,PRICE_CLOSE,1);
  
  if(ema5>ema20 && ema20>ema40)           Circulation=1;
  else if(ema20>ema5 && ema5>ema40)       Circulation=2;
  else if(ema20>ema40 && ema40>ema5)      Circulation=3;
  else if(ema40>ema20 && ema20>ema5)      Circulation=4;
  else if(ema40>ema5 && ema5>ema20)       Circulation=5;
  else if(ema5>ema40 && ema40>ema20)      Circulation=6;

  return(Circulation);
}

Circulationの中に移動平均線大循環の番号を格納して、他の関数内で使用できるようにしてあります。

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