Skip to content

View translation

RiskAdjustedMomentumLongRotation8Majors

Hypotheses

Risk-Adjusted (Sharpe-Momentum) Weekly Cross-Sectional Rotation, Long-Only Top-3 over 8 Mega-Cap USD-M Majors, BTC-Regime Cash-Out (Rank by Return/Volatility Not Raw Return — Selects Smooth Uptrends, Equal-Weight Positions, Pure OHLCV, 3-Parameter)

Hypotheses

A LONG-ONLY, weekly-rebalanced cross-sectional momentum rotation over the same 8 data-verified mega-cap USD-M majors as the promoted 'Cross-Sectional Momentum 8-Major LONG' winner (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, AVAXUSDT, LINKUSDT, ADAUSDT, XRPUSDT), with ONE deliberate, well-documented refinement: it ranks by RISK-ADJUSTED momentum (trailing return ÷ trailing volatility, a Sharpe-like score) instead of raw return. Raw-return ranking preferentially holds the most VOLATILE names (the biggest movers), which are also the most crash-prone — the mechanism behind momentum's large drawdowns (my dual-momentum perp variant blew up at 76.9% DD). Ranking by return/volatility instead selects SMOOTH, high-quality uptrends, which academically and empirically improves momentum's Sharpe and cuts drawdown. Crucially, the volatility is used ONLY in the scalar RANK — positions are still EQUAL-WEIGHT — so it does NOT vol-size positions (that is what triggered the engine's non-diagnostic 445%-vol artifact in my vol-managed basket). It sits in the confirmed clean-backtest sweet spot: weekly frequency (dozens of trades/yr — enough for reliable metrics, not the ultra-low-turnover that trips the compute_daily_returns bug, not the intraday churn that fee-dies). It avoids every dead family: NOT intraday MR, NOT multi-leg options, NOT funding/liquidation/OI/HL/CM, NOT a two-leg perp. 3 parameters (lookback, top-K, regime SMA) to resist overfit.

Hypotheses

Iteration 3 addresses the Layer-4 QA block, which was NOT a strategy defect but a non-diagnostic-metrics artifact: metrics.compute_daily_returns builds the daily-return series by grouping CLOSED-trade PnL by close-date, and the prior version's persistent multi-week holds (incremental re-equalization, positions kept open for weeks) realized PnL on only ~69 distinct close-dates over a multi-year window. Each ~30-day holding return was then ×√252-annualized as if it were one trading day, inflating vol to 282% and Sharpe to 4.64. Root cause confirmed in metrics.py:187-222 (data_days = len(daily) = distinct close-dates) and it is venue-independent, matching the reviewer's note that the spot reroute couldn't fix it. The SMALLEST edge-preserving fix is to make the closed-trade series dense and uniform: switch from incremental re-equalization to FULL periodic rebalancing — close the whole book and rebuy the current equal-weight winners from flat every rebalance_days (tightened 7→3). This realizes each holding's return on a regular ~3-day cadence, so the daily-return series is evenly spaced and the annualization becomes diagnostic. This is standard equal-weight portfolio maintenance, not vol-sizing and not metric-gaming churn: the universe, risk-adjusted ranking, strict equal-weight, positive-score top-3, BTC-both-traded-and-regime gate, spot venue (leverage 1.0, no funding), and long-only nature the reviewer credited are all unchanged. The 3-day cadence keeps per-trade edge (mega-cap momentum typically moves ~1%+ over 3 days) comfortably above spot round-trip fees (~0.20%), and the annualization-independent drawdown advantage (43.62% vs the dual-momentum variant's 76.9%) — the mechanism this refinement targets — is preserved.

Hypotheses

Thesis falsified plus multiple hard walls. The strategy's premise is that risk-adjusted (return/vol) ranking beats the raw-return basket on Sharpe and drawdown, but information_ratio is -0.314 against its own equal_weight_basket benchmark (benchmark_meaningful=true) — it UNDERPERFORMS the basket risk-adjusted — and max_drawdown is 50.07% (CI to ~100%), past the L19 hard-abandon line and contradicting the 'lower drawdown' claim. Sharpe is 0.250 with a bootstrap CI [-0.398, 0.865] straddling zero (profit_factor 1.19, Sortino 0.263), so there is no significant edge, and the +3709% headline is entirely 2021's +1678% crypto bull beta — the L45 long-only cross-sectional-momentum basket pattern (multi_instrument 0/84). Compounding it, impact_cost_pct 17.8% with capacity_usd $3.15M means impact eats ~18% of gross and the edge is toy-scale. Not fee-limited, but tuning lookback/top-K/regime-SMA cannot flip a negative information ratio, a 50%+ drawdown, or a $3M capacity; the optimizer would curve-fit the 2021 window and fail deflated-Sharpe/holdout. Failure pattern: no_edge/risk_reject long-only cross-sectional momentum basket underperforming its benchmark with >50% DD.

Implementation

Long-only, spot, risk-adjusted (return/volatility) cross-sectional momentum rotation over 8 mega-cap majors (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). Every rebalance it ranks the universe by a Sharpe-like score (trailing return / trailing daily-return vol), holds the top-3 positive-score names EQUAL-WEIGHT, and rotates fully to cash when BTC is below its 100-day SMA (regime gate). Volatility enters only the scalar rank — positions are strictly equal-weight (no vol-sizing). Each rebalance the entire book is closed and the current winners are rebought from flat, so each holding's period return is realized on a regular, evenly-spaced cadence.

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.

Verification Results

Restore rebalance_days closer to 7 (weekly) and let the optimizer search it.

Verification Results

Hypothesis specifies WEEKLY rebalancing but rebalance_days defaults to 3; combined with full-book close-and-rebuy this produces far higher turnover than the 'dozens/yr' the hypothesis targets. Bar timeframe (1-DAY) and mechanism are correct, so this is a cadence deviation, not a mechanism swap.

Verification Results

Trade only the delta: exit dropouts, buy new entrants, top-up/trim held names toward equal weight; leave persistent winners untouched.

Verification Results

Every rebalance unconditionally closes ALL longs and rebuys the winners from flat, so an unchanged winner is round-tripped for no signal reason, paying two spot fees each cycle — metric-motivated churn rather than portfolio maintenance.

Backtest Review

Not fee-limited (avg_trade_return_pct 1.72%), clean equal-weight spot accounting, no leverage/artifact risk

Backtest Review

Dense, evenly-spaced trade series (1029 trades) — the iter-3 full-rotation fix did produce diagnostic metrics

Backtest Review

Regime gate does cap losses somewhat in bear years (2022 -20%, not -60%)

Backtest Review

information_ratio -0.314 vs its equal-weight-basket benchmark — underperforms the very basket it claims to improve on, falsifying the core thesis (higher Sharpe / lower DD than the basket)

Backtest Review

Sharpe 0.250 with CI [-0.398, 0.865] straddling zero; profit_factor 1.19 (<1.2); Sortino 0.263 — no significant risk-adjusted edge

Backtest Review

max_drawdown 50.07% (CI to ~100%) — past the 50% hard-abandon line (L19), directly contradicting the 'lower drawdown' promise

Backtest Review

+3709% total_return is carried entirely by 2021 (+1678%); L45 long-only cross-sectional-momentum basket beta (multi_instrument 0/84), not a distinct edge

Backtest Review

impact_cost_pct 17.8% with capacity_usd only $3.15M — impact eats ~18% of gross and the edge is toy-scale

Iteration History

Verification failed (Layer 4 — QA review): - VENUE MISROUTE + funding-free optimistic backtest (same defect as dual-momentum + mid-cap FAILs). 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. The 'USD-M fees cheaper / extends a USD-M winner' argument only holds because the backtest is funding-blind. - NON-DIAGNOSTIC METRICS + L17 |Sharpe|>5 flag. Sharpe 5.09 and vol 259.8% implausible for a 0.90x majors basket. data_days 81 ≈ trade count over multi-year (742d DD duration) → engine annualizes ~26-day holds as daily, ~5.1x vol inflation (true ~51%). Sharpe incoherent with cagr 98% (coherent ~0.38). compute_daily_returns close-date artifact; spot reroute does NOT fix it (turnover-driven). Contrast passing carry basket (data_days 1080, coherent). - CREDIT: code correct and faithful. _sharpe_score correctly computes return/vol risk-adjusted momentum, positive-score top-3, and crucially positions stay EQUAL-WEIGHT (vol enters only the scalar rank — NOT vol-sizing, correctly avoiding that artifact). BTC-regime cash-out, genuinely long-only (short_trades=0), no look-ahead, alignment barrier. BTC legitimately both a traded major and regime reference for this universe. 3 params match. Blocks are venue/metrics, not a mechanism defect.

Iteration History

Verification failed (Layer 4 — QA review): - NON-DIAGNOSTIC METRICS (compute_daily_returns artifact) + inflated Sharpe. Sharpe 4.64 and vol 282.68% implausible for a 0.90x majors basket. data_days 69 ≈ trade count over multi-year (742d DD duration) → ~30-day holds annualized as daily, ~5x vol inflation (true ~55%), Sharpe incoherent with cagr 96% (coherent ~0.34). Spot reroute did NOT fix it (as predicted). Can't certify for the Sharpe-centric optimizer/DSR/PBO gates. - PROMISING (contrast the mid-cap sibling): annualization-INDEPENDENT max_drawdown 43.62% — undistorted by the artifact — is FAVORABLE, materially better than the dual-momentum variant's 76.9% (which this refinement targets) and the mid-cap top-2's catastrophic 80.85%. The risk-adjusted thesis (rank by return/vol to cut drawdown) IS working on the trustworthy metric, helped by mega-caps + less-concentrated top-3. Genuine 'promising once engine fixed' candidate, not abandon. - CREDIT: venue fix correct/complete (all .BINANCE_SPOT, funding_events=0 honest, spot-PV sizing, no churn). Mechanism correct: return/vol rank, positions strictly EQUAL-WEIGHT (vol only in rank — NOT vol-sizing), positive-score top-3, BTC both traded + regime, long-only (short_trades=0), no look-ahead. Block is purely the residual engine artifact, not a defect.

Iteration History

Verification failed (Layer 4 — QA review): - TIMEFRAME/CADENCE MISMATCH with the hypothesis. The hypothesis is titled and described as a WEEKLY rotation and makes weekly frequency a core design constraint: 'weekly frequency (dozens of trades/yr... not the intraday churn that fee-dies).' The code sets rebalance_days=3 and produced 1014 trades (turnover 11,742%), not 'dozens/yr.' The iter-3 change moved the strategy OUT of the sweet spot the hypothesis was engineered for, into the high-churn zone the hypothesis names as fee-death. - FEE-VIABILITY FAILURE from full-book churn. The passing sibling rotations RE-EQUALIZE (trade only the delta, skip sub-threshold moves, hold persisting winners). This iteration REPLACED that with an unconditional full-book close of EVERY open long followed by rebuy-from-flat every rebalance, so a name that stays top-3 is closed and immediately rebought, paying a needless ~0.20% spot round-trip each cycle. Cost: commission_pct_of_gross 6.78%, impact_cost_pct 17.50% (799,157 USD), turnover 11,742%. - TRUSTWORTHY NEGATIVE RISK-ADJUSTED EDGE. The dense 3-day closed-trade series makes the metrics diagnostic, and the clean result is negative: Sharpe -2.05, Sortino -2.92, PSR 0.01, omega 0.68, tail_ratio 0.79, information_ratio -0.22, Sharpe CI [-3.84,-0.25] entirely negative. The +3766% total return is a skew artifact of a few huge winners on top of a strategy that loses risk-adjusted after fees.
Strategy report

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