Strategies
Dispersion-Regime-Gated Cross-Sectional Momentum Rotation, Long-Only (BINANCE USD-M, 8 Majors, Weekly Hold Top-3 by Relative Strength — but ONLY Concentrate When Cross-Sectional Return DISPERSION Is Elevated (Winners Genuinely Separating); Revert to Cash When Dispersion Is Compressed and the Rotation Would Just Churn Fees for Beta — a DISPERSION Regime Signal No Deployed Basket Uses, 2-Parameter)
Outcome: Abandoned
DispersionGatedMomentumRotationLong
Outcome Summary
DispersionGatedMomentumRotationLong was the sibling proposal to the crowding-filter variant, bolting a second regime signal — cross-sectional return dispersion — onto the deployed momentum rotation so it would only concentrate into the top-3 when winners were genuinely separating and revert to cash when they were not. The backtest produced a +766% headline (single-regime, carried by 2021's +573% and 69.5% unrealized) with a healthy 1.58 profit factor, but Sharpe was just 0.748 and the max drawdown hit 67.64%. The fatal flaw was structural: dispersion actually rises in a synchronized bear as names fall apart, so the gate stayed ON straight into the 2022 crash and lost -55.5%, adding negative active value (IR -0.24) over the equal-weight benchmark. The analyst abandoned it at backtest-review as the identical failure to its crowding-filtered sibling — a regime filter on the same always-invested long-only structure that still hit ~65% drawdown and underperformed the basket, where optimization could only overfit the 2021 bull.
Hypothesis
Implementation
Long-only weekly cross-sectional momentum rotation over 8 deep BINANCE USD-M majors (BTC/ETH/SOL/BNB/AVAX/LINK/ADA/XRP, 1-DAY bars), gated by a cross-sectional DISPERSION regime. Weekly it ranks names by trailing relative strength (return over momentum_lookback days) and measures cross-sectional dispersion (std of the per-name relative-strength values). When current dispersion is at/above its rolling median (dispersion_median_lookback), winners are genuinely separating, so it holds an equal-weight top-3 (positive momentum only). When dispersion is compressed (majors moving together on common beta), the rotation would just churn fees for beta, so it steps aside to CASH. Dispersion is a pure ON/OFF timing gate — the return engine is the momentum premium. No supplementary data, no ticks; O(1)-ish per bar. 2 core parameters: momentum_lookback, dispersion_median_lookback.
Verification Results
Analyst: verify total_trades over the full span is high enough to distinguish edge from noise.
Measurability/trade-count caution for the analyst. The sandbox produced only 12 round-trip trades over 362 days. A weekly rotation over 8 names that steps to cash ~half the time (dispersion below median) yields few round trips; extrapolated over a multi-year backtest this is roughly 60-90 trades, near the ~100-trade measurability floor. Not a code defect (reuses a DEPLOYED momentum-rotation class), but the analyst should confirm the full-history trade count is adequately sampled before optimizing.
If alignment is not guaranteed by the base, gate the snapshot on all legs sharing the same ts_event before computing momenta.
The code assumes calculate_signal (primary BTC bar) runs only after all 8 same-timeframe legs are buffered (alignment barrier), and snapshots each leg's latest close there. If the base template does not strictly guarantee same-timestamp alignment, _latest_bar(iid) for a non-primary leg could be one bar stale, introducing a consistent 1-bar lag in momentum/dispersion. Would not flip polarity or break trading, but could slightly shift ranks.
No action needed; growth is bounded.
Static analyzer flagged self._disp_hist as potentially unbounded, but the code DOES trim it to dispersion_median_lookback each bar — false positive. Noted so it is not treated as an open defect.
Backtest Review
- Sharpe
- 0.75
- Total return
- 765.57%
- Max drawdown
- 67.64%
- Trades
- 143
- Win rate
- 44.1%
- Profit factor
- 1.58
Dispersion regime gate is a genuinely distinct, L24-sanctioned ON/OFF signal not used by the deployed basket
profit_factor 1.58 and avg_trade_return_pct 10.4% clear fees; pure-price and timeout-safe
max_drawdown 67.64% (CI high 76%) — far past the 50% hard-abandon floor; the dispersion gate did NOT cap the tail
Single-regime: 2021 +573% carries the +766% headline; 2022 -55.5% — always-invested long-only beta when 'on' eats the full bear drawdown
The cash gate doesn't trigger in a synchronized bear (dispersion stays elevated as names fall apart), so it provides no tail protection
information_ratio -0.24 vs its equal-weight-basket benchmark — adds negative active value; end_unrealized_pct 69.5 (headline partly unrealized)
Same structural failure as the crowding-filtered momentum sibling (regime filter on the deployed basket, still ~65% DD, still underperforms benchmark)
Outcome Summary
A dispersion 'on/off' gate does not provide crash protection because synchronized bear markets exhibit high dispersion as names diverge downward, keeping an always-invested long-only basket fully exposed to beta; timing when to deploy momentum cannot substitute for a structural hedge or exit against directional drawdown.
abandoned
It was abandoned at backtest-review (verdict: abandon) because the 67.64% drawdown breached the 50% hard-abandon floor and the dispersion gate failed to protect the tail — in a synchronized 2022 bear, dispersion stayed elevated as names fell apart, so the gate stayed ON and the book ate -55.5% of long-only crypto beta while adding negative active value (IR -0.24) over the plain basket.
It reused the deployed cross-sectional relative-strength momentum rotation across 8 USD-M majors (weekly equal-weight top-3) and added a dispersion regime gate that runs the rotation only when cross-sectional return dispersion is above its rolling median and steps aside to cash when dispersion is compressed, aiming to avoid fee churn and concentration risk in regimes where momentum adds nothing.
Over 2,397 days it produced 143 trades with a headline +766% total return, profit factor 1.58, and avg_trade_return_pct 10.4%, but Sharpe was only 0.748, win rate 44%, max drawdown 67.64% (CI high 76%), information ratio -0.24 versus the equal-weight-basket benchmark, and end_unrealized_pct was 69.5%.
Backtest and paper results are hypothetical. Trading involves risk of loss.