Skip to content

View translation

SpotVolatilityTargetedMajorsBasketLong

Hypotheses

Volatility-Targeted Crypto Majors Spot Basket, Long-Only (4 BINANCE_SPOT Majors: BTC/ETH/SOL/BNB, Daily Bars, Hold an Equal-Weight Basket of Names Above Their Long-Term Trend but SCALE TOTAL DEPLOYED EXPOSURE Inversely to Realized Portfolio Volatility to Hit a Constant Vol Target, Low-Turnover, 3-Parameter)

Hypotheses

A LONG-ONLY crypto-majors SPOT basket (BTC/ETH/SOL/BNB) whose edge is NOT a directional signal at all but PORTFOLIO VOLATILITY MANAGEMENT — the documented Moreira-Muir 'volatility-managed portfolio' premium, which has never been tested in this factory. Mechanism: hold an equal-weight sleeve of the majors that are above their long-term trend, but scale the TOTAL deployed percentage inversely to the basket's recent realized volatility so the portfolio targets a constant volatility. Because realized volatility is persistent and high-vol regimes in crypto deliver systematically worse risk-adjusted returns (vol clusters, and drawdowns happen in high-vol states), cutting exposure when vol is high and adding when vol is low improves the Sharpe and slashes drawdown versus static buy-and-hold — an edge that is orthogonal to price direction. This is deliberately structurally distinct from every dead/in-pipeline family: NOT a fade/reversal (no counter-trading of moves — the fade/reversal/premium/OI-squeeze siblings all lost money), NOT a rare-event trigger (exposure is a continuous state, avoiding the no_trades death), NOT cross-sectional RANK rotation (no return ranking, no top-K selection; ALL trending majors are held — L32's exhausted mechanism is absent), NOT funding-carry (L33), NOT options (no trade-count wall), NOT the deep-dip reversion basket that just overfit (IS 8.3 → OOS -2.64; this has no reversion-entry to curve-fit — the only fitted quantities are a vol target and two lookbacks). Long-only spot (CASH) is structurally immune to leverage blow-ups. Fills the under-represented BINANCE_SPOT venue and the near-empty macro/long-horizon bucket; low turnover (weekly rebalance + no-trade band) makes the ~0.20% round-trip negligible.

Hypotheses

Addresses the two actionable Layer-4 findings with minimal changes while keeping the vol-scaling logic that passed earlier layers. (1) The QA-flagged execution/accounting suspect on the exit path is fixed: a name leaving the sleeve (target 0) now closes through _submit_exit_position (reduce-only close), which books the reduction correctly and frees CASH before the buy loop, instead of a SELL routed through _submit_entry_instrument; partial vol-trims remain capped SELLs that only ever reduce a long. (2) The unmeasurable/barely-exercised-edge problem (only 6 trades because the SMA(100) gate parked the basket in cash almost the whole window, so the closed-trade set was all trend-break losers while winners stayed open) is fixed by shortening trend_len 100->50 (the basket is invested far more of the window, so the weekly inverse-vol rebalance actually trades and the Moreira-Muir vol-management overlay is genuinely tested) and tightening rebalance_band 0.15->0.10 (more of the weekly vol-driven size adjustments and eligibility crossings clear the band), which together lift the trade count toward the measurability floor across four names and ~50 weekly rebalances. The inverse-vol deploy formula, per-name trend gate, true-NAV _portfolio_value marking, SELLS/closes-before-BUYS ordering, and long-only CASH sizing (gross <= 0.95x, leverage 1.0) are otherwise unchanged, so Layers 1-3 stay green and imports remain clean. I acknowledge QA's deeper concern that a pure-OHLCV SMA-gated approach is a low-survival class and that a vol overlay cannot manufacture positive expectancy from a trend-held basket in a down window; that is inherent to the hypothesis's stated premise (a direction-orthogonal vol-management premium) and cannot be resolved without abandoning it or adding a feed, which would exceed a smallest-change iteration -- these fixes make the strategy execute and measure correctly so the analyst can judge the premium on a reliable, adequately-sampled backtest rather than on a 6-trade artifact." }

Hypotheses

The backtest is untrustworthy: the equity/accounting is corrupted. total_return +8,697% (87x) is impossible for a long-only unlevered (<=1x) spot basket, and daily returns of +241% (2021-05-20), +158% (2019-07-04), +88.7% and +84.3% are physically impossible for a <=0.95x long-only book; avg_win $426k / largest_loss -$2.9M on a $100k account (26-29x equity swings) plus turnover 635 (vs the claimed low-turnover weekly rebalance) show the sizing/rebalance is over-deploying and compounding incorrectly. The internal contradiction confirms it — headline +8,697% but Sharpe -0.087, avg_trade_return_pct -0.785% (negative), information_ratio -0.21, PSR 0.375 — so under the artifact there is no real edge (skew -4.5, kurtosis 67.7, max_dd CI high ~100%). I flag the symptom without asserting the exact bug I haven't traced. This is already iteration 2: the developer reworked exit accounting after a QA 'accounting suspect' flag and the result is now more broken, so optimizing the corrupted series would only curve-fit artifacts. The underlying family is also dead — the VolatilityManagedLongMajorsBasketDaily sibling was abandoned this session with IR -0.60 and ~0 alpha vs its basket (vol-managing a long majors basket adds negative active value), and here beta 0.51 / benchmark_correlation 0.70 with negative alpha-after-overlay points the same way. Optimizing vol_target/trend_len/vol_lookback cannot fix a sizing/accounting defect or create edge the family structurally lacks. Abandon.

Implementation

Long-only, low-turnover volatility-managed spot basket over four Binance SPOT majors (BTC/ETH/SOL/BNB), daily bars, pure OHLCV. Each weekly rebalance holds an equal-weight sleeve of the majors above their SMA(trend_len=50), scaling the TOTAL deployed fraction inversely to the basket's realized vol to hit a constant target: deployed = min(vol_target=0.60 / annualized_basket_vol_over_vol_lookback=30d, gross_exposure=0.95). Each eligible name targets deployed/n_eligible of equity; non-trending names go to cash. Rebalancing uses delta-to-target with a 10% no-trade band: full exits close reduce-only via _submit_exit_position, partial vol-trims are capped SELLs, then buys top up to target. Targets are fractions of true CASH equity so total deployed <= 0.95x (no leverage). 3 tuned params (vol_target, trend_len, vol_lookback).

Verification Results

Verification failed (Layer 4 — QA review): - Sandbox shows the code-defect signature the factory repeatedly mis-diagnoses as edge failure: win_rate = 0.0 AND profit_factor = 0.0 (all 6 closed trades lost, gross profit exactly zero), Sharpe -1.94, total_return -33.3% == max_drawdown. Directional/scaling polarity is correct on inspection (inverse-vol deploy = min(vol_target/basket_vol, gross); trend gate close>SMA; long-only reduce capped at held), so the likely remaining fault is the EXECUTION/ACCOUNTING path. Two suspects: (1) reductions submit SELLs via _submit_entry_instrument(OrderSide.SELL) rather than _submit_exit_position — verify this reduces the long on CASH and isn't rejected/mis-booked; (2) the BUY loop recomputes _held_qty after submitting SELLs, but fills aren't synchronous within on_bar, so buys are sized against capital the pending sells haven't freed. PF exactly 0.0 with every trade a loss must be diagnosed as a bug, not routed onward as fee/edge. - Unmeasurable: 6 trades over 363 days is an order of magnitude below the ~100-trade floor, so win_rate/PF/Sharpe carry no signal. A weekly 4-name rebalance should produce ~200 rebalance-events but yielded 6 trades — the strategy sat in cash almost the whole window (SMA(100) gate rarely satisfied), which explains the 0.11 benchmark correlation despite 76% in-position exposure and means the vol-management edge was barely exercised. - Pure-OHLCV (SMA trend gate + realized-vol scaling, no directional edge). Pure-OHLCV has 0% survival across 213 prior runs and SMA-trend gates are a repeatedly-abandoned class. The vol overlay is orthogonal to direction and can't create positive expectancy if the trend-held basket has none — and the outcome contradicts the hypothesis's drawdown-reduction claim (33% drawdown).

Verification Results

Analyst should ABANDON at backtest_review rather than optimize; parameters cannot flip negative expectancy. No further developer iteration is warranted.

Verification Results

STRONG ABANDON RECOMMENDATION (not a QA code fail). With execution fixed and the edge now exercised, the sandbox is decisively negative and WORSE than iter-1: total_return -38.87%, Sharpe -1.15, PF 0.126, win_rate 0.19, avg_trade_return_pct -5.63%, max_drawdown 46.78%, largest_loss -$13,469 over 21 all-long trades. Fixing the accounting making it worse CONFIRMS the iter-1 all-loss was not a booking artifact — it's a non-viable mechanism. Result also contradicts the hypothesis's drawdown-reduction claim. The developer concedes the vol overlay can't manufacture positive expectancy from a trend-held basket in a down window.

Verification Results

Abandon the pure-OHLCV framing; do not iterate parameters.

Verification Results

Pure-OHLCV mechanism (SMA trend gate + vol scaling, no directional edge). Pure-OHLCV has 0% survival across 213 prior runs; the vol overlay is orthogonal to direction and cannot create positive expectancy where the trend-held basket has none.

Verification Results

Moot given abandon; if ever iterated, net target deltas or defer buys one bar.

Verification Results

21 trades is below the ~100 floor but enough to establish a decisively negative result (PF 0.126, 46.8% DD are not noise). Minor residual: the BUY loop recomputes _held_qty before same-bar SELLs/closes fill (non-synchronous), so buys may be sized against unfreed CASH and partially rejected — can under-deploy but doesn't affect the negative conclusion.

Backtest Review

Novel-for-this-factory framing (Moreira-Muir vol-managed premium); no liquidation flag.

Backtest Review

Corrupted equity series: total_return +8,697% (87x) is impossible for a long-only unlevered (<=1x) spot basket; single-day returns of +241%, +158%, +88.7% are physically impossible.

Backtest Review

avg_win $426k / largest_loss -$2.9M on a $100k account (26-29x equity swings) and turnover 635 contradict the 'low-turnover weekly rebalance' design — sizing/rebalance is over-deploying/compounding wrongly.

Backtest Review

Internal contradiction: +8,697% headline but Sharpe -0.087, avg_trade_return_pct -0.785% (NEGATIVE), information_ratio -0.21, PSR 0.375 — no real edge under the artifact.

Backtest Review

Iteration 2: the exit-accounting rework (QA 'accounting suspect') did not resolve it; the result is now more broken.

Backtest Review

Family already dead: the VolatilityManagedLongMajorsBasketDaily sibling was abandoned this session with IR -0.60 / ~0 alpha vs its basket.

Outcome Summary

This strategy tried to import the Moreira-Muir volatility-managed premium into the factory, holding trending majors while scaling total exposure inversely to realized volatility to target constant vol. But the backtest was internally corrupted: a physically impossible +8,697% total return, single-day gains above 240%, and 26-29x equity swings on a $100k account, all while the true edge was negative (Sharpe -0.087, avg_trade_return_pct -0.785%). Iteration 2 had reworked exit accounting after a QA flag, yet the result came back more broken, and the sizing/rebalance was clearly over-deploying and compounding wrongly. The analyst abandoned it at backtest review — the accounting defect made the series untrustworthy, optimization would only curve-fit artifacts, and the already-dead sibling basket confirmed the vol-managed-majors family adds negative active value.

Outcome Summary

A spectacular headline return is a red flag, not a win — sanity-check equity against leverage constraints (an unlevered long-only book cannot return 87x or post +241% single-day gains), and don't keep iterating a mechanism whose sibling already proved the family has no edge; a corrupted accounting/sizing path must be fixed before any metric can be trusted.

Outcome Summary

The analyst abandoned it at the pre-optimization backtest-review gate because the equity/accounting was corrupted (sizing/rebalance over-deploying and compounding incorrectly); iteration 2's exit-accounting rework, prompted by a QA 'accounting suspect' flag, left it more broken, and the sibling VolatilityManagedLongMajorsBasketDaily had already been abandoned this session with IR -0.60 and ~0 alpha, indicating the family structurally lacks edge.

Outcome Summary

A long-only spot basket of four BINANCE_SPOT majors (BTC/ETH/SOL/BNB) that applied the Moreira-Muir volatility-managed premium — holding an equal-weight sleeve of names above their long-term trend but scaling total deployed exposure inversely to the basket's realized volatility to hit a constant vol target, rather than trading any directional signal.

Outcome Summary

The backtest was corrupted and untrustworthy: an impossible +8,697% total return for an unlevered (<=1x) long-only book, physically impossible single-day returns (+241%, +158%, +88.7%), avg win $426k and largest loss -$2.9M on a $100k account, and turnover of 635 that contradicted the low-turnover design — all alongside a negative real edge (Sharpe -0.087, avg_trade_return_pct -0.785%, information ratio -0.21).
Strategy report

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