Skip to content

View translation

VolatilityManagedLongMajorsBasket6

Hypotheses

Volatility-Managed Long-Only Majors Basket (BINANCE USD-M, 6 Majors Equal-Weight, Scale Exposure by Realized-Volatility Regime — Full in Calm, Half in Elevated, Cash in High-Vol — Weekly, Pure OHLCV, 2-Parameter)

Hypotheses

A LONG-ONLY, weekly-managed equal-weight basket of 6 data-verified USD-M majors (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, AVAXUSDT, LINKUSDT) whose distinguishing mechanism is a VOLATILITY-MANAGED exposure overlay (Moreira & Muir, 'Volatility-Managed Portfolios', JF 2017) — a documented, mechanically-simple way to raise Sharpe that is ORTHOGONAL to the momentum and carry factors already in the portfolio. Instead of predicting direction, it scales gross exposure DOWN when recent realized volatility is high (because volatility is persistent and high-vol reliably precedes drawdowns, especially in crypto) and holds full exposure when markets are calm. This is distinct from the promoted cross-sectional momentum (ranks by return), my dual-momentum (trend gate), and the carry baskets (funding) — none of them use a volatility-timing overlay. It is built against this session's hard lessons: PURE OHLCV only (best-surviving tag, 5%; no OI/liquidation/funding data walls), MULTI-ASSET equal-weight (escapes the 0/213 single-symbol no-edge class), STANDARD BINANCE USD-M linear venue and a plain hold-and-resize structure (avoids the COIN-M venue-mismatch and 10-parameter tick-data implementation failures that sank my prior two proposals at Layers 2/4). Only 2 tunable parameters (vol lookback, regime cutoffs) to resist overfit (the 202x killer). Discrete 3-state regime switching keeps turnover — and fees — low.

Hypotheses

Iteration 3 makes the smallest change that attacks the one annualization-INDEPENDENT, real failure the QA flagged: max_drawdown 71.1% (worse than the promoted regime-gated survivor's 33.7%) because a pure realized-vol overlay de-risks too late — drawdowns accumulate while vol is still merely 'elevated'. The fix is additive and mirrors the surviving archetype: a BTC-SMA downtrend gate (_regime_ok) that forces the book fully to cash whenever BTC is below its regime_sma_days SMA, layered on top of the unchanged 3-state vol overlay, plus a faster default vol_lookback (10 vs 20) so genuine vol spikes cut exposure sooner. This directly targets the drawdown driver (sustained downtrends the vol timer misses) rather than tuning parameters that 'cannot touch the core issue'. Everything that already passed Layers 1-3 is untouched — imports are unchanged (no banned imports), the multi-asset scaffold, portfolio-value spot sizing, re-equalization, order routing, and the continuous risk-on signal are identical; only the exposure decision gains the trend gate and one new tuned parameter (regime_sma_days). The non-diagnostic |Sharpe|>5 / 890%-vol / data_days=18 result is, per the QA itself, a metrics-engine annualization artifact of this strategy's low turnover (it recurs on both venues and is 'not a code bug'), so it is not fixable in strategy code; however, by keeping the book invested through calm uptrends and cash only in high-vol/downtrend states, the trend gate regularizes the return stream and should reduce the long flat-cash stretches that trigger the artifact, while the drawdown reduction is the substantive improvement the reviewer asked for. The venue stays BINANCE_SPOT (correct per the venue rules for a long-only, no-leverage, no-funding basket), leverage 1.0, so sizing is capital-relative off reconstructed portfolio value with no leverage-in-sizing gate.

Hypotheses

Suspected backtest artifact: multiple physically impossible single-day equity returns on a long-only spot basket — 2024-01-18 +108.8%, 2021-09-23 +77.5%, 2021-01-14 +70.6%, 2020-09-03 +54.7% — at a stated <=0.90x gross exposure with no leverage, where the 6-major underlyings cannot move that far in a day (return_kurtosis 9.7). Corroborating symptoms: exposure_pct 269% against the 0.90x cap and end_unrealized_pct -56% on a long-only book, pointing to a SPOT CASH book-value/MTM reconstruction artifact in _portfolio_value() (the developer's own sibling notes a 'BINANCE spot-CASH held-position MTM defect'). The corruption sits exactly on the years that carry the result (2021 +520%, 2024 +118%), so the headline Sharpe 1.19 (CI [0.56, 1.83]), PSR 0.9987, PF 2.01 and 3262% return are computed on an invalid equity curve and cannot be trusted — not a validated edge. I am not asserting the exact mechanism; per artifact-handling policy this warrants factory-gate/manual review of the SPOT CASH accounting rather than 2 hours of optimization on a corrupted series. Even setting the artifact aside, it is a beta-driven long-only majors basket (bull-carried) with max_drawdown 37.9% (CI to 69.7%) and mostly negative stress windows. Failure pattern: suspected backtest artifact (SPOT MTM/book-value) + beta-driven long-only basket.

Implementation

Long-only, weekly-managed equal-weight basket of 6 BINANCE_SPOT majors (BTC, ETH, SOL, BNB, AVAX, LINK), daily bars, pure OHLCV. Its core mechanism is a Moreira-Muir volatility-managed exposure overlay: it measures the equal-weight basket's annualized realized volatility over a 10-day lookback and scales gross exposure via a discrete 3-state regime — full (0.90) when calm, half when elevated, cash when high-vol. Iteration 3 adds a downtrend gate on top: whenever BTC closes below its 50-day SMA the whole book is forced to cash, giving the sustained-downtrend drawdown control a pure vol overlay lacks. All 6 names are held equal-weight, resized to exposure/6 of portfolio value, re-equalized weekly and fully sold in the cash state. Long-only, no leverage, no shorts, no supplementary data. 3 tuned parameters (vol_lookback, vol_cutoff, regime_sma_days).

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

Legitimate, well-documented mechanism (Moreira-Muir vol-managed exposure) with a trend gate; low fee drag (commission 1.83% of gross)

Backtest Review

Headline stats look strong on the surface (PF 2.01, alpha 0.26, Sharpe CI lower bound > 0) — but see the artifact below

Backtest Review

Suspected backtest artifact: impossible single-day equity returns at <=0.90x spot exposure — 2024-01-18 +108.8%, 2021-09-23 +77.5%, 2021-01-14 +70.6%, 2020-09-03 +54.7% (kurtosis 9.7)

Backtest Review

exposure_pct 269% vs a 0.90x no-leverage cap and end_unrealized_pct -56% on a long-only book — SPOT CASH book-value/MTM reconstruction artifact contaminates the equity curve, so Sharpe 1.19 / PSR 0.9987 / 3262% return are untrustworthy

Backtest Review

Even ignoring the artifact: beta-driven long-only majors basket carried by 2021 (+520%) and 2024 (+118%); max_drawdown 37.9% (CI to 69.7%), stress windows mostly negative (FTX -21%, yen-carry -12%)

Iteration History

Verification failed (Layer 4 — QA review): - VENUE MISROUTE + OPTIMISTIC FUNDING-FREE BACKTEST — identical to the dual-momentum block. Long-only, leverage 1.0, no shorts, pure-OHLCV vol-timing 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 USD-M longs pay funding. Perp-cheap-fee + zero-funding doesn't exist live → optimistic/non-deployable. The rationale repeats the same 'USD-M fees are cheaper' argument already rejected — it only holds because the backtest is funding-blind. - Metrics internally inconsistent/untrustworthy: Sharpe 6.18 (L17 >5 flag) + annualized_vol 979% can't reconcile with cagr 25.3%/total_return 321%; data_days=12 contradicts 195d avg holding, 1253d DD duration. Broken annualization from the mislabeled window; sharpe_ci -1.86 to 13.10 is uninformative. Not evidence of edge. - Non-blocking: exposure_pct 525% is the 6-leg time-in-market artifact (not a leverage breach; per_symbol_weight=gross/6 → correct 0.90x gross); frozen-signal warnings benign; 76.4% max DD is severe for a drawdown-reduction thesis (analyst call on honest data).

Iteration History

Verification failed (Layer 4 — QA review): - NON-DIAGNOSTIC BACKTEST: Sharpe 5.28 (L17 >5 flag) coexists with annualized_vol 890%, var_95 35.8% — physically impossible for a leverage-1.0, 0.90x-gross spot majors basket — and cannot reconcile with cagr 21.9%/total_return 443%. Root cause is data_days=18, contradicted by 176d avg holding, 1036d DD duration, 77 trades. Recurs on BOTH venues (iter-1 USD-M: Sharpe 6.18, vol 979%, data_days 12), so it's a metrics-engine annualization artifact from this strategy's low turnover, not a code bug. Per L17, an internally-inconsistent |Sharpe|>5 backtest must not advance as diagnostic. - On annualization-INDEPENDENT metrics, the overlay fails its thesis: max_drawdown 71.1% — worse than the promoted regime-gated spot rotation (33.7%), on par with failed dual-momentum (76.9%). 20-day vol lookback / 0.65 cutoff de-risks too late. Strong abandon signal. - Non-blocking: exposure_pct 433% is the 6-leg time-in-market artifact (not leverage breach; avg_position 18.7%/name → correct 0.90x gross); frozen-signal warnings benign.

Iteration History

Verification failed (Layer 4 — QA review): - NON-DIAGNOSTIC BACKTEST PERSISTS (3rd consecutive iteration): Sharpe 5.56 (>5, L17), annualized_vol 445%, data_days 44 — irreconcilable with cagr 45.8% (coherent Sharpe ~0.1, off ~50x). Identical artifact to iter-1 (6.18/979%/12) and iter-2 (5.28/890%/18), across both venues and now the trend gate → confirmed engine-side, from heavy time-in-cash, NOT strategy code. The Sharpe-centric optimizer/holdout/promotion gates would run on corrupted inputs. Can't certify or advance. - CREDIT: the iter-3 downtrend gate WORKS — max_drawdown 71.1% → 36.83%, now in line with the promoted regime-gated survivor (33.7%), resolving my annualization-independent concern. Independent metrics now decent (PF 1.79, avg_trade 4.09% net, 201 trades). IF the metrics artifact is fixed, this is worth a clean re-run. - Non-blocking: exposure_pct 269% is 6-leg time-in-market artifact; funding_events_available=0 correct on spot; frozen-signal warnings benign.
Strategy report

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