iMACD()

 iMACD()関数は、MACD及びMACDシグナルの値を取得するために使用します(MACDの詳細については「こちら」を参照してください。)。

 iMACD()関数は、以下のように定義されています。

double iMACD(
string symbol,
int timeframe,
int fast_ema_period,
int slow_ema_period,
int signal_period,
int applied_price,
int mode,
int shift
);

 各引数の意味は、以下のとおりです。

  • string symbol
    MACDの値を計算する通貨ペア名を指定します。
    通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
    特定の通貨ペア名を指定せず、EA等を適用したチャートの通貨ペアのMACDの値を取得したい場合は「NULL」と記述します。
  • int timeframe
    以下の表に従って、MACDの値を計算する時間軸を指定します。

    timeframeの種類

    種 類
    定 数
    内 容
    PERIOD_CURRENT
    現在の時間足
    PERIOD_M1
    1分足
    PERIOD_M5
    5分足
    PERIOD_M15
    15
    15分足
    PERIOD_M30
    30
    30分足
    PERIOD_H1
    60
    1時間足
    PERIOD_H4
    240
    4時間足
    PERIOD_D1
    1440
    日 足
    PERIOD_W1
    10080
    週 足
    PERIOD_MN1
    43200
    月 足
  • int fast_ema_period
    短期指数移動平均線(EMA)の値を計算する期間を指定します。
    通常は「12」です。
  • int slow_ema_period
    長期指数移動平均線(EMA)の値を計算する期間を指定します。
    通常は「26」です。
  • int signal_period
    MACDシグナル線の値を計算する期間を指定します。
    通常は「9」です。
  • int applied_price
    以下の表に従って、短期及び長期指数移動平均線の値の計算に使用する価格データを指定します。

    計算に使用する価格データの種類

    種 類
    定数
    内 容
    PRICE_CLOSE
    終 値
    PRICE_OPEN
    始 値
    PRICE_HIGH
    高 値
    PRICE_LOW
    安 値
    PRICE_MEDIAN
    中央値

    (高値+安値)÷2
    PRICE_TYPICAL
    代表値

    (高値+安値+終値)÷3
    PRICE_WEIGHTED
    加重終値

    (高値+安値+終値+終値)÷4
  • int mode
    ライン番号を指定します。
    MACDの値を取得したい場合は「」と記述します。
    MACDシグナル線の値を取得したい場合は「」と記述します。
  • int shift
    MACDの値を取得したいバーの位置を指定します。
    MACDの値を取得したいバーが現在のバーであれば「」、1本前のバーであれば「」、2本前のバーであれば「」……と記述します。

具体例

 2本前のバーのMACDの値がシグナルの値以下で、1本前のバーのMACDの値がシグナルの値よりも大きい場合に、買いエントリーしたい場合は、以下のように記述します(MACDのパラメーター:短期EMA「12」、長期EMA「26」、MACDシグナル「9」)。


double MACD_1   = iMACD(NULL,0,12,26,9,0,0,1);
double MACD_2   = iMACD(NULL,0,12,26,9,0,0,2);
double Signal_1 = iMACD(NULL,0,12,26,9,0,1,1);
double Signal_2 = iMACD(NULL,0,12,26,9,0,1,2);

if(MACD_2 <= Signal_2 && MACD_1 > Signal_1)
  {
   int Ticket
   = OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,
               NULL,2525,0,Magenta);
  }
  • OrderSend()関数の詳細については「こちら」を参照してください。
  • Symbol()関数の詳細については「こちら」を参照してください。
  • Askの詳細については「こちら」を参照してください。

注意点

 MACDの開発者は、シグナル線をMACDの指数移動平均(EMA)として算出していますが、iMACD()関数で取得されるシグナル線の値は、MACDの値の単純移動平均(SMA)として算出されます。

 シグナル線をMACDの指数移動平均として算出したい場合は、「こちら」を参照してください。

関連インジケーター

リペイントしない見やすいMACD
見やすいMACD
見やすいMACD | fx-on.com

見やすいMACD
見やすいMACD | fx-on.com

 上記インジケーター(見やすいMACD見やすいMACD | fx-on.com)の詳細については「こちら見やすいMACD | fx-on.com」を参照してください。

関連EA

トレーディングの判断に使用している方が多い、RSIとMACDを基本にした短期順張りEAです。
Eagle_GBPCHF
Eagle_GBPCHF | fx-on.com

Eagle_GBPCHF
Eagle_GBPCHF | fx-on.com

 上記EA(Eagle_GBPCHFEagle_GBPCHF | fx-on.com)の詳細については「こちらEagle_GBPCHF | fx-on.com」を参照してください。


MT4の使い方からプログラミングまで、わかりやすく解説