MACD(Moving Average Convergence Divergence)
MACD は、2本の EMA の差からトレンドの方向、勢い、転換兆候を捉えるモメンタム指標です。単体で使うより、上位足の方向確認、時間帯別の勢い確認、価格構造との照合に使うのが実践的です。

架空データによるイメージ図(実際の相場データではありません)。下段が MACD(12, 26, 9)。ヒストグラムのゼロ転換とラインのクロスが確認できる。
定義
MACD は短期 EMA と長期 EMA の差を使います。終値を 、期間 の EMA を とします。
Appel 標準では短期を 12、長期を 26、シグナルを 9 とします。
MACD ライン
短期 EMA から長期 EMA を引きます。
- 0 より上なら短期 EMA が長期 EMA を上回る
- 0 より下なら短期 EMA が長期 EMA を下回る
- 値の拡大は短期方向の勢いを示す
シグナルライン
MACD ラインを 9 期間 EMA で平滑化します。
- MACD ラインより遅れて動く
- クロス判定の基準線として使う
- ノイズを減らす代わりに反応は遅れる
ヒストグラム
MACD ラインとシグナルラインの差です。
- プラスなら MACD がシグナルを上回る
- マイナスなら MACD がシグナルを下回る
- 拡大は勢いの加速、縮小は勢いの鈍化を示す
パラメータ
| パラメータ | 標準値 | 意味 | 主な用途 |
|---|---|---|---|
| Fast EMA | 12 | 短期の価格変化に反応する EMA | 直近の勢い |
| Slow EMA | 26 | 中期の価格変化を平滑化する EMA | トレンドの基準 |
| Signal EMA | 9 | MACD ラインを平滑化する EMA | クロス判定 |
| Histogram | MACD − Signal | MACD とシグナルの差 | 勢いの増減 |
基本は MACD(12, 26, 9) を使います。標準値は多くのチャートで初期設定になっており、市場参加者の視線が集まりやすいためです。
短期売買では (5, 20, 9) や (8, 17, 9) のように反応を速める設定もあります。ただし USD/JPY の 5分足や 15分足で過度に短くすると、東京時間の薄い値動きでダマシが増えます。期間を変える場合は、勝率ではなく損益比率、最大ドローダウン、取引回数の増加を同時に確認します。
シグナル
シグナルラインクロス
- 買いシグナル:MACD ラインがシグナルラインを下から上抜け
- 売りシグナル:MACD ラインがシグナルラインを上から下抜け
- ゼロライン付近のクロスは方向転換として使いやすい
- ゼロラインから遠い位置のクロスは利確、反転警戒として扱う
クロス単体でエントリーしないこと。上位足の方向、直近高値/安値の更新、サポート/レジスタンスを同時に確認します。
ゼロラインクロス
- MACD が 0 を上抜け:短期 EMA が長期 EMA を上回り、上方向の地合いに移る
- MACD が 0 を下抜け:短期 EMA が長期 EMA を下回り、下方向の地合いに移る
- シグナルラインクロスより遅いが、トレンド確認としては強い
USD/JPY の 1H でゼロライン上を維持している間は、5M / 15M の押し目買いを優先します。ゼロライン下を維持している間は戻り売りを優先します。
ヒストグラムの拡大と縮小
ヒストグラムは勢いの変化を早めに見るために使います。
買い方向
- ヒストグラムがマイナス圏で縮小
- MACD ラインがシグナルラインに接近
- ヒストグラムがプラス転換
- 価格が直近高値を上抜け
売り方向は 1–4 の反転。
ヒストグラムの縮小だけで逆張りしないこと。縮小は「勢いの鈍化」であり、「反転の確定」ではありません。
ダイバージェンス
価格と MACD の方向が食い違う状態です。
- 強気ダイバージェンス:価格が安値を切り下げる一方、MACD は安値を切り上げる
- 弱気ダイバージェンス:価格が高値を切り上げる一方、MACD は高値を切り下げる
ダイバージェンスは転換候補であり、エントリー条件ではありません。価格がネックラインを抜ける、直近高値/安値を更新する、または上位足の節目で反応するまで待ちます。
USD/JPY での使いどころ
- 東京仲値(JST 09:55):実需フローで一方向に伸びた後、仲値通過後に失速しやすい。MACD クロスは仲値前の追随より、仲値後のヒストグラム縮小と価格反転を確認する
- ロンドンオープン(JST 16:00):東京レンジの高値/安値を抜ける動きが出やすい。1H MACD がゼロライン上なら上抜け、ゼロライン下なら下抜けを優先する
- NY オープン(JST 22:30):米金利、株式市場、指標発表の影響でボラティリティが上がる。ヒストグラム拡大中のブレイクは伸びやすいが、初動の逆噴射も多い
- 1H MACD + 15M エントリー:1H の MACD 方向で売買方向を決め、15M のシグナルラインクロスでタイミングを取る
- 日足 MACD:スイングの環境認識に使う。日足 MACD がゼロライン上なら円安方向、ゼロライン下なら円高方向のシナリオを優先する
USD/JPY は時間帯で流動性が変わります。東京時間はレンジになりやすく、ロンドン以降はブレイクが継続しやすい。MACD はこの違いを前提に読みます。
落とし穴
- レンジでのダマシ:MACD はトレンド系の指標。東京時間の狭いレンジではシグナルラインクロスが連発する。直近高値/安値を抜けないクロスは無視する
- 遅行性:EMA の差をさらにシグナルで平滑化するため、転換点では必ず遅れる。クロス確認後にエントリーすると、値幅の半分を取り逃すことがある
- ダイバージェンスの継続:弱気ダイバージェンスが出ても上昇トレンドは継続する。強いトレンドではダイバージェンスが何度も出てからようやく反転する
- ヒストグラム縮小の誤読:ヒストグラム縮小は反転ではなく勢いの鈍化。強いトレンドでは縮小後に再拡大して続伸、続落する
- ゼロラインから遠いクロス:大きく上昇した後の買いクロス、大きく下落した後の売りクロスは遅い。追随ではなく利確候補として扱う
- 時間足の混在:1H MACD が買いでも、日足 MACD が下向きなら上値は重い。下位足のクロスだけで上位足に逆らわない
- パラメータ最適化過剰:バックテストで
(7, 19, 6)のような細かい値を探すと簡単にオーバーフィットする。標準値を基準にして、変更は売買頻度と損益比率の改善が確認できる場合に限る - 指標発表時の無効化:米 CPI、FOMC、雇用統計では MACD の形よりニュースフローが優先される。発表直後のクロスは通常時のシグナルとして扱わない
Python 実装スケッチ
import pandas as pd
def ema(series: pd.Series, span: int) -> pd.Series: return series.ewm( span=span, adjust=False, min_periods=span, ).mean()
def macd( close: pd.Series, fast: int = 12, slow: int = 26, signal: int = 9,) -> pd.DataFrame: fast_ema = ema(close, fast) slow_ema = ema(close, slow)
macd_line = fast_ema - slow_ema signal_line = macd_line.ewm( span=signal, adjust=False, min_periods=signal, ).mean() histogram = macd_line - signal_line
return pd.DataFrame( { "macd": macd_line, "signal": signal_line, "histogram": histogram, } )adjust=False を指定して再帰的な EMA として計算します。min_periods=span を指定して、期間を満たさない先頭区間で NaN を返すのが安全です。バックテストでは NaN 区間を売買対象から外し、シグナル確定足の次足で約定させます。
参考
- Gerald Appel, The Moving Average Convergence-Divergence Trading Method
- Gerald Appel, Technical Analysis: Power Tools for Active Investors
- Thomas Aspray, MACD Histogram
- John J. Murphy, Technical Analysis of the Financial Markets
- Investopedia — “Moving Average Convergence Divergence (MACD)”