MACD(iMACD)関数|MT4インディケータ

2024年10月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

MetaTrader 4(MT4)を使ったFX自動売買において、テクニカル指標の理解と活用は非常に重要です。この記事では、MACD(Moving Average Convergence Divergence)インディケータについて、初心者にもわかりやすく解説します。

MACD(Moving Average Convergence Divergence)とは?

MACDは、ジェラルド・アペルによって開発されたテクニカル指標で、移動平均の収束と発散を利用してトレンドの強さと方向性を評価します。MACDは、短期のEMA(指数移動平均)と長期のEMAの差を示し、シグナルラインと呼ばれるもう一つのEMAと比較することでトレードシグナルを生成します。

iMACDの計算方法

MT4では、MACDを計算するためにiMACD()関数を使用します。この関数は以下のように定義されています。

関数仕様
double iMACD(
    string symbol,        // 通貨ペア種類
    int timeframe,        // 時間軸種類
    int fast_ema_period,  // 短期EMAの期間
    int slow_ema_period,  // 長期EMAの期間
    int signal_period,    // シグナル線の期間
    int applied_price,    // 価格種類
    int mode,             // インディケータライン種類
    int shift             // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);

この関数は、指定された通貨ペアと時間軸におけるMACDの値を返します。

引数の説明

symbol
通貨ペアの種類を指定します。例えば、"EURUSD"や"GBPJPY"など。
timeframe
時間軸の種類を指定します。例えば、1分足(1)、5分足(5)、1時間足(60)など。
fast_ema_period
短期EMAの期間を指定します。
slow_ema_period
長期EMAの期間を指定します。
signal_period
シグナル線の期間を指定します。
applied_price
価格の種類を指定します。
  – `PRICE_CLOSE` – 終値
  – `PRICE_OPEN` – 始値
  – `PRICE_HIGH` – 高値
  – `PRICE_LOW` – 安値
  – `PRICE_MEDIAN` – (高値 + 安値) / 2
  – `PRICE_TYPICAL` – (高値 + 安値 + 終値) / 3
  – `PRICE_WEIGHTED` – (高値 + 安値 + 終値 * 2) / 4
mode
インディケータラインの種類を指定します。
– `MODE_MAIN` – MACDライン 
– `MODE_SIGNAL` – シグナルライン
shift
取得するバーの位置を指定します。0が最新のバーを表し、1以上の数値が過去のバーを表します。

サンプルコード

以下に、iMACD()関数を使用して最新のバーのMACD値を取得するサンプルコードを示します。

サンプルコード
// EURUSDの1時間足で最新のバーのMACD値を取得する例
double macd_value = iMACD(“EURUSD", PERIOD_H1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
Print(“EURUSDの1時間足の最新のMACD値: “, macd_value);

このサンプルコードでは、"EURUSD"の1時間足における最新のMACD値を取得し、ターミナルウィンドウに表示します。

以下は、MACDを使って買いシグナルや売りシグナルを判断する簡単な例です。

応用例
// EURUSDの1時間足でMACDを使って買いシグナルや売りシグナルを判断する例
double macd_main = iMACD(“EURUSD", PERIOD_H1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
double macd_signal = iMACD(“EURUSD", PERIOD_H1, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);

if (macd_main > macd_signal) {
    Print(“買いシグナル: MACDラインがシグナルラインを上回りました。");
} else if (macd_main < macd_signal) {
    Print(“売りシグナル: MACDラインがシグナルラインを下回りました。");
}

このコードは、MACDラインがシグナルラインを上回った場合に買いシグナルを、下回った場合に売りシグナルを生成します。

まとめ

MACD(iMACD)インディケータは、トレンドの強さと方向性を評価するための強力なツールです。MT4のiMACD()関数を使用することで、簡単にこのインディケータの値を取得し、トレード戦略に活用することができます。初心者の方も、この基本的な使い方を理解して、実際のトレードに応用してみてください。

MQL4

Posted by 佐川直弘