MidCapWeeklyCrossSectionalMomentumTop2BtcRegime
Hypotheses
Liquid Mid-Cap Weekly Cross-Sectional Momentum, Long-Only Top-2 Rotation, BTC-Regime Cash-Out (8 Multi-Year-History USD-M Mid-Caps: DOGE/DOT/ATOM/UNI/LTC/BCH/ETC/FIL, Higher Dispersion Than Mega-Caps, Pure OHLCV, 3-Parameter)
Hypotheses
A LONG-ONLY, weekly-rebalanced cross-sectional momentum rotation — the EXACT proven mechanism behind the factory's promoted 'Cross-Sectional Momentum 8-Major LONG' (Sharpe 2.6) — but deliberately applied to a HIGHER-DISPERSION universe of 8 liquid, multi-year-history USD-M MID-CAPS (DOGEUSDT, DOTUSDT, ATOMUSDT, UNIUSDT, LTCUSDT, BCHUSDT, ETCUSDT, FILUSDT) that does NOT overlap the mega-cap winner's set. The rationale is L12-driven: baskets only survive when per-rebalance cross-sectional dispersion exceeds ~2N×10bps of fees, and mid-cap weekly return dispersion (top vs bottom decile ~15-25%/week) is roughly double the mega-caps' — so a concentrated TOP-2 rotation pays only ~0.40% fees/rebalance against 15%+ of available dispersion, a wide margin. It is engineered to sit in the ONLY zone that yields clean, diagnosable, positive-edge backtests this session: moderate weekly frequency — NOT the ultra-low-turnover holds that trigger the engine's compute_daily_returns artifact (which killed my spot-200SMA strategies), NOT the intraday fades that fee-die (AVAX/BNB/XRP all negative-edge), NOT multi-leg options (L2), NOT funding/liquidation/OI/HL/CM (all dead families). Drawdown — the failure that killed my dual-momentum variant at 76.9% — is controlled by a BTC-200-day-SMA cash-out (proven in the winner) plus top-2 concentration on the strongest names. 3 parameters (lookback, top-K, regime SMA) to resist overfit.
Hypotheses
Iteration 3 targets the ONLY disqualifying, trustworthy failure the QA identified: max_drawdown 80.85% on a peak-to-trough (annualization-independent, engine-artifact-free) basis, worse than the 76.9% this strategy was meant to beat. The QA's root cause is precise: the weekly BTC-200-SMA cash-out is a LAGGING signal that can't cut exposure before fast mid-cap crashes, and top-2 concentration amplifies them. The mechanism-appropriate, smallest fix is a drawdown-control overlay that does NOT depend on the lagging weekly signal: a daily per-position TRAILING STOP checked on every bar (_check_stops, called from calculate_signal and on_extra_bar). It tracks each held name's peak-since-entry and exits it to cash the instant price falls stop_pct (default 15%) off that peak, so a crashing mid-cap is cut at ~15% below its high instead of riding to -80%; with gross 0.90 across 2 names, portfolio drawdown per crash is bounded near gross*stop plus gaps, and the stopped name stays in cash until the next rebalance re-evaluates it. Verified the stop arithmetic (peak 120, 15% stop -> exits below 102). This is a genuine new risk mechanism, not churn to game metrics (the QA credited iter-2 for correctly NOT churning, and the residual Sharpe/vol artifact is engine-side and explicitly NOT the deciding factor). Everything the QA credited is untouched: the spot venue reroute (all .BINANCE_SPOT, honest zero funding), spot-correct total-book-value sizing, the rank/top-2 momentum selection, BTC-as-regime-reference-only (excluded from _trade_syms), regime cash-out, alignment barrier, exits-before-buys, precision-aware sizing, long-only (exits/trims only reduce longs; the base blocks spot shorts), and clean imports. The added stop_pct is a risk parameter; the 3 core signal parameters (lookback_days, top_n, regime_sma_days) are unchanged, preserving the low-DOF, overfit-resistant design while making the trustworthy drawdown metric favorable.
Hypotheses
max_drawdown 67.23% > 50% hard floor (L19); mirrors the dual-momentum variant killed at 76.9% and this strategy's own iter-2 at 80.85%. The +365% headline is entirely the 2021 altcoin bull (+937%) with 5 of 6 other years negative — single-regime beta, not edge. Sharpe CI (-0.908 to 3.10) straddles zero. Concentrated top-2 mid-cap crashes cannot be tamed by parameter tuning (the iter-3 trailing stop already tried and only trimmed DD to 67%), and no optimization can manufacture edge in the non-2021 years. The core mid-cap momentum family is dead at this concentration; the proven mechanism already lives in the promoted 8-major LONG sibling.
Implementation
Long-only, weekly-rebalanced cross-sectional momentum rotation over 8 liquid BINANCE_SPOT mid-caps (DOGE, DOT, ATOM, UNI, LTC, BCH, ETC, FIL), daily bars, pure OHLCV. Each week it ranks the 8 mid-caps by trailing 30-day return and holds the top-2 equal-weight, re-equalized weekly; when BTC closes below its 200-day SMA the whole book rotates to cash. BTCUSDT is loaded only as the regime reference and is never ranked or traded. Iteration 3 adds a daily per-position trailing stop: every bar, any held name that falls 15% off its peak-since-entry is exited to cash immediately, independent of the weekly cadence and the lagging BTC regime, capping per-position (and portfolio) drawdown. Spot CASH venue with portfolio value reconstructed as USDT cash plus held-coin mark value. No shorts, no leverage, no supplementary data. 3 tuned signal parameters plus a stop_pct risk control.
Verification Results
Verification failed (Layer 4 — QA review):
- CORE THESIS FALSIFIED on a TRUSTWORTHY metric: max_drawdown 80.85% — WORSE than the 76.9% dual-momentum drawdown this strategy was explicitly designed to avoid. Drawdown is peak-to-trough on the equity curve, NOT annualization-dependent, so the engine artifact doesn't distort it — this 80.85% is real. The hypothesis's whole premise (top-2 + BTC-200-SMA cash-out CONTROLS drawdown) is falsified: BTC's lagging signal doesn't protect against fast mid-cap crashes, and top-2 concentration amplifies them. Corroborated by end_unrealized -118.91% (near-blowup), impact_cost 13.10%, capacity $5.8M (mid-cap illiquidity). Unlike the 200-SMA siblings (favorable drawdown, 'promising once fixed'), this trustworthy metric is UNFAVORABLE and disqualifying.
- Sharpe/vol still NON-DIAGNOSTIC as predicted (spot reroute didn't fix the compute_daily_returns artifact): vol 291.96% impossible, Sharpe 1.80 incoherent with cagr 22.24%, data_days 145 (~trade count), CI crosses zero. But NOT the deciding factor — the trustworthy 80.85% drawdown alone disqualifies it, so this needn't wait on the engine fix.
- CREDIT: venue fix correct and complete — all instruments now .BINANCE_SPOT, funding_events_available=0 honest, spot-correct total-book-value sizing, correctly NO churn added (per the 200-SMA precedent). Momentum mechanism unchanged and correct (rank/top-2, BTC-regime-only excluded from trading, long-only short_trades=0, no look-ahead). Block is edge/risk + residual metrics artifact, not a code defect.
Verification Results
No code change needed; keep spot venue. Analyst can note the descriptor is realized as the correct spot equivalent.
Verification Results
Hypothesis title labels the universe 'USD-M mid-caps' (futures), but config/code route all instruments to .BINANCE_SPOT. This is CORRECT per the factory venue-routing rule (long-only, no leverage, momentum edge -- not funding -> BINANCE_SPOT) and was credited in prior iterations, so it is NOT a fail. Spot round-trip cost is 0.20% and avg_trade_return_pct 2.93% clears it with wide margin.
Verification Results
Optional: seed _trail_high from the position's avg entry price when a new long is first seen.
Verification Results
The daily trailing stop seeds _trail_high from the first bar a held position is observed, not the actual fill price, so the peak reference starts ~1 bar after entry. Minor conservatism, not a correctness defect.
Verification Results
Analyst/Risk to weigh 67% DD vs the 76.9% it was meant to beat; consider tightening stop_pct or gross_exposure in optimization.
Verification Results
Sandbox max_drawdown 67.4% (improved from iter-2's 80.85% after the trailing-stop overlay, still elevated). Performance/risk question for the analyst, not code correctness. end_unrealized_pct -112% and annualized_volatility 205% are engine metric artifacts; 67.4% peak-to-trough DD is the trustworthy figure.
Backtest Review
avg_trade_return_pct 2.93% clears the spot fee floor (edge exists per-trade)
Backtest Review
Long-only spot, 3 signal parameters, low overfit surface
Backtest Review
Proven mechanism (promoted 8-major LONG sibling at Sharpe 2.6)
Backtest Review
max_drawdown 67.23% (CI to 97.6%) — L19 hard abandon; iter-2 was 80.85%, still far above the promotion floor
Backtest Review
Entire +365% return is 2021 (+937%); 5 of 6 other years negative — single-regime alt-bull beta, not repeatable edge
Backtest Review
Sharpe CI −0.908 to 3.10 straddles zero — not distinguishable from no-skill
Backtest Review
profit_factor 1.124 thin; impact_cost_pct 17% consumes large share of gross
Backtest Review
top-2 mid-cap concentration + lagging weekly BTC-SMA regime cannot cap fast crashes; trailing stop only trimmed DD, did not fix it
Outcome Summary
MidCapWeeklyCrossSectionalMomentumTop2BtcRegime took the factory's promoted 8-major momentum rotation and pointed it at a higher-dispersion mid-cap universe on the L12 thesis that wider cross-sectional dispersion gives the concentrated top-2 rotation a bigger margin over fees. The per-trade edge did clear the fee floor (2.93%), but the concentration cut both ways: iteration-2 hit an 80.85% drawdown, and even after adding a daily trailing stop in iteration-3 the drawdown only fell to 67.23% — still well over the 50% hard-abandon line — while the +365% return proved to be entirely 2021 altcoin beta with five of six other years negative and a Sharpe CI straddling zero. The reviewer abandoned it as a dead family at this concentration, noting no parameter tuning can tame fast mid-cap crashes or manufacture edge in the non-2021 years. The canonical, drawdown-controlled expression of the mechanism already lives in the promoted mega-cap 8-major LONG sibling.
Outcome Summary
Applying a proven momentum mechanism to a higher-dispersion mid-cap universe at top-2 concentration amplifies crash risk beyond what a lagging weekly regime gate or a trailing stop can cap — the wider dispersion cuts both ways, and a return concentrated entirely in one altcoin bull year is regime beta, not edge; the mechanism already lives in the promoted mega-cap 8-major sibling.
Outcome Summary
The backtest reviewer returned 'abandon' at the pre-optimization gate: the 67.23% max drawdown was over the 50% hard-abandon floor (down only from iteration-2's 80.85% despite the added trailing stop), the headline was single-regime 2021 altcoin beta rather than repeatable edge, and the Sharpe CI straddling zero made it indistinguishable from no-skill.
Outcome Summary
A long-only, weekly cross-sectional momentum rotation over 8 higher-dispersion liquid mid-cap Binance spot majors (DOGE, DOT, ATOM, UNI, LTC, BCH, ETC, FIL) that held the top-2 by trailing return equal-weight, with a BTC-200-day-SMA regime cash-out plus a daily per-position trailing stop for drawdown control — the promoted 8-major momentum mechanism relocated to a wider-dispersion universe.
Outcome Summary
With full data (246 trades, metrics_reliable=true) it cleared the per-trade fee floor (avg_trade_return_pct 2.93%) and returned +365%, but the risk-adjusted result was weak and drawdown-heavy: Sharpe 1.32 with a CI straddling zero (-0.908 to 3.10), profit factor 1.124, information ratio -0.061, impact cost 17% of gross, and a 67.23% max drawdown (CI to 97.6%) — with the entire return coming from 2021 (+937%) and 5 of the other 6 years negative. No optimization stage ran.
Iteration History
Verification failed (Layer 4 — QA review):
- VENUE MISROUTE + funding-free optimistic backtest (same defect as the dual-momentum FAIL). Long-only, leverage 1.0, no shorts, pure MOMENTUM edge (not funding) → must be BINANCE_SPOT per the rule, but config is USD-M perps. funding_events_available=0 = zero funding applied, yet real perp longs pay it → optimistic/non-deployable. 'Referenced winner specifies USD-M' doesn't override the rule. All 8 mid-caps trade on spot, so reroute is feasible.
- NON-DIAGNOSTIC METRICS (compute_daily_returns artifact, milder). annualized_vol 263% implausible for a 0.90x basket; data_days 116 ≈ trade count over multi-year (861d DD duration) → engine annualizes ~19-day holds as daily, ~4.3x vol inflation (true ~61%). Sharpe 2.70 incoherent with cagr 74% (coherent ~0.28), CI crosses zero. Spot reroute does NOT fix this (turnover/close-date driven). Contrast the passing carry basket (data_days 1080, coherent).
- CREDIT: code correct and faithful. Cross-sectional momentum rank/top-2, BTC loaded as regime reference ONLY (excluded from _trade_syms, never traded/ranked), regime cash-out, genuinely long-only (short_trades=0), no look-ahead, alignment barrier, exits-before-buys, precision-aware sizing, 3 params. Blocks are venue/fee + engine metrics, not a mechanism defect.
Backtest and paper results are hypothetical. Trading involves risk of loss.