Strategies
US Sector-ETF Cross-Sectional Momentum Rotation with Absolute-Momentum Cash Escape (11 SPDR Sectors, Monthly Rebalance, Daily Bars, Long-Only Breadth, USEQ)
Outcome: Abandoned
SectorEtfCrossSectionalMomentumRotationUseq
Outcome Summary
This strategy pivoted away from saturated single-instrument crypto trend ideas to a breadth-based, raw long-only rotation across the 11 sector SPDRs, with lazy enrolment of the late-listing XLRE and XLC so the full 1998-2026 history could be used. The initial backtest earned an 'optimize' verdict on strong per-trade economics (0.84% per trade, PF 1.35) despite a weak Sharpe of 0.217, negative alpha versus the equal-weight sector basket and a -58.5% stressed-regime tercile. Optimization over 132 trials picked a shorter 79-day lookback and n_hold 4, nudging Sharpe to 0.233 while deepening max drawdown to 40.5% past the pre-registered 25% cap, and both real walk-forward windows came back negative. After 2 iterations the analyst abandoned it: overfit, OOS Sharpe below zero and PBO 0.81 are unwaivable, and with five prior siblings of the same mechanism already dead, the monthly sector relative-strength rule was judged to have no forward edge here.
Hypothesis
Overfit with negative out-of-sample generalization; unwaivable hard failures (overfit, OOS ≤ 0, PBO 0.81), corroborated by DSR 0.053 with the selected Sharpe below the best-of-N noise bar and failed programme FDR. Not a fee or sample problem — the monthly sector relative-strength rule simply has no forward edge here, and the absolute-momentum escape fails in exactly the stressed regimes it was designed for. Per overfit→abandon: five prior siblings of this mechanism (similarity 0.69-0.82) already died fee_edge/overfit/risk_reject, and the wider long-only reframe this hypothesis was built on did not fix it, so revise_hypothesis onto yet another ETF basket would re-overfit.
Implementation
Long-only monthly cross-sectional momentum rotation across the 11 S&P sector SPDR ETFs (XLK/XLF/XLE/XLV/XLY/XLP/XLI/XLB/XLU/XLRE/XLC) on USEQ 1-DAY bars. Each session every sector is scored by a two-horizon blended total return (126 sessions and 63 sessions by default); on the first evaluated session of each calendar month the book rotates into the top 3 sectors, equally weighted at 90% gross exposure in whole shares. An absolute-momentum overlay only fills a slot while that sector's own blended score exceeds abs_momentum_threshold, so in a broad drawdown slots stay empty and the book steps to cash; the same test is now also applied INTRAMONTH as an exit-only escape so a leader that rolls over mid-month is sold immediately instead of carried to month end. Late-listing sectors (XLRE 2015-10, XLC 2018-06) are enrolled into the cross-leg alignment barrier lazily on their first bar, so the strategy trades the available cross-section from 1999 and the young sectors join the ranking automatically once they have a full lookback.
Verification Results
Prefer a public/overridable hook for lazy leg enrolment if the base template offers one, or add a guard/assert that the expected private attributes exist so a base-class change fails loud rather than silently mis-aligning legs.
The strategy reaches into the base template's cross-leg alignment barrier internals (empties `self._sync_extra_iids`, stashes them in `self._unlisted_sync_iids`, and re-enrols each leg on its first extra bar). This is a deliberate hack to trade the live cross-section from 1999 instead of idling until XLC's 2018 inception, and it passed Layers 1-3, but it depends on undocumented base-class fields; if the base template's sync mechanism changes, this silently breaks the staggered-inception handling.
The dollar-neutral sibling UsSectorEtfCrossSectionalMomentumDollarNeutralLS was abandoned 2026-09-07 at PF 1.03 (spread across only 9 ETFs too narrow), and L81 flags cross-sectional momentum rank as a zero-survivor OHLCV re-parameterization. This variant is materially different (RAW long-only tilt over 11 sectors, not beta-stripped, with an absolute-momentum cash escape), so it deserves a real backtest, but the family's track record is poor. Sandbox also loses in the stressed vol tercile (-12.6%, Sharpe -0.39) while all edge is concentrated in the 'normal' tercile (+46.8%) — the analyst should check whether the intramonth cash escape actually reduces the stressed-regime drawdown over full 27-year history.
Backtest Review
- Sharpe
- 0.22
- Total return
- 106.50%
- Max drawdown
- 31.03%
- Trades
- 338
- Win rate
- 46.2%
- Profit factor
- 1.35
Iteration-1 window fix worked: full 27-year decisive sample now runs (6968 bars, 1998-12 to 2026-09), XLRE/XLC lazily enrolled into the alignment barrier as they list — no idle-until-2018 truncation this time.
Per-trade economics clear USEQ costs with wide margin: avg_trade_return_pct 0.84% is ~8x the USEQ preferred floor (0.10%) and impact is only 6.8% of gross; this is NOT the fee-dead signature. profit_factor 1.35 and positive expectancy ($267/trade) over 338 trades.
Materially different from the killed siblings: this is a RAW long-only 11-sector tilt with an absolute-momentum cash escape (PF 1.35), not the beta-stripped dollar-neutral 9-ETF book that died at PF 1.03. L75 abandon signature (avg_trade_return_pct <=0.10% OR PF<1.2) is absent — both metrics clear it comfortably.
Genuine parameter space to explore (lookback 63-252, n_hold 1-6, abs-momentum threshold, gross_exposure, blend) and this ETF-rotation family (CrossAssetDefensiveDualMomentum, MacroThreeAssetMomentum) has recently survived into optimization.
Weak risk-adjusted result: Sharpe 0.217 with bootstrap CI [-0.129, 0.584] straddling zero; CAGR only ~2.5%/yr over 27 years against a 31% max drawdown (Calmar 0.15).
Negative alpha (-0.0004) and negative information_ratio (-0.26) vs the equal-weight sector basket (benchmark_meaningful=true) — the rotation currently underperforms simply holding all 11 sectors; the breadth premise is not yet demonstrating skill above baseline.
QA's stressed-regime concern is borne out: stressed tercile returns -58.5% with Sharpe -0.49 and 62% intra-regime drawdown — the intramonth cash escape is not visibly protecting in the worst regimes. This is the single biggest thing optimization + walk-forward must resolve.
Family prior is poor (L45/L81 cross-sectional momentum baskets zero-survivor); the burden is on the walk-forward/deflation gates to show the raw-long-only variant behaves differently.
Analysis
Iteration-2 window fix held: full 27-year sample (6971 bars, 1998-12 to 2026-09) with XLRE/XLC lazily enrolled — this is a real answer, not a truncated one.
Per-trade economics are not the problem: avg_trade_return_pct 0.71% is ~14x the USEQ floor, zero commissions, impact only 6.8% of gross, capacity ~$21.8M.
Ample sample (595 trades), positive holdout (Sharpe 0.92 on 95 trades), PF 1.42 clears its soft floor.
Three HARD gates fail: is_overfitted=true (IS 0.582 → OOS -0.586), OOS Sharpe ≤ 0, PBO 0.8135 >> 0.5. Both real WF windows are negative (-0.779, -0.979) — the edge inverts, not decays.
DSR 0.053 vs 0.95; expected-max 0.540 over 132 trials (89 effective) exceeds the selected Sharpe 0.233; sharpe_ci_low -0.135; fails programme FDR (keeps 4 of 283).
Both free params are cliffs (lookback_days 0.170→-0.062 at 71; n_hold 0.170→0.058 at 3); the whole heatmap is 0.10-0.41 in-sample over a negative OOS — nothing to tune toward.
Optimization worsened risk: DD 31.0%→40.5% (pre-registered cap 25%), DD duration 2316→4173 days, Calmar 0.16; loses in the stressed tercile (-0.283 / -44.4%) — the cash escape fails where it was supposed to help.
No alpha vs its own basket: IR -0.238, alpha 0.006, beta 0.37.
Pre-registered prediction misses 4 of 6, including OOS Sharpe (0.8 declared vs -0.586) and drawdown.
Benjamini-Hochberg at q=0.10 over 283 programme candidates keeps 4. A candidate that does not survive here is not distinguishable from the programme's own noise, however good its individual statistics look.
Outcome Summary
Per-trade economics clearing costs by a wide margin (0.7-0.8% vs a 0.10% USEQ floor) says nothing about whether an edge generalizes — the decisive evidence was sign-inverting walk-forward OOS, and the absolute-momentum cash escape failed in exactly the stressed regime tercile (-44% return, Sharpe -0.283) it was designed to protect.
The analyst abandoned it at ANALYZING on three unwaivable hard failures: is_overfitted=true (IS Sharpe 0.582 vs OOS -0.586, both real walk-forward windows negative at -0.779 and -0.979), OOS Sharpe below zero, and PBO 0.8135; deflated Sharpe 0.053 with the selected Sharpe (0.233) under the 0.540 best-of-N noise bar and failure of the programme FDR (4 of 283 kept) corroborated it.
A long-only monthly cross-sectional momentum rotation across the 11 S&P sector SPDR ETFs on USEQ daily bars, holding the top-N blended-momentum sectors with an absolute-momentum cash escape (also checked intramonth) to step aside in broad drawdowns.
The full 27-year backtest (1998-12 to 2026-09, 6,968 bars) returned 106.5% total / 2.50% CAGR with Sharpe 0.217 (CI -0.129 to 0.584), 338 trades, profit factor 1.35, 31.0% max drawdown and avg_trade_return_pct 0.84%; after optimization it showed 131.7% total return, Sharpe 0.233, 595 trades, PF 1.42 and holdout Sharpe 0.92 on 95 trades, but max drawdown widened to 40.5% and avg_trade_return_pct fell to 0.71%.
Backtest and paper results are hypothetical. Trading involves risk of loss.