Skip to content

View original

BtcWeeklyShortStrangleVrpDeltaHedgedDeribit

Hypotheses

BTC Weekly Delta-Hedged Short Strangle on Deribit When 7D IV > 7D RV by 8+ Vol Points

Hypotheses

A systematic short-volatility options strategy on Deribit BTC weekly options, delta-hedged via Binance BTCUSDT perpetual futures. Every Friday 08:00 UTC (Deribit's standard weekly-options rotation), the strategy checks the implied volatility on the new weekly ATM options vs trailing 7-day realized volatility. When IV exceeds RV by ≥ 8 vol points (a documented persistent volatility risk premium in crypto options), the strategy SELLS a strangle: short 1 OTM call (~3% above spot) AND short 1 OTM put (~3% below spot) on the same weekly expiry. Net delta near zero at entry. Daily 08:00 UTC re-hedge: trade the BTC perp to flatten accumulated gamma-induced delta as spot moves. Held to expiry (max 7 days) unless emergency stop fires. This fills FOUR critical under-represented buckets: options venue (0% → first slot toward 15% target), cross-venue (1.8% → toward 15%, since options leg is DERIBIT and hedge leg is BINANCE), long-short direction (13.9% → toward 45%, this is short-vol + delta-neutral), and mid-term horizon. Mechanism is COMPLETELY different from every failure this session — does not depend on BTC price patterns, does not rely on directional forecasts, does not have enough parameters for the optimizer to curve-fit. Vol risk premium is a documented academic phenomenon (Bakshi-Kapadia 2003 in equity options; Alexander+ 2020 in crypto) that compensates option sellers for taking convexity risk. Position sizing: 5% of equity AT RISK per strangle (defined as 50% loss of total premium), which translates to ~20% of equity in option-leg notional given typical 25% premium ratios. Risk per trade: 5% of equity capped by the explicit stop-loss rule.

Hypotheses

Three QA code defects fixed with minimal, surgical edits; the short-vol mechanism, roll logic, early-close rules and option leg sides are untouched. (1) DELTA HEDGE MADE FUNCTIONAL — the root cause was a units mismatch: hedge_band was an ABSOLUTE 0.10 BTC while the entire strangle is ~0.1 contracts, so the maximum possible delta drift never reached the threshold and zero perp hedges fired in 356 days, leaving a naked directional short-vol book. The band is now proportional to the open option position (hedge_band_frac x open contracts, default 15% -> 0.015 BTC at 0.1 contracts) with a 0.002 BTC floor so each hedge order still clears the $100 BTCUSDT minimum notional. The hedge now re-balances as the hypothesis describes and the cross-venue leg does real work. (2) THE NAMED EDGE IS NO LONGER BYPASSED — the systematic_fallback that latched the gate True 48h before every close is DELETED, so no entry can occur without a positive IV-RV spread. To keep the gate from being inert if the absolute 8-vol-point bar is mis-calibrated for the sample, a second branch requires the spread to be positive AND at/above the 60th percentile of its own trailing 30-day history — a rolling, scale-invariant richness test rather than an unconditional one. Cheap-vol weeks are now genuinely skipped, so the selective VRP-timing edge is the thing actually tested, and the optimizer can tune the absolute and relative thresholds against each other. (3) THE BANNED UNDERLYING SMOKE PATH IS GONE — _smoke_trade/_smoke_size are removed and an unexpanded chain now results in no trading at all, so the strategy can never fabricate a delta-1 perp backtest in place of the options structure. Also, calculate_signal now returns the live IV-RV spread (the actual decision variable) instead of a synthetic sine, which makes the observability signal meaningful. I agree with QA's edge concern that a naked strangle carries an unbounded left tail; the hypothesis specifies a strangle rather than a condor, so I have implemented it as asked and left the 2x-premium stop plus the now-working hedge as the risk controls — if the risk officer wants bounded tails the correct change is to add long wings, which converts this into a different (iron condor) hypothesis.

Hypotheses

Delta-hedged short-strangle whose result is flat and not statistically significant — not worth 2 hours of optimization. This is the best-measured of the session's options structures (~1 year of Deribit coverage, 42 strangles, and the iter-5 fixes genuinely make it delta-neutral with a firing hedge and a working VRP gate), but the economics are near-zero: total_return 0.99% over ~1 year (CAGR 1.04%), annualized_volatility 0.49%, avg_position_pct 3.47%, and the realized-trades Sharpe 2.06 carries a bootstrap CI of [-0.104, 4.98] that straddles zero (PSR 0.836) — so it is indistinguishable from no edge. The whole window is a single ~1-year BTC regime with a fat left tail (return_skew -2.90, kurtosis 27.3) that does not sample the crash the short-strangle's tail risk lives in (the 2026-02-06 -0.31 day is the warning), so the flattering low-drawdown/high-PF picture is a calm-regime artifact. A gated, tightly-hedged book returning ~1%/yr with a significance CI through zero has no edge to tune toward, and optimizing it would fit the benign year. This is the L67/L23 Deribit short-vol options family. Failure pattern: no_edge/insignificant short-vol options, near-flat return with Sharpe CI straddling zero, single-regime under-sampled crash tail (L67/L23).

Implementation

Delta-hedged weekly short strangle on Deribit BTC options harvesting the volatility risk premium, with the delta hedge traded on the Binance BTCUSDT perpetual (cross-venue). Each weekly cycle the strategy compares Deribit DVOL implied vol against trailing 7-day realized vol; it sells the ~3% OTM call and ~3% OTM put of the new weekly expiry ONLY when vol is demonstrably rich — either IV - RV >= 8 vol points (the hypothesis's absolute trigger) or the spread is positive AND at/above the 60th percentile of its own trailing 30-day history. Cycles where vol is cheap are skipped entirely. Both legs enter together on the first gate pass and are closed 4 hours before expiry, or earlier if the position reaches +50% of collected premium or -200% (the loss stop). Between entries the net Black-Scholes delta of the open legs is recomputed hourly and the Binance perp is traded at most once per 24 hours whenever the hedge drift exceeds 15% of the open option contracts (floored at 0.002 BTC so every hedge order clears the exchange minimum), keeping the book near delta-neutral.

Verification Results

Verification failed (Layer 4 — QA review) [class=code_defect]: - [edge_concern] This is a NAKED short strangle (no long wings) whose only tail protection is a 2x-premium stop plus the (inert, see issues) delta hedge. The sandbox shows the classic short-vol shape: high win_rate 0.79, PF 2.04, avg_win 49.7 vs avg_loss 90.7 (~2x), and a heavy left tail (skew -3.39, kurtosis 16.42, largest_loss -687 vs largest_win 208). avg_trade_return_pct is +21% (positive, clears fees -- NOT the defined-risk-spread problem), but total_return over 356 days is only +1.04% at ~4% position size, and the tail is unbounded on a gap. With the delta hedge non-functional the realized risk is a naked, directionally-exposed short-vol book -- materially worse than the delta-neutral profile the hypothesis promises. The analyst/risk officer should treat the tail as unbounded until the hedge is fixed and re-verified. - The delta hedge -- the titular, core mechanism ('Delta-Hedged Short Strangle', 'net delta ~0', 'daily 08:00 re-hedge the BTC perp') and one of the four stated bucket justifications (cross-venue: DERIBIT options + BINANCE hedge) -- is NON-FUNCTIONAL as configured. _leg_size (base) floors each leg at 0.1 BTC (max(contracts=0.1, equity*risk_frac/spot = $100k*0.05/$60k = 0.083)). The net delta of a 3%-OTM weekly strangle at 0.1 contracts has magnitude <= ~0.1, but the hedge only fires when |drift| >= hedge_band = 0.10 BTC. So the threshold equals/exceeds the maximum achievable delta drift and the hedge essentially never triggers. Confirmed empirically: long_trades=0 and all 104 trades are short option legs -- ZERO Binance perp hedge trades in 356 days. Result: an unhedged naked short strangle carrying full directional/gamma risk, not the delta-neutral book hypothesized, and the cross-venue leg contributes nothing. - The hypothesis's NAMED core edge is selective: 'When IV exceeds RV by >= 8 vol points ... SELL a strangle' -- sell vol only when it is demonstrably rich. The systematic_fallback (48h before close) latches the gate True and establishes the strangle EVERY weekly cycle regardless of the IV-RV spread. The developer's own rationale states the IV>RV gate 'never opened' on the sandbox data, so 100% of the 104 entries came from the unconditional fallback. The strategy actually tested is 'sell a weekly strangle every cycle,' not the selective VRP-timing edge the hypothesis describes -- the stated edge is entirely unexercised. The gate structure exists (optimizer could tune) but as submitted the selectivity that IS the hypothesis is bypassed. - The forbidden underlying 'smoke' path (_smoke_trade: a long-perp round-trip when self._periods is empty) is still present. It was dead this run (chain expanded; 104 option-leg trades), and is gated to the unexpanded-schedule case, but sibling options strategies removed this exact pattern as banned (options_no_option_trades). It is a latent trap if a scored path ever yields an empty chain. - Static-analyzer flags are false positives: self._closes is trimmed (cap at line ~169); price and premium_proxy divisions are guarded (>0 checks). No action required; noting to avoid re-flagging.

Verification Results

Confirm whether the base scales contracts by equity/risk_frac. If not, size the strangle from risk_frac x equity against the stop distance (as the put-spread sibling did with its _leg_size) so the position matches the hypothesis and scales across account sizes. Borderline check-11 (hardcoded size) -- flagged rather than failed because base-template scaling could not be confirmed from the brief.

Verification Results

risk_frac=0.05 is set in __init__ but not visibly used for option-leg sizing (no _leg_size override; legs enter through the RollingOptionsStrategy base with the fixed config contracts=0.1). The hypothesis specifies '5% of equity AT RISK per strangle', but the code appears to trade a fixed contract count regardless of equity. avg_position_pct 3.47% and +1.0% total return are consistent with a tiny fixed size.

Verification Results

Verify DVOL coverage over the backtest window; if it is absent or sparse, the run is effectively not testing the stated edge and should be treated as not_measurable for the VRP thesis rather than as a validated short-vol result.

Verification Results

The IV input depends on the deribit_dvol supplementary feed; when it is missing _iv_at returns the constant iv_estimate=0.60, which turns the IV-RV gate into a function of RV alone and stops exercising the IV>RV volatility-risk-premium thesis the hypothesis is built on.

Verification Results

None -- trimming and the zero-guard are already present.

Verification Results

Static analyzer flagged unbounded growth on self._spreads/_closes.append() and division by premium_proxy. All handled: _spreads and _closes are trimmed to explicit caps; premium_proxy>0 is checked before the divide in _maybe_early_close. No action required.

Backtest Review

Best-measured of the options family: ~1 year of option coverage (2025-09 → 2026-09), 42 strangles / 84 option legs, and the iter-5 fixes are real (delta hedge now fires, VRP gate no longer bypassed, smoke path removed) — genuinely delta-neutral at entry (net_entry_delta -0.03)

Backtest Review

Tiny drawdown (0.33%), profit_factor 1.58, short_win_rate 76%

Backtest Review

Not statistically significant: sharpe_ratio 2.06 but bootstrap CI [-0.104, 4.98] straddles zero, PSR 0.836

Backtest Review

Near-flat: total_return 0.99% over ~1 year (CAGR 1.04%), annualized_volatility 0.49%, avg_position_pct 3.47% — the gated + hedged book barely does anything, so there is little edge to optimize

Backtest Review

Short-vol crash tail under-sampled: return_skew -2.90, return_kurtosis 27.3, with the whole ~1-year window a single broadly-declining BTC regime and no real crash to test the naked-tail risk (the -0.31 day on 2026-02-06 is the warning)

Backtest Review

avg_trade_return_pct 11.2% is measured against small option-premium notional, not a viability figure

Backtest Review

L67/L23 Deribit short-vol options family — single-regime option history

Iteration History

Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTC-PERPETUAL.DERIBIT-1-HOUR-LAST-EXTERNAL, Bars processed: 68591 Diagnostics: should_enter() returned a side 0 times over 0 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Strategy report

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