Skip to content

View original

DeribitBtcWeeklyPostSpikeVolCrushPutWrite

Hypotheses

Deribit BTC Weekly Post-Spike Vol-Crush Put Write — Single-Leg Conditional VRP Harvest: Sell a ~20-Delta Weekly PUT ONLY After an Implied-Vol Spike Has PEAKED and Begun to Fall (IV Rank High AND IV Declining AND Price Stabilized), Held to Expiry with a Hard Underlying Stop, Roll Weekly (DERIBIT Options, Short-Vol, 3-Parameter, Single Venue)

Hypotheses

A SINGLE-LEG, short-volatility income strategy on Deribit BTC weekly options that harvests the variance risk premium (VRP) ONLY in its most favorable window: the mean-reversion of implied volatility AFTER a fear spike has peaked. This is deliberately NOT the unconditional weekly iron-condor/strangle harvest that was abandoned (which had degenerate parameters and picked pennies into rising vol), and NOT a long-straddle (which timed out on a per-bar full-series rescan). It fills the factory's single largest venue gap: options are 5.8% of the book vs a >=15% quota, and this is a distinct short-vol / short-delta bucket rather than the over-represented long-only directional crowd. Mechanism: implied vol is systematically rich to subsequent realized vol, and that richness is FATTEST right after a volatility spike crests — IV overshoots on panic and then reverts down faster than realized vol does. We wait for that crest, confirm price has stopped falling, then sell a single ~20-delta weekly put and collect the decaying premium. Single Deribit venue only (IV/greeks from the Deribit catalog, underlying signal from the Deribit BTC index) — NO second-venue leg to inject, sidestepping the cross-venue injection deaths (L69). Explicit implementation guard: maintain a fixed-length ROLLING IV window updated incrementally each bar (deque/running stats) — never rescan the full IV/greeks series inside calculate_signal (the timeout that killed the long-straddle at 8 iterations).

Hypotheses

Iteration 3 changes exactly two things and leaves every mechanism the review credited byte-identical (hourly risk clock, intrabar underlying stop on bar.low, bounded and realized premium stop, closing-state exit retry until flat). (1) THE BLOCKING FINDING DOES NOT HOLD, and I checked it against the catalog rather than arguing from the code. The review blocked on 'every Deribit option contract has exactly ONE row of data', citing BTC-17JUL26-61000-P. That contract has 550 rows at 1-HOUR spanning 2026-06-25 11:00 to 2026-07-18 08:00 (plus 139 rows at 4-HOUR and 24 at 1-DAY), and its premium path decays 0.0545 -> 0.0001 BTC into expiry, which is exactly the intra-life mark the strategy needs. Across ALL BTC put contracts carrying 1-HOUR bars there are 1,222 contracts with a MEDIAN of 550 rows each, 1,213 of them at >= 100 rows, and ZERO with a single row; coverage is continuous at 15-30 contracts per month from 2024-01 through 2026-07. A one-row record is what an instrument DEFINITION looks like, not the bar series. So _put_pnl_pct reads a real premium path, the premium stop and the hold-to-expiry PnL are backed by real option prices, and the VRP edge is measurable in principle. The two other symbols cited in the finding are not in the catalog at all, which is consistent with the inspection having landed on the wrong path. (2) THE SAMPLE COMPLAINT IS FAIR and is what this iteration fixes. 26 writes is the product of one-write-per-weekly-expiry x a 550-day window x a roughly one-third gate take-rate, so I attacked both multipliers: rolling_options.lookback_days 550 -> 1095 (about 156 weekly expiries instead of 78, and the coverage numbers above confirm three years of resolvable weekly put chains rather than empty legs), and the two tuned gate thresholds loosened from iv_rank_floor 0.40 -> 0.30 and iv_drop_min 0.05 -> 0.04. Both thresholds are parameters the optimizer searches anyway, and loosening them preserves the post-spike SHAPE of the gate (still elevated IV, still falling off its rolling peak, still price-stabilized) while letting more expiries qualify. Expected writes go from ~26 to roughly 80-100, clearing the ~30 options minimum and approaching the ~100 significance bar, which should also collapse the small-sample Sharpe/PF artefacts the review flagged. (3) On data_days: the reported 26 is the close-date fallback series (one point per distinct trade close date), not calendar days, which is why 26 weekly writes with multi-day holds looked arithmetically impossible; more writes spread over three years will make that series dense enough to be read normally. (4) avg_trade_return_pct remains a premium-notional figure and should still be read alongside avg_trade_pnl_usd and total_return against the ~20% of equity collateralized. (5) Wall clock: chain discovery breaks on the first strike with data, so ~156 expiries cost a few hundred probes, most legs are already resident in the catalog, and the per-bar path is unchanged O(1) (searchsorted lookups, point-capped windows, memoized gate, monotone schedule cursor).

Hypotheses

suspected backtest artifact: Sharpe 8.86 (CI [5.76, 12.65]) with max_drawdown 0.417%, Sortino 13.7, Calmar 18.0 and PSR 1.0 on a NAKED short-put book across 2023-2026 is jointly implausible — a real short-vol/VRP edge cannot show a ~0.4% drawdown through multiple BTC fear spikes. The premium stop caps realized loss at ~3x premium (largest_loss -$265 vs avg_win $110, avg_loss~=avg_win), so the genuine gap-through-strike assignment tail never materializes in realized PnL, and the entry gate is explicitly designed to avoid the worst weeks; the equity path is smoothed by construction, not by edge. Mechanism suspected but not independently verified (option buy-to-close mark realism on a gap through the strike unchecked). avg_trade_return_pct 36% is measured against option-premium notional and is not a fee-comparable unit. Optimizing an artifact for 2 hours is wasted; recommend manual/factory-gate review of the short-put tail/mark realism rather than proceeding to the 3-phase run. Options short-vol VRP remains a largely dead class in the outcome store (L27/L67).

Implementation

Single-leg conditional short-vol program on Deribit BTC weekly options, running its roll and RISK clock on 1-HOUR bars with 1-HOUR option legs. Each weekly expiry it may write AT MOST ONE ~20-delta (6% OTM) BTC put, and only inside the post-fear-spike vol-crush window: DVOL IV rank >= iv_rank_floor, DVOL already >= iv_drop_min below its rolling 10-day peak (the spike has crested and is reverting), and the underlying's 2-day return >= -price_stab_pct. The put is held to expiry (closed inside a 24h roll buffer) unless one of two HARD STOPS trips first: the UNDERLYING stop, tested against each hourly bar's LOW touching strike*(1+stop_strike_buffer) so a gap or wick through the level is caught intrabar; or the PREMIUM stop, buying the put back when its mark reaches max_loss_premium_mult x the premium collected, which turns the open-ended naked-put tail into a defined, realized per-trade loss. Every close is retried until the leg's position is verifiably flat. Sizing is cash-secured (strike*contracts = 20% of equity, capped at 25%), leverage 1.0, one put at a time, one venue, one leg. The chain spans three years of weekly expiries so the write count is large enough to measure.

Verification Results

Verification failed (Layer 4 — QA review): - DATA UNTESTABILITY (root cause, confirmed by direct catalog inspection): every Deribit option contract has exactly ONE row of data — a single snapshot, not an intra-life time series (BTC-17JUL26-61000-P, BTC-2MAY26-86000-P, BTC-4APR26-69000-P each = 1 file / 1 row). The whole iteration-2 thesis depends on marking the short put over its life: _put_pnl_pct reads buf[-1].close to drive the premium stop, the hold-to-expiry PnL path, and the realized loss tail. With one option data point per contract there is no genuine mark-to-market, so the loss distribution that now appears (win_rate 0.81, avg_loss 129) is not backed by real option data, and a VRP edge is unmeasurable when the option's own price path is absent. Not fixable in strategy code. - Unmeasurable sample persists from iteration 1 (L26/L10): despite lookback 365->550 and an hourly gate, the sandbox still produced only 26 trades / data_days 26 (was 18/18). Below the ~30 options minimum and far below the ~100 for significance; 26 weekly one-at-a-time writes with 3d8h holds cannot fit in 26 calendar days, so the accounting is itself inconsistent. Resolvable option data is the binding constraint. - Degenerate metrics (L17): Sharpe 8.67 (>5, CI [2.70, 19.17]), Sortino 12.2, PF 3.98 over 26 trades — small-sample/single-snapshot artifacts. avg_trade_return_pct 15.64% is the premium-notional artifact the developer acknowledges (L72); the interpretable total_return 1.93% is not meaningful at n=26 with synthetic marks. - Credit where due (not a blocker): the iteration-2 loss-realism fixes are correct and address my iteration-1 findings — hourly risk clock, intrabar underlying stop on bar.low, bounded+realized premium stop, and the 'closing'-state exit retry until flat. Signal polarity, the post-spike gate, single-leg/single-venue structure, O(1) bar path, and expiry handling all remain correct. The code is sound; the data cannot support it.

Verification Results

Sample did not scale as predicted and sandbox metrics remain small-sample artifacts. Despite lookback 550->1095 and loosened gates, the sandbox produced only 32 writes (was 26), not the forecast 80-100, with Sharpe 7.28 (CI [1.28, 15.28]), Sortino 22.5, PF 3.09 over 32 trades — the classic short-vol small-sample signature (0.84 win rate, avg_loss $182 > avg_win $104). The sandbox is a limited-window quick test and data_days=32 is the close-date fallback (~trade count), so the full 3-year backtest should carry more writes, but that is unproven until it runs.

Verification Results

avg_trade_return_pct (33.2%) is a premium-notional figure (L72), not return on capital — acknowledged by the developer. Interpretable figures are total_return (1.91%) and avg_trade_pnl_usd ($59.5) vs the ~20% collateralized. Judge economics on return-on-collateral net of the realized loss tail, not percent-of-premium.

Verification Results

Naked short put (cash-secured, no bought wing). Documented hedging intent present (cash-secured sizing, intrabar underlying stop on bar.low, bounded+realized premium stop at 3x premium), satisfying the naked-short check; the realized loss tail now appears (largest_loss -$222, capped). A gap between hourly bars could still exceed the modeled stop; analyst should confirm the full run exercises a real DVOL spike.

Backtest Review

Genuinely fills a starved venue/type gap (single-venue Deribit short-vol options), no cross-venue injection dependency

Backtest Review

Iteration 3 did resolve the degenerate zero-loss tail of iterations 1-2 (real loss side now present)

Backtest Review

Option legs are backed by real hourly Deribit put price series, 108 writes across three years

Backtest Review

Sharpe 8.86 (CI [5.76, 12.65]) is a suspected backtest artifact — far above the >5 plausibility red line; real VRP edges are Sharpe ~1-2 and noisy

Backtest Review

max_drawdown 0.417% on a naked short-put book across 2023-2026 (incl. major BTC selloffs) is not credible — the short-vol left tail is missing

Backtest Review

largest_loss -$265 vs avg_win $110 and premium-stop-capped losses => the true gap-through-strike assignment tail is never realized; equity path implausibly smooth

Backtest Review

Sortino 13.7 / Calmar 18 / PSR 1.0 all reinforce the artifact signature; avg_trade_return_pct 36% is vs option-premium notional (not fee-comparable)

Backtest Review

Options cadence caps trade count; this is already iteration 3 with the tail still merely capped, not realistic

Outcome Summary

DeribitBtcWeeklyPostSpikeVolCrushPutWrite iterated hard to fill the factory's starved options bucket, selling weekly BTC puts only after a vol spike crested, and across three iterations it fixed real problems — moving legs to hourly bars, adding an intrabar stop on the bar low, a bounded realized premium stop, and expanding the sample to 108 writes over three years backed by genuine hourly Deribit option prices. But success became its own undoing: the sandbox showed a Sharpe of 8.86, Sortino 13.7, Calmar 18, and a 0.417% max drawdown on a naked short-put book that had traded through multiple BTC selloffs — jointly implausible. The analyst abandoned it at the backtest-review gate as a suspected artifact, reasoning that the premium stop and the worst-week-avoiding entry gate smoothed the equity path by construction so the true gap-through-strike assignment tail never appeared in realized PnL. Rather than optimize an artifact, it recommended a manual factory-gate review of the short-put tail and mark realism, noting options short-vol VRP remains a largely dead class.

Outcome Summary

Metrics that look too good are a red flag, not a win — a naked short-vol book cannot show a ~0.4% drawdown through real fear spikes, and capping the realized loss (premium stop) plus gating out the worst weeks can smooth the equity path by construction, hiding the very left tail that defines the strategy's risk.

Outcome Summary

The analyst issued an 'abandon' verdict at the pre-optimization backtest-review gate, judging the results a suspected backtest artifact: a ~0.4% drawdown on a naked short-put book through multiple 2023-2026 BTC fear spikes is jointly implausible with a Sharpe near 9, because the premium stop caps realized loss at ~3x premium and the entry gate is designed to avoid the worst weeks, so the genuine gap-through-strike assignment tail never materializes. It recommended manual review of the short-put tail/mark realism rather than spending two hours optimizing an artifact; it never reached optimization, post-opt analyst review, or risk review.

Outcome Summary

A single-leg, single-venue short-volatility income strategy on Deribit BTC weekly options that harvested the variance risk premium only in its most favorable window — selling a ~20-delta weekly put after an implied-vol spike had peaked and begun to fall (IV rank high AND IV declining AND price stabilized), held to expiry with a hard intrabar underlying stop and a bounded premium stop, rolled weekly, with 3 tuned economic parameters — to fill the factory's largest venue gap (options at 5.8% vs the ≥15% quota).

Outcome Summary

Over 108 put writes across ~3 years (all short, 82.4% win rate) the sandbox reported spectacular but implausible metrics: Sharpe 8.86 (95% CI [5.76, 12.65]), Sortino 13.7, Calmar 18.0, PSR 1.0, profit factor 4.28, and a max drawdown of just 0.417%, with largest_loss -$265 versus avg_win $110 and avg_trade_return_pct 36% (measured against option-premium notional, not fee-comparable).

Iteration History

Verification failed (Layer 4 — QA review): - Degenerate, untrustworthy sandbox metrics for a NAKED short-put program (L17 signature): win_rate 1.0, profit_factor 0.0, avg_loss 0.0, largest_loss 0.0, Sharpe 20.94 (CI [16.0, 30.3]), max_drawdown 0.0 over 18 trades / 18 data_days. A cash-secured naked short-put book with a hard underlying stop CANNOT have zero losing trades and zero drawdown — the loss side (buy-to-close at a loss on a stop trip, or ITM expiry/assignment) is not being realized in PnL. Sharpe ~21, PF exactly 0.0, and a 100% win rate are the hallmark of a settlement/measurement artifact, not an edge; optimizing against this PnL surface is unsafe. - Unmeasurable sample (L26/L10/L16): the sandbox spans only 18 data_days for a weekly, triple-gated, one-at-a-time put write. A meaningful sample needs multiple years of Deribit BTC weekly PUT-chain history; the 18-day span implies the resolvable chain is very short, so the gated weekly cadence can never produce enough independent writes to separate edge from noise. Reject at Layer 4 rather than burning a full backtest + ~225-trial optimization. - avg_trade_return_pct 81.97% is measured against option PREMIUM notional, not deployed capital (L72). avg_trade_pnl_usd is only $153 and total_return 2.75% over 18 days on ~19.6% deployed — 82% is normal theta decay of the put's own premium, not an 82%-of-capital return. The fee-viability screen passes spuriously, and with the loss tail truncated to zero the signal is meaningless. - On a 1-DAY bar clock, a gap-down through the strike (the exact fear-spike scenario) closes at the daily bar deep ITM; the claimed intra-bar 'stop at the level' protection is not achievable, leaving the naked-put gap tail uncapped — precisely what the zero-loss sandbox is failing to model.
Strategy report

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