SpotMajorsDualMomentumCashDefenseMonthly
Hypotheses
Crypto-Majors SPOT Dual-Momentum Rotation WITH Absolute-Momentum CASH Defense, Long-Only (BINANCE_SPOT BTC/ETH/SOL/BNB + USDT, Monthly, Hold the Single Strongest 3-Month-Momentum Major ONLY When Its Momentum Is Positive — Otherwise Sit in STABLECOIN — the Bear-Market Exit No Deployed Basket Has, 2-Parameter)
Hypotheses
A LONG-ONLY, MONTHLY-rebalanced SPOT rotation over four deep-history majors on BINANCE_SPOT — BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT — plus a CASH (USDT) sleeve. It deliberately targets the single defect that killed EVERY long-only basket-momentum sibling this session (Vol-Scaled 15-name +500%→75% DD, Low-Skew rotation 76% DD, Low-Vol rotation): they are ALWAYS INVESTED in crypto beta, so a bull-only backtest hides a >50% bear drawdown that hard-abandons at L19. The fix is a classic Antonacci dual-momentum construction the deployed 8-major relative-strength winner does NOT have: RELATIVE momentum picks which major to hold, but ABSOLUTE momentum decides whether to hold ANYTHING — if the strongest major's own 3-month return is negative (a market-wide downtrend), the strategy exits entirely to STABLECOIN. That stablecoin defense is the new, drawdown-solving signal input (a regime gate, not a re-weighting of relative strength — so it is not the L24 duplicate). It also fills two of the most under-represented buckets in the book at once: BINANCE_SPOT venue (11.4%) and the macro/monthly horizon (0.6% — the single rarest). No leverage (spot CASH account), so it structurally cannot blow up. This is NOT the deployed USD-M always-invested rotation (different venue, single-name concentration, and a cash-defense exit), NOT a dollar-neutral rank basket (L12), NOT carry/options/liquidation/funding-directional. Data-safe pure OHLCV; 2 core parameters (momentum lookback, number of names held = 1).
Hypotheses
Implements Antonacci dual momentum precisely and targets the exact defect that hard-abandoned every always-invested long-only basket sibling (Vol-Scaled 15-name 75% DD, Low-Skew 76% DD, Low-Vol): those had no bear exit. The new, drawdown-solving input is ABSOLUTE momentum — a regime gate (hold-cash vs hold-crypto), NOT a re-weighting of relative strength, so it is distinct from the L24 relative-strength duplicate and from the deployed always-invested USD-M rotation (different venue BINANCE_SPOT, single-name concentration, and the cash-defense exit). Fills the two rarest book buckets: BINANCE_SPOT venue and the monthly/macro horizon. VENUE: long-only, no shorts, no leverage, edge is not funding — so BINANCE_SPOT (CASH, leverage hard-capped 1.0) is the correct route per the venue-selection rule; the strategy only ever BUYs to enter and SELLs to reduce an existing long (via close_position), never a naked spot short, which the base's spot-short guard also enforces. ROBUSTNESS/verification: I use 1-DAY bars with a monthly rebalance clock rather than 1-MONTH bars because a 365-day sandbox holds only ~12 monthly bars (fragile warmup/measurability); daily bars give ~275 post-warmup days and ~9 monthly rebalances in-window, so Layer 3's >=1-trade gate is comfortably met (a logic sim over 400 synthetic days produced 7 rotations + a cash period). Momentum is computed timestamp-based (find the bar at/just before now-lookback) so unequal leg histories (SOL lists 2020 vs BTC/ETH 2017) never misalign indices — and I verified all four BINANCE_SPOT 1-DAY series exist with deep history ending 2026-07, so no data_unavailable. The spot cash-settlement timing (USDT is ~0 while fully invested) is handled by the sell-now/buy-next-bar rotation, avoiding a cash-starved undersized buy. _process_primary is overridden (not on_bar/on_start) to run the rotation while preserving the base cross-leg sync barrier, so momentum is always computed on contemporaneous prices. leverage=1.0 and unreferenced in sizing (no leverage_set_but_unused gate). Pure OHLCV, no supplementary data, no funding/options/liquidation dependence.
Hypotheses
The strategy fails its own central thesis and shows a return artifact. Its entire reason to exist was the absolute-momentum stablecoin exit capping bear drawdown below the 50% floor that hard-abandoned every long-only sibling — yet max_drawdown is 76.78% (CI high 93.6%), so the cash defense did NOT solve the drawdown problem. The cause is structural: 99% single-name (top_n=1) concentration gated by a slow monthly/3-month-lookback signal, so the exit fires long after a concentrated major has already crashed. Separately, the 2024-04 monthly return of +706.8% is implausible for a long-only spot major (nothing 7×'d that month) — a rotation/settlement accounting artifact that inflates the +1650% total_return, so the headline is untrustworthy. The result is also single-regime (2021 +351% and 2024 +562% carry everything; 2022/2023/2026 all negative) and rests on only 24 trades, below any measurability bar (L10), making Sharpe 0.64 (CI low 0.09) and PF 1.62 noise. Optimizing lookback_days/abs_threshold cannot create drawdown protection the single-name monthly structure structurally fails to provide, and would only overfit the two bull years on 24 samples. Note for the research lead: the dual-momentum cash-defense mechanism could be worth retrying, but only with diversification (hold top-2/3, not a single name) and a faster regime gate, and the developer should fix the coin→coin rotation accounting that produced the +707% month. Not worth 2 hours of optimization as-is.
Implementation
Long-only, monthly-rebalanced SPOT dual-momentum rotation over four deep-history majors on BINANCE_SPOT (BTC/ETH/SOL/BNB) plus a USDT cash sleeve. Each calendar month it computes the trailing ~3-month (lookback_days=90) return of every major. RELATIVE momentum picks the single strongest major to hold; ABSOLUTE momentum then decides whether to hold anything at all — if even the strongest major's own trailing return is <= abs_threshold (default 0, i.e. a market-wide downtrend), the book exits entirely to stablecoin cash. Runs on 1-DAY bars with a month-change rebalance clock. It holds exactly one name (or cash). Being a spot CASH account it uses no leverage and cannot blow up; a coin→coin rotation sells the old holding on the rebalance bar and buys the new one on the next bar so the buy is funded by settled USDT. calculate_signal returns the best trailing momentum (continuous) for logging. 2 core parameters: lookback_days and names-held=1 (fixed); abs_threshold is the cash-defense gate.
Verification Results
Analyst must evaluate on FULL history and judge primarily by equity-curve/drawdown through regimes rather than trade count; confirm the full run yields enough rotations for a meaningful walk-forward.
Verification Results
The sandbox is statistically uninformative and the engine flags it: total_trades 2, metrics_reliable=FALSE, win_rate 0.0 / profit_factor 0.0 (artifacts of exactly two losing trades on n=2, NOT the L17 high-count code-defect signature). A monthly single-name rotation is low-frequency by design — ~9 rebalance opportunities in a 365-day sandbox, mostly no-ops — so 2 trades is a short-window artifact, not a bug. But nothing can be concluded from this sandbox, and over the full ~6-year history it will still likely yield only ~20-40 rotations, below the ~100-trade floor and thin for a 3-window walk-forward.
Verification Results
Run full 2020-2026 history and check max_drawdown stays <50% through 2022 (the actual thesis test) and whether whipsaw erodes returns; if DD still >50% or whipsaw dominates, abandon.
Verification Results
The core thesis is UNTESTED here and partly contradicted. The whole value proposition — the absolute-momentum cash defense caps the >50% bear drawdown that killed the always-invested siblings — can only be validated on data INCLUDING the 2022 bear, which a ~1-year 2025-2026 sandbox excludes. And even in this non-2022 window it posted total_return -40.1% / max_drawdown 40.7% via 2 whipsaw entries (bought positive-3mo-momentum majors that then fell), so the defense is not obviously working.
Verification Results
None required; account for the ~2020 effective start when judging full-history trade count and CAGR.
Verification Results
Universe gating: _compute_target returns _INSUFFICIENT (skips the whole rebalance) if ANY leg lacks lookback history, so the strategy can't start until all four majors have ~90 days (SOL on BINANCE_SPOT ~2020). Correct/safe, but the tradable history is bounded by the youngest leg and early backtest years are inert.
Backtest Review
Fills genuinely under-represented buckets (BINANCE_SPOT venue, macro/monthly horizon) with no leverage
Backtest Review
The Antonacci dual-momentum cash-defense concept is sound in principle and distinct from the deployed always-invested rotation
Backtest Review
profit_factor 1.62 and positive skew 0.86 when it wins
Backtest Review
max_drawdown 76.78% (CI high 93.6%) — the cash defense FAILED to deliver its one purpose; still far past the 50% hard-abandon floor (L19), same as every sibling it claimed to fix
Backtest Review
Implausible +706.8% monthly return in 2024-04 for a spot long-only major — a rotation/settlement accounting artifact inflating the +1650% total_return; headline cannot be trusted
Backtest Review
Single-regime: 2021 (+351%) and 2024 (+562%) carry everything; 2022/2023/2026 all negative
Backtest Review
Only 24 trades — below the measurability floor (L10); Sharpe 0.64 (CI low 0.09) and PF 1.62 are computed on noise
Backtest Review
Negative information_ratio (-0.35) vs its meaningful equal-weight benchmark
Outcome Summary
This strategy correctly diagnosed the single defect that hard-abandoned every long-only basket sibling this session — always-invested crypto beta hiding a >50% bear drawdown — and proposed the classic Antonacci fix: a dual-momentum construction that rotates to stablecoin when the strongest major's own 3-month return turns negative. But the cash defense failed at its one job: max drawdown was 76.78%, because holding a single name gated by a slow monthly signal meant the exit fired long after a concentrated major had already crashed. The headline +1650% was also untrustworthy (an implausible +707% month from a rotation-accounting artifact) and single-regime, resting on just 24 trades below the measurability floor. The analyst abandoned it at review, noting the mechanism could be worth retrying only with diversification, a faster regime gate, and the rotation accounting fixed.
Outcome Summary
An absolute-momentum stablecoin exit cannot cap drawdown when the book is 99% concentrated in a single name and gated by a slow monthly/3-month signal — the exit fires after the crash — so a dual-momentum cash defense needs diversification (hold top-2/3) and a faster regime gate, and the coin→coin rotation accounting that produced a +707% month must be fixed.
Outcome Summary
It was abandoned at the pre-optimization backtest-review gate because it failed its own central thesis: the cash defense did not cap drawdown (76.78%, far past the 50% hard-abandon floor) since 99% single-name concentration gated by a slow monthly/3-month signal exits long after a concentrated major has already crashed — compounded by a return artifact inflating the headline and only 24 trades, below the measurability floor.
Outcome Summary
A long-only, monthly-rebalanced spot dual-momentum rotation over four BINANCE_SPOT majors (BTC/ETH/SOL/BNB) plus a USDT cash sleeve — relative momentum picks the single strongest 3-month major, and absolute momentum exits entirely to stablecoin when that major's own return is negative — an Antonacci-style bear-market cash defense designed to solve the >50% drawdown that hard-abandoned every always-invested basket sibling.
Outcome Summary
The backtest showed a +1650% headline over only 24 trades with profit factor 1.62 and Sharpe 0.64 (CI low 0.09), but a 76.78% max drawdown (CI high 93.6%), negative information ratio (-0.35) vs its benchmark, single-regime returns (2021 +351%, 2024 +562% carrying everything while 2022/2023/2026 were negative), and an implausible +706.8% month in 2024-04 flagged as a rotation/settlement accounting artifact.
Backtest and paper results are hypothetical. Trading involves risk of loss.