← Research lab

Regime classifier validity

Every night we run a statistical test on every strategy: do its P&L distributions actually differ across market regimes? If our regime labels are noise, this page shows it. If they're real, it shows that too.

Latest run: 2026-09-04 (UTC) • 60 nightly runs on file• Method: Welch's t-test (p<0.05 significance threshold).

Is the classifier load-bearing?
13.5%

of regime-pair comparisons show statistically different P&L

2.7×

more discrimination than the 5% chance threshold

2,974

pair tests across 56 strategies

If the classifier produced random labels, only ~5% of pair-tests would pass p<0.05 by chance. Observing 13.5% means the labels carry real information about conditional strategy performance. This number going below ~10% would be the signal that the classifier needs to be rebuilt.

Significance % over time

Nightly % of strategy-regime pair-tests that came back statistically significant (p<0.05). The 5% line is chance. If this trends down toward the red line, the classifier is losing discriminating power and needs rebuilding.

0%10%20%30%40%50%chance (5%)2026-07-072026-09-04
1-hour 4-hour Daily

Which timeframe's regime separates strategies best?

Same test, broken down by which higher-timeframe regime the trade was tagged with. The one with the highest significant % is the one that matters most for strategy selection right now.

Window: 60 nightly runs so far.

Finding (last 60 nights)

The 1-hour regime is doing most of the work. It separated strategies 17.2% of the time (213 of 1237 pair-tests) vs. 4-hour at 12.3% (130 of 1061) and Daily at 8.6% (58 of 676).

That's 1.4× the predictive value of the next-best timeframe on this window. If you had to condition a strategy on just one regime signal right now, 1-hour is the one.

Daily regime
8.6%
58 of 676 significant
1-hour regimeleader
17.2%
213 of 1237 significant
4-hour regime
12.3%
130 of 1061 significant

Strategies with the strongest regime-conditional edge

Biggest measurable performance gaps between regimes. These are the strategies where deploying in one regime vs another changes the outcome materially.

StrategyRegime AMean AnAvs. Regime BMean BnBGapp
M_masv00_adx22ranging_med_vol-1.974%7weak_trend_high_vol+2.681%3-4.656%0.036
ema-slowtrending_low_vol-1.284%3strong_trend_high_vol+2.783%11-4.066%0.011
ema-13-80-v1trending_high_vol-2.147%5weak_trend_high_vol+1.464%12-3.611%0.006
ema-slowstrong_trend_low_vol-0.649%4strong_trend_high_vol+2.783%11-3.431%0.026
ema-slowstrong_trend_high_vol+2.783%11strong_trend_med_vol-0.564%5+3.347%0.042
ema-slowweak_trend_low_vol-0.537%17strong_trend_high_vol+2.783%11-3.320%0.031
ema-slowranging_low_vol-0.402%19strong_trend_high_vol+2.783%11-3.184%0.037
ema-13-80-v1trending_high_vol-2.147%5weak_trend_med_vol+0.609%31-2.756%0.015
ema-13-80-v1trending_high_vol-2.147%5ranging_med_vol+0.528%27-2.675%0.011
ema-13-80-v1trending_high_vol-2.147%5strong_trend_low_vol+0.372%8-2.519%0.048
ema-13-80-v3trending_low_vol-0.828%5weak_trend_high_vol+1.610%11-2.438%0.042
ema-slowtrending_low_vol-1.284%3ranging_med_vol+1.050%7-2.334%<0.001

Gap = Mean A − Mean B. Positive means regime A is better for that strategy. These figures include the v1 baseline portfolio because v2 research genes are still small sample. Will shift to v2 as forward-test trade counts grow.

Which regime boundaries matter most?

Pairs of regime labels that most often produced statistically different strategy P&L. Pairs near the top are the real regime boundaries. Pairs that rarely appear here are candidates for merging. They aren't doing distinct work.

trending_high_volvsweak_trend_high_vol
19 strategies differavg gap +0.583%
ranging_low_volvsranging_med_vol
18 strategies differavg gap +0.328%
trending_high_volvsranging_med_vol
17 strategies differavg gap +0.572%
trending_high_volvsweak_trend_low_vol
16 strategies differavg gap +0.385%
ranging_low_volvsweak_trend_high_vol
16 strategies differavg gap +0.250%
trending_high_volvsweak_trend_med_vol
15 strategies differavg gap +0.570%
ranging_low_volvsweak_trend_low_vol
15 strategies differavg gap +0.208%
trending_high_volvsstrong_trend_med_vol
12 strategies differavg gap +0.510%
ranging_low_volvsweak_trend_med_vol
12 strategies differavg gap +0.259%
ranging_low_volvsstrong_trend_high_vol
11 strategies differavg gap +0.770%

How this works

  1. Our classifier tags every trade with the market regime at entry (and exit) on 1h, 4h, and 1d timeframes. Labels include trending_low_vol, ranging_high_vol, etc.
  2. For every strategy with enough trades, we group its P&L by the regime label at entry and compute mean and variance per regime.
  3. For every pair of regimes with ≥3 trades each, we run Welch's t-test to check whether the two regime distributions differ. p<0.05 means the difference is unlikely to be chance.
  4. If > 5% of pair-tests come back significant, the classifier is producing labels that carry real information. Below 5% means it's random noise and needs rebuilding.

The validator runs at 03:00 UTC nightly from src/worker/adaptive-v2/regime-validator.js (private repo). The full method is documented above.

Not financial advice. Regime labels are descriptive, not predictive. A strategy that performs well in one regime historically may not continue to in the future. Past performance does not guarantee future results.