MT5のMACDの使い方|シグナル線がSMAで他ツールと違う点
MACDは、期間の違う2本のEMAの差を線にしたオシレーターです。トレンドの向きと勢いを同時に見る目的で使われます。
ただしMT5のMACDには、知らないと混乱する仕様が1つあります。シグナル線がEMAではなくSMA(単純移動平均)で計算されている点です。このため、TradingViewなど他のツールと数値が一致しません。
この記事では、計算式を公式ドキュメントで確認したうえで、その差がどこから来るのか、MT5での表示手順、MQL5から扱う書き方までを扱います。
(確認環境:MetaTrader 5 / Windows 11)
MACDは2本のEMAの差
MACDの本体(MACDライン)は、短期EMAから長期EMAを引いた値です。2本が離れるほど値が大きくなり、近づくほどゼロに寄ります。
これに、MACDライン自体を平均したシグナル線を重ねます。2本の関係と、ゼロラインとの位置関係を見るのが基本的な使い方です。
MT5のシグナル線はSMAで計算されている
MetaTrader 5 の公式ヘルプには、次のように記載されています。
MACD = EMA(CLOSE,12) - EMA(CLOSE,26)
SIGNAL = SMA(MACD, 9)
本体は12と26のEMAの差で、これは一般的なMACDと同じです。違うのはシグナル線で、MT5は SMA(MACD, 9) を使っています。
MACDを考案したジェラルド・アペル氏の定義では、シグナル線もMACDラインのEMAです。多くのチャートツールはこちらを採用しています。
| MACDライン | シグナル線 | |
|---|---|---|
| MT5の標準MACD | EMA(12) − EMA(26) | SMA(MACD, 9) |
| 一般的なMACD | EMA(12) − EMA(26) | EMA(MACD, 9) |
何が起きるか
シグナル線の計算が違えば、クロスするタイミングがずれます。SMAはEMAより反応が遅いため、MT5のMACDは他ツールよりクロスが遅れて出ることがあります。
「MT5とスマホアプリでMACDのクロス位置が違う」「解説記事の通りにならない」という状態の原因は、多くの場合ここにあります。設定ミスではありません。
どう扱うか
- MT5の中だけで完結させる — 他ツールと比べないなら実害はありません
- EMAシグナル版のカスタムインジケーターを入れる — 配布されているものを使う
- 自分で書く — シグナル線を
iMAで EMA として計算し直す
どれを選ぶかは、他のツールと突き合わせる必要があるかどうかで決まります。MT5だけで判断するなら、標準のままで問題ありません。
MT5でMACDを表示する手順
- メニューの「挿入」→「インディケータ」→「オシレーター」→「MACD」を選ぶ
- 「短期EMA期間」「長期EMA期間」「シグナル期間」を確認する(初期値は12・26・9)
- 「適用価格」を選ぶ(通常は Close price)
- 「OK」を押す
MACDはサブウィンドウに表示されます。チャート本体には重ならないため、ローソク足の表示領域は狭くなります。
追加したのに表示されない場合は、MT5でインジケーターの初期値を変更しても反映されない理由を確認してください。再コンパイルしても既存チャートの設定は引き継がれるため、値を変えたつもりが変わっていないことがあります。
基本的な読み方
| 状態 | 一般的な解釈 |
|---|---|
| MACDがゼロラインより上 | 短期EMAが長期EMAより上=上向きの状態 |
| MACDがゼロラインより下 | 短期EMAが長期EMAより下=下向きの状態 |
| MACDがシグナルを上抜け | 勢いが上向きに変わった可能性 |
| MACDがシグナルを下抜け | 勢いが下向きに変わった可能性 |
| 価格とMACDの高値・安値が逆行 | ダイバージェンス。勢いの減衰とされる |
いずれも一般にそう解釈されるという話であり、そうなることが決まっているわけではありません。特にレンジ相場ではゼロライン付近でクロスを繰り返し、判断材料になりません。
MACDの弱点
- 遅行する — EMAの差を、さらに平均した指標なので、価格より遅れる
- レンジに弱い — ゼロライン付近で細かくクロスし、ダマシが増える
- 絶対値を比較できない — 価格水準が違う銘柄同士でMACDの数値を比べても意味がない
3つ目は見落とされがちです。MACDは価格の差をそのまま表すため、ドル円とゴールドのMACDの値を並べても比較になりません。
MQL5からMACDを使う場合
EAやインジケーターから値を取る場合は iMACD を使います。
int handle = iMACD(_Symbol, _Period, 12, 26, 9, PRICE_CLOSE);
double main[], signal[];
CopyBuffer(handle, 0, 0, 100, main); // 0 = MAIN_LINE
CopyBuffer(handle, 1, 0, 100, signal); // 1 = SIGNAL_LINE
引数は銘柄・時間足・短期EMA期間・長期EMA期間・シグナル期間・適用価格の順です。バッファ番号は公式ドキュメントに「0 - MAIN_LINE, 1 - SIGNAL_LINE」と明記されています(MQL5リファレンス iMACD)。
この signal も、前述のとおりSMAで計算された値です。EMAのシグナルが必要なら、main を自分で iMA に通し直す必要があります。
値が取得できない場合は、MQL5でiCustom・CopyBufferの値が取れない原因で切り分け手順をまとめています。
まとめ
- MACDは短期EMAと長期EMAの差。シグナル線はそれを平均したもの
- MT5のシグナル線はSMA。一般的なMACD(EMA)とはクロス位置がずれる
- 他ツールと比べないなら、標準設定のままで問題ない
- レンジではクロスを繰り返すため、単独では判断材料にならない
- MQL5では
iMACD、バッファは 0 が MAIN、1 が SIGNAL
MACDの土台になっているEMAそのものの設定は、MT5でEMAを設定する方法にまとめています。
本記事は指標の計算方法と操作手順を説明したものであり、特定の売買を推奨するものではありません。投資判断はご自身の責任で行ってください。テクニカル指標は相場の状態を可視化する道具であり、将来の値動きや取引の成果を保証するものではありません。


