EAはロジックが優れていれば勝てる——
そう思われがちですが、実運用では 「相場環境との相性」 が成績を大きく左右します。
・ナンピンはレンジで強い
・ブレイクアウトはトレンドで強い
・順張りはADX上昇局面で機能しやすい
つまり、
ロジック単体ではなく「相場環境とセット」で設計する必要がある
本記事では、
MT4でレンジ相場を自動判定する方法、
ADXを使ったトレンド判定の実装手順、
そしてレンジかどうかを見分ける設計方法を、
MQL4コード付きで解説します。
単なるインジケーター解説ではありません。
これは EA設計における「相場モード管理」の基礎技術 です。
なぜMT4でレンジ判定が必要なのか?
多くのEAは、特定の相場環境に最適化されています。
例えば:
- ナンピン型 → レンジ向き
- ブレイク型 → トレンド向き
- 押し目買い → 上昇トレンド向き
しかし環境を無視すると、
・レンジ用EAがトレンドで崩壊
・トレンド用EAがヨコヨコで損切り連発
・「バックテストは良かったのに…」状態
が起きます。
そこで必要なのが、
MT4上で相場環境を自動判定する仕組み
です。
MT4でトレンド判定する方法|ADXを使う理由
MT4でトレンド判定する方法として、
最も一般的に使われるのが ADX(Average Directional Index) です。
ADXは「方向」ではなく、
トレンドの“強さ”を数値化する指標
です。
一般的な目安
- ADX 20以下 → レンジ傾向
- ADX 25〜30以上 → トレンド傾向
つまり、
ADXを使えばレンジ相場かどうかを数値で見分けることができます。
しかし実務では、単純な閾値判定だけでは不十分です。
ADXでレンジを見分ける設計方法(実務ベース)
実際にMT4でレンジ判定を安定させるには、
以下の3要素を組み合わせます。
① ADX閾値
トレンド判定の基準値。
例:
- 28以上 → トレンド化
- 22以下 → レンジ化
② DI差(+DIと-DIの差)
ADX単体では「強さ」しか分かりません。
DI差を入れることで、
- 方向性の優位性
- 本当に力のあるトレンドかどうか
を補完できます。
③ ヒステリシス設計(最重要)
ヒステリシスとは、
ONとOFFの閾値を分ける設計
です。
例:
ADX_Trend_On = 28
ADX_Trend_Off = 22
これにより:
・モードの頻繁な切替を防ぐ
・ノイズによる誤判定を防ぐ
・相場状態が安定する
単純な「25超えたらトレンド」では、
実運用では振り回されます。
MQL4でレンジ・トレンドを判定するコード例
以下は、バー確定時に相場モードを判定する関数例です。
enum MODE
{
MODE_RANGE = 0,
MODE_TREND = 1
};MODE CalcModeOnBarClose()
{
double adx1 = iADX(Symbol(), PERIOD_M5, 14, PRICE_CLOSE, MODE_MAIN, 1);
double adx2 = iADX(Symbol(), PERIOD_M5, 14, PRICE_CLOSE, MODE_MAIN, 2); double pdi = iADX(Symbol(), PERIOD_M5, 14, PRICE_CLOSE, MODE_PLUSDI, 1);
double mdi = iADX(Symbol(), PERIOD_M5, 14, PRICE_CLOSE, MODE_MINUSDI, 1); double diDiff = MathAbs(pdi - mdi); static MODE currentMode = MODE_RANGE;
MODE nextMode = currentMode; // トレンド → レンジ
if(currentMode == MODE_TREND)
{
if(adx1 <= 22 && diDiff <= 8 && adx1 <= adx2)
nextMode = MODE_RANGE;
}
// レンジ → トレンド
else
{
if(adx1 >= 28 && diDiff > 8)
nextMode = MODE_TREND;
} currentMode = nextMode;
return nextMode;
}このように
- ADX値
- DI差
- ADXの傾き
を組み合わせることで、
安定したレンジ判定が可能になります。
判定結果を可視化する(応用)
MT4でレンジ判定を実装できても、
チャート上で確認できなければ検証効率は上がりません。
別記事で公開している VisualMode.mqh を使えば、
- レンジ → 青背景
- トレンド → 赤背景
- モード切替ライン描画
が可能です。

本記事では「判定ロジック」に集中し、
可視化は応用として扱います。
実装例:ADXモード管理をEAに組み込むと?
ここまで解説した
MT4でレンジ相場を自動判定する方法
を実際のEAに組み込むとどうなるのでしょうか。
当サイトでは、
ボリンジャーバンド順張りEAにADXトレンド判定を組み込んだ実例を公開しています。
このEAでは、
- ボリンジャーバンド → 方向
- ADX → 強さ
を分離設計し、
レンジ相場での無駄なエントリーを抑制しています。
相場モード管理がどのように実戦ロジックへ落とし込まれるのか、
ぜひ併せてご覧ください。
まとめ|MT4レンジ判定はEA設計の基礎技術
MT4でレンジ判定を実装することは、
単なるインジケーター追加ではありません。
それは
相場モードを管理する設計思想
です。
ADXによるトレンド・レンジ判定は、
- デバッグ効率向上
- パラメータ最適化の精度向上
- ロジックと相場環境の理解深化
につながります。
EAはロジック単体では完成しません。
ロジック × 相場環境
で初めて安定します。
まずはADXを使ったトレンド判定を実装し、
あなたのEAに「相場モード管理」を組み込んでみてください。








コメント