Skip to main content
2026-05-22 · 1 min read · ← 6 · strategy · research · regime

Vol-regime filter wins on mean, pays in variance

what you'll learn · Why a regime gate that wins on mean Sharpe across seeds can simultaneously be a worse choice for operators with bounded drawdown tolerance, and how to read the trade-off.

The vol-regime gate dropped the harness's top spot from three_clock_momentum (+1.429) to vol_regime_filter (+1.493) — a 4.5% mean Sharpe improvement at the cost of doubling the per-seed dispersion (0.672 → 1.383). When a gate concentrates exposure on a survivors-only universe, the mean might tick up but the worst case gets meaningfully worse.

The 17-arm comparison harness now has two arms at the top of the mean-Sharpe table:

three_clock_momentum: mean +1.429, stdev 0.672, min +0.396, max +2.079
vol_regime_filter:    mean +1.493, stdev 1.383, min −0.069, max +3.307

Mean: +1.493 > +1.429. vol_regime_filter wins on Sharpe.

Min: −0.069 < +0.396. three_clock_momentum wins on worst-case.

Stdev: 1.383 vs 0.672 — the filter has more than DOUBLE the per-seed dispersion. The 4.5% mean improvement cost a 106% variance increase. That trade is real and operator-facing — it isn’t visible if you only read the headline Sharpe number.

Why the variance jumps when a gate fires

The vol-regime filter drops symbols whose vol_5 / vol_60 exceeds 1.5. On the synthetic with --fomc-drift-bps 50, FOMC days push most symbols above threshold around the event window. After the gate fires, the cross-sectional ranking happens on a smaller universe — sometimes 2 or 3 names instead of 10.

A smaller universe means less diversification. Top-quantile and bottom-quantile buckets each contain fewer symbols; one mis-ranked name now drives a larger share of PnL. The strategy concentrates exposure on the survivors.

When the survivors happen to be right (good seed): big win, because position sizes inside the bucket are bigger.

When the survivors happen to be wrong (bad seed): big loss, same reason.

The min Sharpe went negative on at least one of the five seeds (−0.069). The max hit +3.307 — the highest of any arm in the harness, including three_clock_momentum’s max of +2.079.

Reading the two numbers together

A strategy’s mean Sharpe is the expected annualised Sharpe under the seed distribution. A strategy’s stdev is the inter-seed variability — how much your realised Sharpe will differ from the mean depending on which world you ended up in.

For an operator who has many independent bets and can average across them (large hedge fund running 50 strategies), mean dominates: realised Sharpe converges to the mean across the portfolio.

For an operator with one bet (running this strategy on one real universe over one real out-of-sample period), the stdev dominates: their realised Sharpe is one draw from a normal centered at the mean with the given stdev. A −0.069 worst-case on a +1.493 mean isn’t a hypothetical — it’s “you have a real risk of underperforming bonds for a year.”

The right metric depends on the operator’s situation:

Operator Pick Why
Many independent strategies vol_regime_filter Mean dominates
One strategy, can ride a year three_clock_momentum Better worst-case
One strategy, must cut at -50bps three_clock_momentum Min Sharpe is the gate
Tactical overlay, weekly review vol_regime_filter Can pull plug on bad regime

What this isn’t

  • Not “vol_regime_filter is bad.” It’s the highest-mean arm. Bad on one dimension doesn’t make it bad overall.
  • Not “always pick the higher-variance arm.” Mean isn’t always the right metric. Drawdown tolerance, regime stability, and the operator’s ability to cycle out matter.
  • Not specific to vol-regime gates. This is the general shape of “gate drops symbols → universe shrinks → variance rises.” Every filter strategy has it. The spread_filter and ts_momentum arms have the same pattern in milder form.

The discipline rule

When comparing strategies, name BOTH the mean and the stdev across seeds before picking a winner. A higher mean with much higher stdev is a different bet, not an unambiguous upgrade. Operators with bounded drawdown tolerance should rank on min Sharpe (or some specified-quantile Sharpe) rather than mean.

A corollary: when a harness has 17 arms, the “top mean Sharpe” column is a misleading sort order. Report at minimum (mean, stdev, min) and let the operator pick by their constraint.

deskgdfindgfstrategiesgsfeaturesgepromotionsgpapigabotgbwritinggw

Shortcuts are no-ops while typing in an input or textarea.