― MACDダイバージェンス-Stable Edge Tactical 開発記録 ―
テクニカル分析の中でも、MACDは非常に有名な指標です。
多くのトレーダーが、MACDとシグナルラインのクロス、ゼロラインの突破、ヒストグラムの変化などを売買判断に利用しています。
一方で、MACDは広く知られているからこそ、単純に使うだけでは十分な優位性を得られない場合があります。
そこで今回、Stable Edge Tacticalシリーズの第1弾として、MACDのダイバージェンスを利用したEAを開発しました。
名称は、
MACD ダイバージェンス – Stable Edge Tactical
です。
本記事では、MACDダイバージェンスをどのように数式化し、MT5用EAとして実装し、バックテストを重ねたのかをまとめます。
Stable Edge Tacticalシリーズとは
Stable Edge Tacticalシリーズは、MACD、RSI、移動平均線など、一般的なテクニカル指標を軸として優位性を探すシリーズです。
統計モデルや確率過程を重視するStable Edge Quantシリーズとは異なり、Stable Edge Tacticalでは、よりオーソドックスなテクニカル分析を扱います。
ただし、単純に既存の売買ルールをそのままEA化するのではありません。
有名な指標であっても、条件の定義、エントリーのタイミング、決済方法を丁寧に分解し、検証可能な形へ落とし込みます。
MACDダイバージェンスとは
MACDダイバージェンスとは、価格とMACDの方向が一致しない状態を意味します。
たとえば、強気ダイバージェンスでは、価格が前回安値を下回っているにもかかわらず、MACDは前回の値を下回りません。
つまり、
- 価格は安値を切り下げている
- MACDは安値を切り上げている
という状態です。
価格は下落しているものの、下落の勢いが弱くなっている可能性があります。
反対に、弱気ダイバージェンスでは、
- 価格は高値を切り上げている
- MACDは高値を切り下げている
という状態になります。
MACDの回復価格を逆算する
今回のEAでは、単にダイバージェンスが発生した瞬間にエントリーするのではなく、MACDが過去の基準値まで回復するために必要な価格を逆算します。
MACDは、短期EMAと長期EMAの差です。
[
MACD = EMA_{short} – EMA_{long}
]
EMAの更新式は、次のように表せます。
[
EMA_t = \alpha \cdot Close_t + (1-\alpha)\cdot EMA_{t-1}
]
短期EMAと長期EMAの平滑化係数を、それぞれ次のように定義します。
[
\alpha_s=\frac{2}{s+1}
]
[
\alpha_l=\frac{2}{l+1}
]
ここで、過去の基準MACD値を TargetMACD とします。
現在足でMACDがその水準まで回復するために必要な終値は、次のように逆算できます。
[
RecoveryPrice=
\frac{
TargetMACD-(1-\alpha_s)Es[1]+(1-\alpha_l)El[1]
}{
\alpha_s-\alpha_l
}
]
この価格を、本研究では MACD Recovery Price と呼びます。
なぜ逆算価格を使うのか
MACDダイバージェンスは、反転の可能性を示します。
しかし、ダイバージェンスが発生した直後にエントリーすると、強いトレンドに巻き込まれる場合があります。
たとえば、価格が安値を更新し、MACDが少し改善していたとしても、その後さらに価格が下落することは珍しくありません。
そこで、今回のEAでは次の順番を採用しました。
買いの場合
- 過去のスイング安値を検出する
- 価格がその安値を下回る
- MACDが過去の基準値より改善していることを確認する
- MACD Recovery Priceを算出する
- MACDが基準値まで回復した確定足でエントリーする
売りの場合
- 過去のスイング高値を検出する
- 価格がその高値を上回る
- MACDが過去の基準値より低下していることを確認する
- MACD Recovery Priceを算出する
- MACDが基準値まで低下した確定足でエントリーする
価格更新直後に逆張りするのではなく、モメンタムの回復を待つ構造です。
最初のバックテスト
最初のEAでは、条件を過度に増やしませんでした。
時間帯フィルター、RSI、ADX、ATRなどは使わず、MACDを中心とした条件だけで検証しています。
初期条件は、USDJPYの1時間足、MACDは一般的な 12, 26, 9 を使用しました。
2024年から2026年までの期間で検証した結果、デフォルト設定では次のようになりました。
| 項目 | 結果 |
|---|---|
| 取引回数 | 199 |
| PF | 0.76 |
| RF | -0.66 |
PFは1を下回りました。
つまり、単純なMACD回復だけでは、優位性を確認できませんでした。
狭義のダイバージェンスへ絞り込む
次に、価格とMACDの両方に明確なダイバージェンスがある場合だけを対象にしました。
BUYでは、
- 価格が安値を切り下げる
- MACDが安値を切り上げる
SELLでは、
- 価格が高値を切り上げる
- MACDが高値を切り下げる
という条件です。
この条件を有効にすると、結果は次のように変化しました。
| 項目 | 結果 |
| 取引回数 | 20 |
| PF | 1.09 |
| RF | 0.15 |
取引回数は大きく減りましたが、PFは改善しました。
この結果から、単なるMACD回復ではなく、狭義のダイバージェンスに絞る必要があると考えられます。
決済本数を比較する
次に、エントリー後の保有時間を比較しました。
6本後決済
| 項目 | 結果 |
| 取引回数 | 20 |
| PF | 0.89 |
| RF | -0.13 |
24本後決済
| 項目 | 結果 |
| 取引回数 | 20 |
| PF | 1.71 |
| RF | 1.09 |
1時間足で24本なので、おおむね24時間後に決済します。
6時間後決済よりも、24時間後決済の方が良い結果になりました。
この結果から、MACDダイバージェンスは短期的な反発よりも、1日程度の反転波を捉えるロジックとして機能している可能性があります。
スイング判定を緩和する
次に、スイングポイントの定義を変更しました。
当初は、左右2本ずつのローソク足と比較して、高値・安値を判断していました。
これを、左右1本ずつに緩和しました。
Test F
| 項目 | 結果 |
| 取引回数 | 36 |
| PF | 1.86 |
| RF | 1.62 |
取引回数は20回から36回へ増加しました。
通常、条件を緩めるとノイズが増え、成績が悪化しやすくなります。
しかし、今回は取引回数が増えたにもかかわらず、PFとRFがともに改善しました。
この結果は、従来のスイング判定が厳しすぎて、有効なダイバージェンスまで除外していた可能性を示しています。
基準点の探索範囲を広げる
次に、基準となるスイングポイントの探索範囲を、30本から48本へ広げました。
Test G
| 項目 | 結果 |
| 取引回数 | 36 |
| PF | 1.82 |
| RF | 1.62 |
こちらも良好な結果となりました。
一方で、ダイバージェンス候補の有効期間を12本から24本へ延長すると、成績は低下しました。
Test H
| 項目 | 結果 |
| 取引回数 | 21 |
| PF | 1.00 |
| RF | -0.00 |
このことから、MACD回復までに時間がかかりすぎるシグナルには、優位性が乏しい可能性があります。
良質なシグナルは、価格が高値・安値を更新した後、比較的早い段階でMACDが回復する傾向があると考えられます。
現時点のベスト設定
現時点で最も良い結果となったのは、Test Fです。
Timeframe = H1MACD Fast EMA = 12MACD Slow EMA = 26MACD Signal = 9Pivot Left Bars = 1Pivot Right Bars = 1Min Anchor Bars = 3Max Anchor Bars = 30Candidate Expiry Bars = 12Require Zero Side = trueRequire Fresh Recovery Cross = trueRequire MACD Improvement At Extreme = trueExit After Bars = 24
バックテスト結果は次のとおりです。
| 項目 | 結果 |
| 取引回数 | 36 |
| PF | 1.86 |
| RF | 1.62 |

今後の検証課題
現時点の結果は有望ですが、まだサンプル数は十分ではありません。
今後は、次の検証を進めます。
- Pivot 1 / 1 と Max Anchor Bars 48 の組み合わせ
- Exit After Bars 18、30、36の比較
- BUY限定とSELL限定の比較
- 2023年以前を含めた長期検証
- USDJPY以外の通貨ペア
- 5分足への展開
- スプレッドや約定条件を考慮した検証
特定の期間だけで結果が良い可能性もあるため、相場環境を広げた検証が重要です。
まとめ
今回の研究から、単純なMACD回復だけでは優位性が乏しいことが分かりました。
一方で、
- 価格がスイング高値・安値を更新する
- MACDに狭義のダイバージェンスが発生する
- MACD Recovery Priceを突破する
- 24時間程度の反転波を狙う
という条件に絞ることで、成績が改善しました。
MACDは非常に有名な指標です。
しかし、単純なクロスだけではなく、EMAの構造を逆算し、価格ベースの回復ラインとして扱うことで、新しい使い方が見えてきます。
※本記事は、売買を推奨するものではありません。
バックテスト結果は将来の利益を保証するものではありません。
実際の取引では、相場環境、スプレッド、約定条件、ブローカー仕様などによって結果が異なる場合があります。