コンテンツにスキップ

【検証#06-2】トレンド/レンジ・レジーム判定インジ P0 — バッファ契約と MQL5 実装

ヒストグラム+2ライン(イメージ:実戦はチャートで確認ください)

この記事の3行まとめ

  • 📦 P0 初版を配布: Ind_TrendRangeRegime_v100.mq5ダウンロード)— ADX・価格回帰の +DI/−DI 一致度 を重み付き融合した TREND_SCORE と、指標同士の一致度 CONFIDENCE
  • 🔢 iCustom 向けバッファ 0〜5 を固定REGIME / TREND_SCORE / CONFIDENCE / DIRECTION / CONTEXT_SCORE / MURPHY_SCORE)— EA から番号ブレさせないのが本稿の要点です
  • 🧪 まだ P0 です: ハースト長期やセッション・アノマリー本格組み込みは、【検証#06-3】 以降の記事で扱う想定です

この回でできるようになったこと

【検証#06-1】 までで、聖杯なき前提ふるまい・コンテキストの設計方針を書き、開発仕様書(執筆用・サイト非公開) に落としました。【検証#06-2】 では、仕様の P0(短窓の構造特徴量 2〜3 系+融合) に相当する 実装可能な最小版 を公開します。

目的は次の2点です。

  1. チャートで「トレンド度」「信頼度」「離散レジーム」を同時に見る(サブウィンドウ)
  2. EA が iCustom で同じバッファ番号を読めるように、契約をコードと記事で固定する

P0 で採用したロジック(要約)

成分 内容
ADX 正規化 ADX を 0〜1(÷100)
回帰 R² 直近 InpMicroPeriod 本の終値を時系列回帰し、決定係数 R²(0〜1)を「方向が付きやすいか」の代理
DI 一致 \(\|+DI - -DI\| / (+DI + -DI)\) で 0〜1
TREND_SCORE 上記3つを InpWADX / InpWR2 / InpWDI で加重平均(デフォルト 0.4 / 0.35 / 0.25)
CONFIDENCE ADX 正規化と R² のズレが小さいほど高く、スプレッド急拡大CONTEXT_SCORE を下げ、短期の往復(マーフィー近似)でペナルティ
REGIME 閾値で UNKNOWN / RANGE / CHOP / TREND_UP / TREND_DOWN に離散化(詳細は次節)

ハースト(長窓)は P0 では未内蔵です。既存の Ind_HurstTrendRange_v107.mq5並列で見るか、将来版で 融合する想定です(仕様書 P2)。


離散レジーム(バッファ 0 の値)

意味
0 UNKNOWN(信頼度不足など)
1 RANGE(スコア低め=レンジ寄り)
2 CHOP(中間)
3 TREND_UP
4 TREND_DOWN

※閾値は入力(InpTrendScoreHigh / InpTrendScoreLow / InpConfMin)で調整します。


iCustom 用バッファ契約(固定)

以下は 変更しない前提 で EA を書いてください(将来メジャーバージョンで見直す場合は記事と仕様書の両方を更新します)。

バッファ 内容 備考
0 REGIME 上表の 0〜4。サブウィンドウでは ヒストグラム表示
1 TREND_SCORE 0〜1
2 CONFIDENCE 0〜1
3 DIRECTION −1 / 0 / +1
4 CONTEXT_SCORE 主にスプレッド異常で低下(0〜1)
5 MURPHY_SCORE 短期往復とトレンドスコアの組み合わせで高くなりやすい(0〜1)

iCustom を書くとき

iCustom可変長引数には、inputソースファイルに出てくる順番どおりに並べたあと、バッファ番号シフトを渡します。P0 時点の input は次の 13 個です(括弧内はデフォルト値の例)。

  1. InpMicroPeriod (20)
  2. InpADXPeriod (14)
  3. InpTrendScoreHigh (0.55)
  4. InpTrendScoreLow (0.38)
  5. InpConfMin (0.32)
  6. InpSlopeEps (0.0)
  7. InpWADX (0.40)
  8. InpWR2 (0.35)
  9. InpWDI (0.25)
  10. InpMurphyLookback (4)
  11. InpSpreadAvgBars (20)
  12. InpSpreadSpikeMul (1.6)
  13. InpUseClosedBarOnly (true)

続けて バッファ番号(0〜5)、シフトを渡します。推奨: EA 側では ラッパー関数を1つ書き、上記 13 個は定数で固定しておくと安全です。


リペイントと未確定足

  • デフォルト InpUseClosedBarOnly = true のとき、最右足(形成中バー)は主要バッファ EMPTY_VALUE にします(確定足ベース)。
  • 過去の確定バーは、新しいティックが入っても 確定済みの値は変わりません

ダウンロード

Ind_TrendRangeRegime_v100.mq5 をダウンロード

MQL5/Indicators/ に配置し、コンパイルしてください(MT5 ビルドでエラーが出た場合は 【検証#04】 と同様、ビルドログを確認ください)。


表示についての注意

サブウィンドウの 縦軸は 0〜4REGIME ヒスト用)のため、TREND_SCORE / CONFIDENCE(0〜1)は 下側に寄って見えます数値の正データウィンドウまたは EA がバッファを読むことで確認する設計です。


チャートの見方(v100)

サブウィンドウに出るもの

縦軸が 0〜4 なので、ヒストグラム(REGIME)が目立ち、青(TREND_SCORE)と橙(CONFIDENCE)のライン0〜1 の範囲のため下寄りに見えます。見た目より データウィンドウの数値を優先してください。

表示 意味
ヒストグラム(シルバー) そのバーのレジーム。棒の高さ 0〜4 が状態を表す(下表)
青ライン トレンド的かどうかの総合スコア(0〜1。高いほどトレンド寄り)
橙ライン 判定の信頼度0〜1。指標同士の一致やコンテキストを踏まえた「自信」)

REGIME(棒の高さ)

高さ 意味
0 UNKNOWN … 信頼度不足など、はっきり言えない
1 RANGE … レンジ寄り
2 CHOP … 中間(ノイズ寄り)
3 TREND_UP
4 TREND_DOWN

※ 高さ 0 は「レンジ」ではなく UNKNOWN です(レンジは 1)。

データウィンドウで見る値(描画なし)

バッファ 名前 見方
3 DIRECTION +1−10(方向の置き方)
4 CONTEXT_SCORE v100 では主に スプレッド急拡大で下がる(1 に近いほど「通常」
5 MURPHY_SCORE 高いほど「トレンドっぽいのに短期で往復」など 裏切りやすい状況の近似

チャート左上のコメント

例: TRRegime v1.0 | RNG | T=0.412 C=0.551 D=0 — レジーム略号・TTREND_SCORECCONFIDENCEDDIRECTION

運用上の注意

  • InpUseClosedBarOnly = true(既定)のとき、形成中の足EMPTY_VALUE(確定足ベース)。

次のステップ


関連記事


コラム一覧へ戻る


関連用語


前後の記事

前: 【検証#06-1】トレンド/レンジ・レジーム判定を設計する — 聖杯なき前提と「ふるまい」へ 次: 【検証#06-3】トレンド/レンジ・レジーム判定 P1/P2 — CONTEXT 拡張とハースト融合

— SPONSORED —