Can ADX/Hurst regime labels be trusted?
The pitch is simple: label the market TREND or RANGE (and step aside in chaos), then run the matching strategy. We exported real regime episodes from a MetaTrader pipeline on EURUSD M15 — from liberal R/S Hurst labeling, through multi-filter retunes, to HTF structure / strong filters. The labels either over-call TREND and churn, or collapse into NEUTRAL and erase RANGE. That is a regime-switch problem, not a “missed one threshold” problem.
What this page is / isn’t. This is an episode-quality study of regime labels (occupancy, duration, efficiency, flip rate) from validator CSVs — not a tick-level PnL report of the trading EA, and not investment advice. For the vocabulary of trend vs regime, see Quant for Life — regime vs trend.
1 / The hypothesis, and the pipeline
If ADX and Hurst (and friends) can mark “trend regimes” and “range regimes,” a switcher EA can trade MA crossovers in TREND and mean-reversion tools in RANGE, and stand down in HIGH_VOL. We built that stack in MetaTrader, then built validators that only label and log episodes — because the first question is whether the labels are usable at all.
- Early path: multi-scale R/S Hurst + ADX thresholds + ATR high-vol (hybrid-style).
- V1 (retuned multi-filter): stricter labeling (DFA / structure-era retunes) — fewer TREND bars, more NEUTRAL.
- V2 (structure / HTF / strong filter): higher-timeframe structure and strong filters as the practical “trend permission” end-state after dual-regime hope fades.
Sample for the tables below: EURUSD M15, episode window roughly 2023-09 → 2025-12 (~852 days), from exported Regime_*.csv files.
2 / Occupancy: liberal TREND vs NEUTRAL swamp
| Export (EURUSD M15) | % TREND | % RANGE | % NEUTRAL | % HIGH_VOL |
|---|---|---|---|---|
| Early R/S-style episodes | 73.3% | 11.5% | 12.7% | 2.5% |
| V1 retuned multi-filter | 22.4% | 3.5% | 72.4% | 1.6% |
| MTF HTF-primary | 2.0% | 0% | 97.4% | 0.7% |
| V2 StrongFilter | 16.4% | 0% | 83.6% | ~0% |
Two failure modes show up immediately:
- Too easy to be “in TREND.” The early export spends about three-quarters of bars in TREND. If almost everything is TREND, the regime gate is not selecting environments — it is rebranding the whole sample.
- Too hard to leave NEUTRAL. Once filters tighten (V1 / V2 / MTF), NEUTRAL becomes the main state (72–97% of bars). RANGE almost disappears under StrongFilter and MTF. A dual book (trend or range) has nothing to switch to.
3 / Churn: labels as noise sources
Even with hysteresis in the MQ4 (confirm bars), episode transitions imply on the order of 1,000+ flips per year for the early and V1 exports, and still ~300+ for MTF/StrongFilter. On a 15-minute chart that is not a calm “state machine” — it is a label process that can itself become a trading cost if you act on every change.
Mean TREND episode length under MTF is only about 7 bars (~1.75 hours of M15). That is permission to trade, not a multi-day “regime” in the economic sense people imagine when they say the word.
4 / TREND efficiency is not the only scoreboard
When a TREND episode is declared, mean path efficiency sits roughly in the 0.55–0.60 band across exports — not catastrophic, and above the validator’s old “below 0.30” warning.line. The more damaging pattern is structural:
- Either TREND is everywhere (early), or
- TREND is rare and short while NEUTRAL dominates (V1/V2/MTF), and RANGE dies.
So the research path that led from “ADX/Hurst switcher” toward structure / HTF strong filters is rational: you stop pretending to maintain a full four-state classifier and keep a stricter trend-permission concept instead. That is a design retreat with evidence — not a marketing upgrade.
5 / V1 vs V2 in one glance
| V1 retuned multi-filter | V2 StrongFilter | |
|---|---|---|
| % TREND bars | 22.4% | 16.4% |
| % NEUTRAL bars | 72.4% | 83.6% |
| % RANGE bars | 3.5% | 0% |
| TREND mean efficiency | 0.55 | 0.58 |
| Flips / year (approx.) | ~1030 | ~332 |
V2 is calmer than V1 on churn and slightly “pickier” on TREND, but it does not resurrect a healthy RANGE state. If the product goal was “automatic trend or range,” neither export delivers a balanced switch. If the goal is “only trade when structure allows,” V2 is closer — and that is already a trend filter story more than a regime-HMM story.
6 / Clean-room strategy books (H1) — does switching help?
Caveat. Free EURUSD M15 history is too short for a multi-year engine, so the strategy layer is a H1 clean-room (Yahoo, ~2023-10 → 2026-08), not a tick-faithful MT4 replay. Costs: 0.5 pip per side on position changes. No ATR stops, trailing, or % risk sizing — only signal + regime gate. Compare the ordering of variants, not the absolute CAGR as “edge.”
Books:
- V0 — MA(10/30) trend branch only (always allowed).
- V1 — hybrid-style labels (Hurst + ATR high-vol): TREND → MA book, RANGE → Bollinger+RSI mean-reversion, else flat.
- V2 — structure TREND permission (linreg R²/slope + ADX), then hold MA side; else flat (no range book).
| Book (H1) | Ann. Sharpe* | Total return | Max DD | Pos. changes | % flat |
|---|---|---|---|---|---|
| V0 trend only | 0.82 | +16.6% | −10.0% | 174 | 0.6% |
| V1 hybrid switch | −0.36 | −3.2% | −8.2% | 464 | 79% |
| V2 structure filter | −1.15 | −13.7% | −15.2% | 819 | 60% |
*Annualized with ~24×252 H1 bars/year — a convention for comparison, not a promise of investable Sharpe.
On this H1 tape, adding the hybrid regime switch hurts relative to V0 (more flat time, more position thrash, negative total return). The structure “trend permission” filter (V2) is not a free lunch either — it cuts exposure but lands worse risk-adjusted and worse total return under this cost model. That matches the M15 episode story: labels and filters change when you trade more than they manufacture edge.
7 / M15 episode passive check (CSV only)
If you simply hold each exported TREND episode long for its signed start→end return (no spreads, no shorts, no RANGE book) on the M15 CSVs:
| M15 export | TREND episodes | Compound of TREND AbsReturn |
|---|---|---|
| Early R/S | 949 | +6.3% |
| V1 retuned | 782 | +5.3% |
| V2 StrongFilter | 468 | −2.2% |
| MTF HTF | 165 | −0.5% |
Pickier TREND labels (StrongFilter / MTF) do not improve this naive long-through-episode score on the export window — another sign that “stricter TREND” is not automatically better TREND.
Labels fail first; the switcher does not rescue the book.
On EURUSD M15 episode exports, dual-regime labeling either over-calls TREND with extreme churn or collapses into NEUTRAL and kills RANGE. On a H1 clean-room of the EA’s strategy family, V0 trend-only beats V1 hybrid switching and V2 structure filtering under a simple cost model. That supports the research path you already took: abandon “smart four-state regime truth,” treat structure/HTF filters as optional permission experiments, and do not expect ADX/Hurst thresholds alone to underwrite a regime product. Educational evidence only — not a trade recommendation.
What we did not claim
- Not a broker-faithful MT4 report (no slippage model beyond 0.5 pip/side, no trailing).
- H1 books are not identical to M15 EA fills — they test the logic family.
- No “+X% Profit Factor” from chatbots as site facts.
- No claim about HMM/ML regimes fixing the design.
Read next
Quant for LifeTrend vs regime — vocabulary only, no trade instructions Teardown
Supertrend on SPY vs EURUSD — environment decides more than the indicator Teardown
MACD across regimes — benchmark and sample bias Learn
Validation gauntlet — overfitting, OOS, multiple testing Tool
Deflated Sharpe — when threshold grids become another search