BtcDeribitWeeklyDefinedRiskShortPutSpreadSellFearVrp
Hypotheses
BTC Deribit Weekly Defined-Risk Short Put Spread, Sell-the-Fear VRP Harvest (Single-Venue Multi-Leg Options, Event-Timed After Volatility Spikes, OHLCV-Gated, Hard Tail-Capped, Held to Expiry, Low-Parameter)
Hypotheses
A SINGLE-VENUE, SINGLE-ACCOUNT, DEFINED-RISK options-selling strategy on BTC weekly options at DERIBIT that harvests the crypto variance/skew risk premium at its richest point: immediately AFTER a fear/volatility spike. When BTC has just had a sharp down move (a panic day / realized-vol jump), out-of-the-money put implied vol and skew spike far above the downside that subsequently realizes — crash insurance gets systematically overpaid in the days right after a selloff. This strategy waits for a stabilization bar, then sells a bull put SPREAD (short a ~20-delta OTM put, long a ~10-delta further-OTM put of the same weekly expiry) to collect the inflated credit, with the long put providing a HARD pre-known maximum loss. It is deliberately chosen to (a) fill the factory's single most under-represented venue bucket — options at 1.7% (DERIBIT) + 0% (BINANCE_OPTIONS) vs a >=15% target — using the ONE options family the factory has repeatedly validated (weekly Deribit defined-risk short-premium structures advance cleanly to backtest_review); and (b) sidestep EVERY engine defect and data wall surfaced this session. It is NOT a USD-M perp (immune to the base-template perp over-exposure / account-ruin bug), NOT a spot-CASH hold (immune to the spot held-position mark-to-market freeze), NOT cross-account or a price-pair basket (immune to the multi-instrument equity-aggregation artifact), and its signal uses ONLY price OHLCV + option prices (immune to the liquidations/OI/account-ratio/taker-ratio supplementary data walls that only have ~2026 history). It also corrects the three documented failure modes of the abandoned naked-put VRP run (BtcDeribitPutVrpIvRankManaged): the entry gate is computed from OHLCV (it does NOT silently default open waiting on a DVOL/book_summary IV feed that never wires through), it is DEFINED-RISK (the long put eliminates the naked ruin tail), and it is sized on the full $100k account with a per-trade max-loss cap so option-leg PnL cannot produce the small-account +100%/-95% equity-scaling artifact. It is distinct from the existing BTC Deribit book (cash-secured single-leg put, short strangle, iron fly, iron condor, delta-hedged strangle): no BTC weekly defined-risk short PUT SPREAD exists, and the event-timed sell-the-fear entry differs from the continuous regime/IV-rank gating of the siblings. Critically, the put side is ALIGNED with crypto's structural up-drift (puts decay as price recovers), which is precisely why put-side VRP is the robust, repeatedly-validated direction — unlike call-selling, which fights the drift, or price-fade mean-reversion, which the factory has closed out on majors.
Hypotheses
Iteration-2 fix for the Layer-2 failure 'strategy instance has no attribute fear_min_history'. Root cause: every parameter and state attribute was set in on_start(), but the Layer-2 synthetic proxy constructs the instance and calls min_bars_required() / calculate_signal() WITHOUT calling on_start(), so min_bars_required()'s reference to self.fear_min_history raised AttributeError across all six scenarios. Smallest fix: add an __init__(self, config) that calls super().__init__(config) and initializes EVERY parameter (drop_window, drop_threshold, stab_bounce, stab_max_down, fear_min_history, collapse_sma, collapse_buffer, max_loss_frac, size_precision, min_contracts, smoke_*), plus all state containers, from self.parameters.get(). The only logic that genuinely needs the schedule (the self._periods-dependent leg-side/strike/completeness maps) stays in on_start(), now after super().on_start(); those dicts are pre-initialized empty in __init__ so they always exist. Added one clean import (FactoryStrategyConfig from base_template) for the constructor signature; no banned imports. All signal/gate/sizing/entry logic that already passed Layer 1 is byte-for-byte unchanged, so no earlier layer regresses.
Hypotheses
Pre-optimization gate fails on insufficient, fee-unmodeled data despite a correctly-implemented structure. The strategy genuinely trades the hypothesized defined-risk bull put spread (30 complete spreads, short premium theta +553, short vega -116, ~5.4 DTE, defined-risk cap holding max DD ~1.1%), but the real Deribit weekly option history spans only ~11 months (2025-07 to 2026-06, ~30 event-gated spreads). That directly falsifies the hypothesis's premise that weekly cadence yields enough trades for a robust walk-forward + holdout: a 15-day holdout would hold ~2 spreads and each walk-forward window ~10, so the 3-phase optimization could not produce trustworthy robustness statistics. The headline metrics are also not believable as an edge — Sharpe 6.25 / Sortino 11.3 on a 3.3% total return and 4.8% vol is the classic short-premium 'pennies before the steamroller' low-variance illusion over a benign sample that never took a tail loss through the short strike (long_win_rate 0.067; the result is almost entirely the short-leg credit in a calm regime), and 30 observations cannot establish that the put-skew VRP survives a stress window. Compounding this, option fees are effectively unmodeled (commission ~$0.0001, 0% of gross), so the real net edge on a 3.3%/11-month result is unknown and likely thinner. Unlike multi-year candidates where the holdout is meaningful, the binding constraint here is structural data scarcity plus an artifact-grade Sharpe, so spending 2 hours optimizing is not justified; abandon rather than optimize. (Stated as a data-window/short-premium-sample caution, not a confident marking-bug claim.)
Implementation
BTC weekly Deribit DEFINED-RISK bull put spread (short ~5%-OTM put + long ~10%-OTM put, same weekly expiry) that harvests put-skew/VRP by selling immediately after a fear/volatility spike. Entry gate is computed purely from BTC underlying OHLCV (recent sharp peak-to-trough drop, then a stabilization bounce that is not a falling-knife bar, with a deep-collapse structural guard). Sizing caps the spread's hard, pre-known max loss at ~2% of the full $100k account: contracts = equity * max_loss_frac / (Kshort - Klong). Schedule-driven via RollingOptionsStrategy; both legs settle in one Deribit options account, held to near expiry and rolled 24h before settlement. Atomic two-leg entry (never naked).
Verification Results
Verification failed (Layer 2 — synthetic scenarios):
Parameters used: ['leg_sides', 'drop_window', 'stab_bounce', 'collapse_sma', 'min_notional', 'smoke_warmup', 'max_loss_frac', 'min_contracts', 'stab_max_down', 'drop_threshold', 'size_precision', 'smoke_risk_pct', 'collapse_buffer', 'rolling_options', 'smoke_hold_bars', 'fear_min_history', 'roll_buffer_hours']
Check that __init__ sets all attributes from self.parameters.get().
- steady_uptrend: AttributeError: strategy instance has no attribute 'fear_min_history' (bar timestamp: 1735689600000)
- steady_downtrend: AttributeError: strategy instance has no attribute 'fear_min_history' (bar timestamp: 1735689600000)
- flat_ranging: AttributeError: strategy instance has no attribute 'fear_min_history' (bar timestamp: 1735689600000)
- volatility_spike: AttributeError: strategy instance has no attribute 'fear_min_history' (bar timestamp: 1735689600000)
- zero_volume: AttributeError: strategy instance has no attribute 'fear_min_history' (bar timestamp: 1735689600000)
- price_gap: AttributeError: strategy instance has no attribute 'fear_min_history' (bar timestamp: 1735689600000)
Backtest Review
Mechanism correctly implements the hypothesis: 30 complete defined-risk bull put spreads (60 put legs, 0 calls), net short premium (theta +553) and short vega (-116), atomic short+long pairing, ~5.4 DTE — a genuine sell-the-fear VRP structure, not a synthetic proxy
Backtest Review
Defined-risk cap works (max DD ~1.1%, largest_loss -635 bounded); fills the most under-represented options venue bucket
Backtest Review
Positive and well-shaped on the sample (avg_win $302 > avg_loss $175, PF 1.61, short_win_rate 0.90)
Backtest Review
Data wall: only ~11 months of real Deribit weekly option legs (2025-07 to 2026-06, 30 event-gated spreads) — a 15-day holdout is ~2 spreads and walk-forward windows ~10 spreads, far too sparse for the 3-phase optimization to validate (directly contradicts the hypothesis's 'enough trades for robust walk-forward + holdout' premise)
Backtest Review
Implausibly high Sharpe 6.25 / Sortino 11.3 on tiny 3.3% return and 4.8% vol — classic short-premium low-variance illusion over a benign sample that never took a tail loss through the short strike; not validated robustness
Backtest Review
Option fees effectively unmodeled (commission ~$0.0001, 0% of gross) — real Deribit per-contract fees would erode the thin edge (avg_trade $55)
Backtest Review
Event-timed gate gives very few independent observations; long_win_rate 0.067 shows the result rests almost entirely on the short-leg credit in a calm regime
Outcome Summary
This second-iteration strategy was designed to sidestep every failure mode of prior BTC options runs: it implemented the hypothesized defined-risk bull put spread faithfully, trading 30 complete short+long put pairs at ~5.4 DTE with net short premium (theta +553, vega -116) and a hard max-loss cap that held drawdown to ~1.1%. On the sample it looked attractive — profit factor 1.61, a 0.90 short-leg win rate, and a 3.3% return — but the headline Sharpe 6.25 / Sortino 11.3 on only 4.8% vol was the classic short-premium low-variance illusion over a benign window that never took a tail loss through the short strike. Because the real Deribit weekly option history spanned only ~11 months (~30 event-gated spreads), a 15-day holdout would hold roughly two spreads and each walk-forward window about ten — too sparse to validate — and with option fees effectively unmodeled, the analyst abandoned it at the pre-optimization gate rather than spend hours optimizing an artifact-grade result.
Outcome Summary
An event-timed short-premium structure can look correct and be well-shaped on the sample yet still fail the gate on structural data scarcity: a few dozen observations over a calm ~11-month window produce a low-variance 'pennies before the steamroller' Sharpe that cannot be validated, so a future iteration needs either a longer real option-leg history or realistic per-leg fees before the edge is believable.
Outcome Summary
The analyst's pre-optimization backtest review returned an 'abandon' verdict: real Deribit weekly option history spanned only ~11 months (~30 event-gated spreads), far too sparse for a trustworthy walk-forward or ~2-spread holdout, and the artifact-grade Sharpe on a benign sample plus effectively unmodeled option fees meant no genuine edge could be established — so optimization and later stages were never reached.
Outcome Summary
A single-venue, defined-risk BTC Deribit weekly bull put spread (short a ~20-delta OTM put, long a ~10-delta further-OTM put) that waits for a panic selloff plus a stabilization bar to sell inflated put-skew/variance-risk premium 'after the fear,' sized with a hard per-trade max-loss cap on the full account and gated purely off BTC OHLCV.
Outcome Summary
It executed 30 complete defined-risk spreads (60 put legs, 0 calls) with net short premium (theta +553, vega -116, ~5.4 DTE), a hard-capped max drawdown of ~1.1%, profit factor 1.61, short-leg win rate 0.90, and a 3.3% total return — but with an implausibly high Sharpe 6.25 / Sortino 11.3 on just 4.8% volatility.
Backtest and paper results are hypothetical. Trading involves risk of loss.