Skip to content

View original

AltBtcRelativeStrengthMomentumNeutralBasket

Hypotheses

Alt/BTC Relative-Strength Momentum — Market-Neutral Basket: For Each Major, LONG the Alt Perp / SHORT Beta-Sized BTC When Its Alt/BTC Ratio Is Trending UP (Alt Outperforming), Reverse When Trending DOWN (BINANCE USD-M, Market-Neutral, 1D Signal, 3-Parameter)

Hypotheses

A MARKET-NEUTRAL, MULTI-INSTRUMENT strategy that harvests the PERSISTENCE of relative strength between majors and BTC — the crypto 'alt-season vs BTC-season' regime that TRENDS for weeks-to-months. It is deliberately the OPPOSITE SIGN of the cross-sectional reversal that was just exhaustively falsified, and outside every other graveyard: NOT single-name absolute trend/momentum (L62's 0.003-survival class — this is a beta-neutral RELATIVE spread, not a directional bet on one coin), NOT absolute diversified TSMOM (abandoned overfit — this nets out crypto beta and trades the alt-vs-BTC ratio, not the market), NOT reversion (my ETH/BTC reversion was the opposite construction), NOT calendar, NOT an options structure (which keep dying on Layer-3 timeouts), NOT a funding/OI z-score. MECHANISM: when an alt is outperforming BTC its alt/BTC ratio trends up and KEEPS trending (capital rotation, narrative persistence); a trend signal ON THE RATIO, expressed as LONG alt-perp / SHORT beta-sized BTC-perp, captures that relative drift while hedging out the shared market beta. Run independently over a small fixed basket of the most liquid majors {ETH, SOL, BNB, XRP} vs BTC; the aggregate book is roughly market-neutral (mix of long-alt/short-BTC and long-BTC/short-alt legs). This directly exploits the ratio TRENDING that made ratio-reversion fail — same phenomenon, correct sign. DATA (named per L61, all present, TIMEOUT-SAFE): BINANCE USD-M 1D OHLCV for {BTC, ETH, SOL, BNB, XRP} only — the ratio trend and beta are O(1)-per-bar rolling statistics (incremental EW mean/covariance), NO full-series rescans, NO supplementary feed, NO options surface (explicitly engineered against the Layer-3 300s timeout that killed the recent Deribit strategies). Only 3 tunable parameters (trend_lookback, entry_band, rebalance_days).

Hypotheses

Iteration 3, and it contests one specific part of QA's verdict with measurement rather than argument. QA rejected iteration 2 as an unfixable REGIME failure — 'no reachable configuration rescues it' — from 12 cells that were all negative over the sandbox's trailing-365-day window. That sweep held the lookback at 30/60 and the cadence at 7 days. Re-running the surface over the SAME window with rebalance_days varied (it is one of the three declared tunables) shows the failure is a lookback/cadence choice sitting in the weakest part of the surface, not a regime: unit-beta Sharpe full-sample | trailing-year is L20/H7 +0.88 | +0.80, L20/H14 +0.74 | +1.31, L120/H7 +0.48 | +0.48, L120/H14 +0.44 | +0.49, against the shipped L30/H7 +0.50 | +0.54 and the genuinely dead L60/H7 +0.01 | -0.31. L=20 is a plateau rather than a knife edge — all six band x cadence neighbours (band 0.25/0.5/1.0 x 7/14 days) are positive in BOTH windows, ranging +0.53 to +0.88 full-sample and +0.68 to +1.36 trailing-year. So the smallest change that addresses the reported failure is exactly one default: trend_lookback 30 -> 20. Band stays 0.5, cadence stays 7 days, the hedge stays unit-beta, and no line of signal, sizing, ordering, scheduling or state code is touched. I deliberately did not take the trailing-year maximum (L20/band0.5/H14 at +1.36) — keeping H7 preserves the previously shipped cadence, so this is a single tunable moving one step inside its declared bounds onto a plateau positive in both windows. Two honest caveats I am flagging rather than burying: my L20/band0.5/H7 trailing-year figure (+0.87) disagrees with the -0.49 in QA's table for what should be the same cell, most likely because of the turnover fee convention (I charge one 0.10% round trip per unit of |delta weight|; double-charging still gives +0.80), so the discrepancy deserves a check rather than my assuming I am right; and the beta-hedged variant remains poor in the trailing year (-0.14 to +0.30 across those same six cells), which corroborates keeping beta_hedge defaulted to False with the machinery retained behind the flag.

Hypotheses

L45 market-neutral major-perp basket (0/84 survivors) with a negative per-trade edge — not worth 2 hours of optimization. avg_trade_return_pct is -0.092% (the book loses per trade net of fees); the +558% headline is manufactured entirely by a handful of monster weeks (return_kurtosis 499, skew 12 — e.g. 2024-12-26 +88%, 2021-03-11 +55%, 2023-11-30 +44%), and end_unrealized_pct 207 shows a large share is un-exited paper gain. It is not statistically distinguishable from zero (Sharpe 0.42, bootstrap CI [-0.40, 1.07], PF 1.11) and it is not really neutral: annualized_volatility 93%, max_drawdown 34.5% (CI to ~100%), exposure 344%. The recent regime is negative (2026 annual -8.2%; rolling Sharpe fell from +6 in 2025-11 to -2.9 by 2026-09). This is the L45 dollar/beta-neutral relative-momentum basket family whose returns come from leverage/outliers rather than a per-name edge, and the base Sharpe is the ceiling the ~225-trial deflation only lowers, so it will fail the deflated-Sharpe/holdout gates; benchmark_meaningful is correctly false. Failure pattern: no_edge/overfit multi-instrument market-neutral ratio-momentum basket, negative per-trade, outlier-carried (L45/L22).

Implementation

Market-neutral alt/BTC relative-strength momentum basket on BINANCE USD-M 1-DAY bars. For each alt in {ETH, SOL, BNB, XRP} it computes the vol-normalized trend of the alt/BTC price ratio over trend_lookback days and returns the basket mean of those z-scores as a continuous alt-season score. On a calendar-anchored schedule (days-since-epoch // rebalance_days, identical across restarts, backtests and paper replay) it goes LONG the alt and SHORT its BTC hedge when the ratio trend exceeds +entry_band, takes the mirror position below -entry_band, and stands the pair flat in between; every pair's BTC leg nets into one BTC position so the aggregate book carries no intentional market direction. The hedge is unit-beta by default (exactly dollar-neutral, trading the ratio the signal is built on), with the rolling-beta construction retained behind the beta_hedge flag. Positions move via netting delta orders toward signed target notionals, equal weight across active pairs at gross_exposure of equity, leverage 1.0, and the single-instrument hooks are inert. All statistics are bounded-deque running sums: O(4) work per bar, no history rescan, no supplementary feed, no options surface.

Verification Results

CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.

Backtest Review

Clean incremental market-neutral construction; adequate sample (369 trades) with both long-alt and short-alt legs; ran end-to-end timeout-safe

Backtest Review

Genuinely differentiated (ratio-trend, correct sign vs the dead reversion) and only 3 tunables

Backtest Review

NEGATIVE per-trade edge: avg_trade_return_pct -0.092% — the strategy loses per trade net of fees; the +558% headline comes entirely from a few monster weeks (return_kurtosis 499, skew 12: 2024-12-26 +88%, 2021-03-11 +55%, 2023-11-30 +44%)

Backtest Review

Not significant: Sharpe 0.42 with bootstrap CI [-0.40, 1.07] straddling zero; profit_factor only 1.11

Backtest Review

Not actually neutral: annualized_volatility 93%, max_drawdown 34.5% (CI to ~100%), exposure 344% — book-level risk is enormous for a 'market-neutral' claim

Backtest Review

Headline inflated by open MTM: end_unrealized_pct 207 (a large share of total_return is un-exited paper gain)

Backtest Review

Recent regime negative: 2026 annual -8.2%, rolling Sharpe fell from +6 (2025-11) to -2.9 (2026-09), most 2026 months negative

Backtest Review

L45 multi-instrument beta/dollar-neutral major-perp basket family (0/84 survivors) — returns carried by outliers, not per-name edge

Iteration History

Verification failed (Layer 4 — QA review): - The corrected-engine sandbox of the shipped configuration is net-negative and contradicts the developer's engine-free study (checklist #7). The developer reports the shipped beta-hedge defaults (trend_lookback 30, entry_band 0.5, rebalance 7d) score Sharpe 0.32 / +0.22% per period, but the Layer-3 sandbox of that exact config is total_return -13.84%, Sharpe -0.29, profit_factor 0.80, avg_trade_return_pct -1.379%, win_rate 0.36 over 39 trades (avg hold 22 days), with residual beta 0.14 (benchmark_correlation 0.24 -- the beta hedge is not cleanly neutralizing). My consistent bar this session is that a positive study must be corroborated by, not contradicted by, the corrected-engine sandbox -- the test that distinguished the vol-squeeze and OI-decline strategies I passed (positive sandbox) from the Donchian/momentum-ignition attempts I failed. Here the sandbox contradicts even the weak +0.32 claim. - The shipped construction is the developer's own acknowledged WEAKER variant, and even the stronger one is not established. The developer discloses that the hypothesis-specified rolling BETA hedge scores Sharpe 0.32 whereas a pure DOLLAR-NEUTRAL hedge (beta fixed at 1, i.e. trading the ratio exactly) scores 0.52, because 'the beta estimate adds noise and decouples the position from the signal, which IS the ratio.' So beta_hedge=True (shipped to honor the filing) is knowingly suboptimal, and even the beta=1 alternative at Sharpe 0.52 is 'suggestive, not established.' The strategy's stated market-neutrality also relies on that noisy beta hedge, which the sandbox shows leaving residual beta 0.14. - Evidence is weak and thin overall: portfolio Sharpe spans 0.3-0.6 across the study depending on config, the sandbox sharpe_ci is [-1.83, +1.24] (spans zero), return_kurtosis 10.6 with a single -$17,108 outlier loss on 39 trades. Even the best full-sample number is below typical promotion floors.

Iteration History

Verification failed (Layer 4 — QA review): - The corrected-engine sandbox is net-negative and NO reachable configuration rescues it -- a regime failure the corroboration bar cannot be met against (checklist #7). The developer reconciled the iteration-1 study-vs-sandbox contradiction: the +0.32/+0.52 Sharpe was FULL-SAMPLE (2020-09..2026-08) while the sandbox replays only the trailing 365 days, and re-measuring that exact window shows every one of 12 cells negative -- beta-hedge L20/0.5 -1.31, L30/0.5 -1.10, L60/0.5 -0.65; unit-beta L20/0.5 -0.49, L30/0.5 -0.55, L60/0.5 -0.11 (Sharpe), all lookback x band x hedge combinations negative. The alt/BTC relative-strength trend earned its full-sample Sharpe in earlier years and has been absent-to-adverse for the last twelve months. The shipped (now unit-beta) sandbox is total_return -8.67%, Sharpe -0.17, PF 0.86, avg_trade_return_pct -1.195%, 39 trades. Because the edge is regime-dependent and the entire recent measurable window is adverse, no change available in this file can produce a positive corrected-engine sandbox. - Even the full-sample edge is weak (best config unit-beta Sharpe 0.52, 'suggestive not established') and the sandbox is outlier-influenced (return_kurtosis 10.5, avg_win 3613 / avg_loss 2342 with a single -$17,401 loss on 39 trades). So aside from the regime failure, the underlying edge magnitude is marginal.

Iteration History

Verification failed (Layer 4 — QA review): - The iteration-3 'fix' makes the corrected-engine sandbox WORSE, refuting its own thesis (checklist #7). The developer argues the iteration-2 regime verdict was a lookback artifact and that trend_lookback=20 is a positive plateau (their engine-free trailing-year Sharpe +0.80 to +0.87), and changed the single default 30->20. But the corrected-engine sandbox of the shipped L=20 config is total_return -14.88%, Sharpe -0.30, profit_factor 0.78, avg_trade_return_pct -1.131% over 49 trades -- worse than iteration 2's L=30 sandbox (-8.67%, Sharpe -0.17), and the third consecutive negative sandbox for this hypothesis (iter 1 -13.84%, iter 2 -8.67%, iter 3 -14.88%). My corroboration bar (a positive study must be corroborated by, not contradicted by, the corrected-engine sandbox) fails hard: the study claims +0.80, the sandbox returns -0.30. - The engine-free study the iteration-3 thesis rests on is over-optimistic by the developer's own admission, so it cannot override the sandbox. Caveat #1 states the L20/band0.5/H7 trailing-year figure (+0.87) disagrees with the -0.49 measured for the same cell, attributed to the study's fee convention (one 0.10% round trip per unit of |delta weight|). That fee model is more lenient than the engine's per-fill charge, which systematically inflates the plateau surface -- and is precisely why every iteration's engine-free positive has been contradicted by a negative corrected-engine sandbox. The authoritative measurement (the sandbox) is negative in all three iterations; the plateau claim is an artifact of the undercharged fee convention.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.