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

この記事の3行まとめ
- 📦 P0 初版を配布:
Ind_TrendRangeRegime_v100.mq5(ダウンロード)— ADX・価格回帰の R²・+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点です。
- チャートで「トレンド度」「信頼度」「離散レジーム」を同時に見る(サブウィンドウ)
- 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 個です(括弧内はデフォルト値の例)。
InpMicroPeriod(20)InpADXPeriod(14)InpTrendScoreHigh(0.55)InpTrendScoreLow(0.38)InpConfMin(0.32)InpSlopeEps(0.0)InpWADX(0.40)InpWR2(0.35)InpWDI(0.25)InpMurphyLookback(4)InpSpreadAvgBars(20)InpSpreadSpikeMul(1.6)InpUseClosedBarOnly(true)
続けて バッファ番号(0〜5)、シフトを渡します。推奨: EA 側では ラッパー関数を1つ書き、上記 13 個は定数で固定しておくと安全です。
リペイントと未確定足¶
- デフォルト
InpUseClosedBarOnly = trueのとき、最右足(形成中バー)は主要バッファEMPTY_VALUEにします(確定足ベース)。 - 過去の確定バーは、新しいティックが入っても 確定済みの値は変わりません。
ダウンロード¶
Ind_TrendRangeRegime_v100.mq5 をダウンロード
MQL5/Indicators/ に配置し、コンパイルしてください(MT5 ビルドでエラーが出た場合は 【検証#04】 と同様、ビルドログを確認ください)。
表示についての注意¶
サブウィンドウの 縦軸は 0〜4(REGIME ヒスト用)のため、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/−1/0(方向の置き方) |
| 4 | CONTEXT_SCORE | v100 では主に スプレッド急拡大で下がる(1 に近いほど「通常」) |
| 5 | MURPHY_SCORE | 高いほど「トレンドっぽいのに短期で往復」など 裏切りやすい状況の近似 |
チャート左上のコメント¶
例: TRRegime v1.0 | RNG | T=0.412 C=0.551 D=0 — レジーム略号・T=TREND_SCORE・C=CONFIDENCE・D=DIRECTION。
運用上の注意¶
InpUseClosedBarOnly = true(既定)のとき、形成中の足はEMPTY_VALUE(確定足ベース)。
次のステップ¶
- 【検証#06-3】 …
Ind_TrendRangeRegime_v101(CONTEXT・任意ハースト) - 【検証#06-4】 …
Ind_TrendRangeRegime_v102(平滑・MTF ADX)
関連記事¶
あわせて読みたい
- 【検証#06-4】v102 — 平滑化と MTF 確認
- 【検証#06-3】P1/P2 — CONTEXT 拡張とハースト融合
- 【検証#06-1】トレンド/レンジ・レジーム判定を設計する
- 開発仕様書(執筆用・サイト非公開。詳細は本連載の各回に要約)
- 【検証#04】ハースト指数インジケータ実践編
関連用語¶
前後の記事¶
前: 【検証#06-1】トレンド/レンジ・レジーム判定を設計する — 聖杯なき前提と「ふるまい」へ 次: 【検証#06-3】トレンド/レンジ・レジーム判定 P1/P2 — CONTEXT 拡張とハースト融合