Skip to content

View original

BtcSpotVolatilityTargetedPassiveLong

Hypotheses

Volatility-Targeted Passive Long BTC on BINANCE_SPOT (Long-Only, No-Leverage Correct Venue — Hold BTC but Continuously Scale Exposure INVERSELY to Realized Volatility Toward a Constant Risk Target, De-Risking Into the Negatively-Skewed High-Vol Crash Regimes and Re-Risking in Calm Uptrends; NOT a Directional Signal, a Risk-Management Edge, Banded Rebalance, 2-Parameter)

Hypotheses

A LONG-ONLY, SINGLE-INSTRUMENT, NO-LEVERAGE risk-managed allocation to BTCUSDT.BINANCE_SPOT — deliberately placed on the SPOT venue per the routing rule (long-only, no leverage, exposure capped at 1.0x belongs on BINANCE_SPOT, the under-represented venue at 11.9% vs the >=15% target), and using ONLY OHLCV so there is no supplementary-feed data-ceiling or mechanism-falsification risk. It is a genuinely DIFFERENT edge family from everything now saturated and dying in this factory: it is NOT cross-sectional momentum/reversal (five such books just died overfit/fee_edge/decayed), NOT a single-instrument positioning FADE (funding/OI/premium/L-S all falsified), NOT a directional price-prediction signal at all, and NOT a dual-TF momentum clone (L38). The mechanism is VOLATILITY TARGETING (Moreira-Muir 'Volatility-Managed Portfolios'): hold BTC, but continuously scale the held fraction INVERSELY to recent realized volatility toward a constant risk target, so exposure falls automatically going into high-volatility regimes — which in crypto (as in equities) are negatively skewed and deliver poor risk-adjusted returns — and rises in calm, trending regimes. The edge is not predicting direction; it is harvesting the well-documented fact that volatility is persistent and forecastable while returns are not, so normalizing exposure by forecastable risk raises the Sharpe of a long BTC book and cuts its worst drawdowns versus static buy-and-hold. Banded rebalancing (only adjust when target exposure drifts materially) keeps turnover low so the ~0.20% spot round-trip is amortized. Just 2 parameters to keep the overfitting surface minimal.

Hypotheses

Implements the hypothesis exactly: a risk-management edge, not a directional signal. calculate_signal returns the continuous inverse-volatility exposure fraction every bar (it varies bar to bar and is never a gated constant), should_enter/position_size establish the initial holding at that fraction, and banded scaling of an existing holding is submitted from calculate_signal so the two paths never both fire on a bar. VENUE: long-only, no leverage, exposure hard-capped at 1.0 - so per the routing rule this belongs on BINANCE_SPOT (CASH account, leverage 1.0), not a futures venue; there is no shorting anywhere in the code and the base classs spot-short guard is the submission path used. PARAMETERS: exactly two searched knobs, vol_lookback and target_vol; the exposure cap, band, de-risk floor and cash buffer are fixed design constants. FEES: I measured the actual dynamics on the BINANCE_SPOT BTCUSDT daily catalog (3,271 bars). At vol_lookback=30 / target_vol=0.30 the target exposure over the last 365 days has quantiles 0.37 / 0.76 / 1.00 (5th/50th/95th) and sits at the 1.0 cap only 23% of the time, so the allocation genuinely varies rather than being a disguised buy-and-hold; with a 10% band that produces ~23 rebalances per year (and ~178 over the full history), each trading only the 10-20% drift slice, so the 0.20% spot round trip is charged on a small fraction of notional a couple dozen times a year. That is well inside what the drawdown reduction buys and far below the turnover of any signal-driven book. IMPLEMENTATION NOTES: portfolio value = get_account_equity() (USDT balance) + held BTC marked at the bar close, because on a CASH account the stable balance drops as BTC is bought and using it alone would make the strategy think it had already de-risked; sell quantities are floored to 6 dp and clamped to the holding so a rebalance can never turn into a phantom spot short; a 0.5% cash buffer keeps a 100%-exposure buy from being rejected once the taker fee is added; zero/flat-price and zero-volatility histories fall back to the capped allocation instead of dividing by zero. No supplementary data is used, so there is no data-ceiling or mechanism-falsification risk.

Hypotheses

Not worth optimizing for two independent reasons. (1) The result is structurally unmeasurable: metrics_reliable=false, total_trades=1 with a 3239-day hold-forever position, and the daily-return series collapsed to a single end-of-backtest point (only 2026-07-31 present) across a 9-year window — the entire PnL is one final mark, so Sharpe/drawdown are untrustworthy and the 3-phase optimization's IS/OOS windows and 15-day holdout cannot populate. (2) Even taking the numbers at face value, the risk-management edge did not materialize and the strategy is a closet BTC long: beta 0.508, benchmark_correlation 0.92, alpha only ~0.5%, and information_ratio -0.58 (NEGATIVE) — it does not beat its buy-and-hold benchmark on a risk-adjusted basis, which is the entire hypothesis. The promised drawdown reduction also failed to appear (max_drawdown 52.8%, essentially BTC's own drawdown). The 530% headline is just BTC appreciating over 9 years at partial exposure (benchmark_meaningful=true — judge alpha, not raw return). Optimizing 2 parameters cannot create alpha over buy-and-hold where the mechanism produced ~none, nor fix the degenerate measurement. Abandon at BACKTEST_REVIEW rather than spend 2 hours.

Implementation

Long-only, unlevered volatility-targeted allocation to BTCUSDT on BINANCE_SPOT, 1-DAY bars. Every bar it measures annualized realized volatility from the last vol_lookback daily log returns and sets the target held fraction to clip(target_vol / realized_vol, 0, 1.0) - so exposure falls automatically as volatility rises into the negatively-skewed crash regimes and returns toward fully invested in calm tape. The book is only traded when actual exposure drifts more than rebalance_band (10% of portfolio value) from that target, and each adjustment trades only the drift, not the whole position. Exposure is always measured against cash PLUS the marked value of BTC held, which is required on a CASH account where the stable balance alone falls as BTC is bought. The strategy never shorts and never levers: SELL orders only ever reduce the existing holding, and a full de-risk to cash happens only if the risk target implies an exposure below 5%.

Verification Results

Analyst should evaluate on a risk-adjusted, vs-buy-hold basis over the full multi-year backtest (Sharpe uplift + drawdown reduction), not on avg_trade_return_pct or the single-window sandbox return.

Verification Results

Sandbox metrics look alarming (win_rate 0.0, profit_factor 0.0, total_trades 1, avg_trade_return_pct -7.01%) but are NOT the code-defect signature L17 warns about. metrics_reliable is explicitly false, end_unrealized_pct is still positive, avg_holding_period is 332d, and trades_count is 21 fills — i.e. one continuously-held long position with ~21 banded rebalances, exactly what a passive vol-targeted hold should look like. De-risk polarity is correct and there is no overlapping-order bug, so the -38.2% is a down-BTC-market outcome, not a polarity/exit defect. The avg_trade_return_pct>0.15% fee gate does not cleanly apply to a passive allocation with one closed trade.

Verification Results

No code change required; if the edge proves weak the lever is vol_lookback, which is the optimizer's job.

Verification Results

Efficacy caveat (not a fault): median exposure ~0.76, beta 0.67, and a 46.9% max drawdown in the sandbox — the vol-targeting delivered limited drawdown reduction in this window, inherent to a backward-looking 30-day realized-vol estimate that de-risks reactively after vol spikes. This is a correct implementation of the stated Moreira-Muir mechanism, not a bug.

Backtest Review

Correct venue routing (long-only/no-leverage → BINANCE_SPOT, an under-represented bucket); OHLCV-only, no supplementary-feed risk

Backtest Review

Genuinely different edge family (risk-management/vol-targeting), well-motivated and only 2 parameters

Backtest Review

Low turnover, huge capacity — the construction itself is sound and safe

Backtest Review

metrics_reliable=false: the book is one hold-forever position (avg_holding_period 3239d, total_trades 1) and the daily-return series collapsed to a single point — Sharpe/drawdown are untrustworthy and walk-forward/holdout cannot populate

Backtest Review

Closet BTC long: beta 0.51, benchmark_correlation 0.92 — the result is mostly market exposure, not an independent edge

Backtest Review

alpha only ~0.5% and information_ratio -0.58 (negative) — it does NOT beat its buy-and-hold benchmark risk-adjusted, which is the whole thesis

Backtest Review

max_drawdown 52.8% (CI high 79.9%) — the promised drawdown reduction vs buy-and-hold did not materialize

Backtest Review

The 530% headline is BTC appreciation at partial exposure, not alpha (benchmark_meaningful=true)

Outcome Summary

This strategy stepped entirely outside the exhausted momentum/reversal/positioning families with a principled risk-management idea: hold BTC on the correct spot venue but scale exposure inversely to forecastable realized volatility, harvesting the documented fact that volatility is persistent while returns are not, to raise Sharpe and cut drawdowns versus static buy-and-hold. The construction was sound and safe — correct venue routing, OHLCV-only, low turnover, huge capacity, just two parameters — but the backtest exposed two fatal problems at once. It degenerated into a single hold-forever position with an unusable one-point return series (metrics_reliable=false), and even taking the numbers at face value it was a closet BTC long (beta 0.51, correlation 0.92) with only ~0.5% alpha, a negative information ratio, and a 52.8% drawdown essentially equal to BTC's own — the promised risk-adjusted improvement simply did not materialize. The analyst abandoned it at backtest review, noting the 530% headline was mere BTC appreciation at partial exposure and that optimizing two parameters could neither create alpha nor fix the degenerate measurement.

Outcome Summary

A well-motivated risk-management overlay must actually beat its own buy-and-hold benchmark risk-adjusted to be worth anything — here volatility targeting produced a closet BTC long (beta 0.51, correlation 0.92, negative information ratio) with no drawdown reduction, and the hold-forever, single-trade structure also made the result unmeasurable for the downstream walk-forward/holdout gates.

Outcome Summary

It was abandoned at the BACKTEST_REVIEW gate for two independent reasons: the measurement is degenerate (one trade over a 9-year window, so the 3-phase optimization's IS/OOS windows and 15-day holdout cannot populate), and even at face value the promised edge did not materialize — a negative information ratio means it does not beat its buy-and-hold benchmark risk-adjusted, and the promised drawdown reduction failed to appear. Optimizing 2 parameters cannot create alpha where the mechanism produced ~none, so it never reached optimization.

Outcome Summary

A long-only, single-instrument, no-leverage risk-managed allocation to BTCUSDT.BINANCE_SPOT that holds BTC but continuously scales the held fraction inversely to recent realized volatility toward a constant risk target (Moreira-Muir volatility targeting) — de-risking into high-volatility, negatively-skewed crash regimes and re-risking in calm uptrends via banded rebalancing — a risk-management edge rather than a directional signal, deliberately routed to the under-represented spot venue.

Outcome Summary

The result was both structurally unmeasurable and showed no risk-management edge: the book collapsed to a single hold-forever position (total_trades 1, avg holding period 3239 days) with metrics_reliable=false and the daily-return series reduced to one end-of-backtest point, so Sharpe/drawdown are untrustworthy. Taken at face value it was a closet BTC long — beta 0.508, benchmark correlation 0.92, alpha only ~0.5%, information ratio -0.58 (negative, i.e. not beating buy-and-hold risk-adjusted) — with max drawdown 52.8% (essentially BTC's own), and the 530% headline was just BTC appreciation at partial exposure.
Strategy report

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