BtcDeribitVegaNeutralIvTermStructureCalendar
Hypotheses
Deribit BTC Volatility Term-Structure Calendar — Vega-Neutral RV: When the Front-Week IV Trades RICH to the 1-Month (Backwardation), Sell the Front ATM Straddle / Buy the 1-Month ATM Straddle, Unwind on Term-Structure Normalization (DERIBIT Options, Market-Neutral Vol, 3-Parameter)
Hypotheses
A VEGA-NEUTRAL options relative-value trade that harvests the SHAPE of the BTC implied-vol TERM STRUCTURE — a different edge from the (abandoned/colliding) short-vol iron-condor, which bet on the LEVEL of vol via an OTM strangle. Here nothing is bet on the vol level or on direction; the position is long one expiry's vega and short another's, so it profits only from the front-vs-back IV relationship converging. MECHANISM: the Deribit BTC IV curve is normally upward-sloping (contango: 1-month IV > front-week IV), but after a shock the FRONT-week IV spikes and INVERTS the curve (backwardation), then decays back to contango within days as the event passes — front-week IV is far more mean-reverting than 1-month IV. When front-week ATM IV rises RICH to 1-month ATM IV beyond a threshold, SELL the front-week ATM straddle and BUY the 1-month ATM straddle, sized VEGA-NEUTRAL (equal-and-opposite vega, net vega ≈ 0). The book is long the calendar spread: net-positive theta (the short front decays faster than the long back) and profits as the term structure re-steepens/normalizes. This is the crypto-native version of the equity VIX term-structure RV trade, and Deribit is the most liquid crypto options venue WITH greeks/IV in the catalog. It fills the single most under-served, quota-mandated bucket: options are 5.4% combined vs the ≥15% target (BINANCE_OPTIONS is literally 0.0%), and market-neutral vol is far off the 86%-long-only book. DATA (named per L61, confirmed present: Deribit option bars + deribit_greeks_IV covering both weekly and monthly BTC expiries; NO liquidations feed, NO quarterly delivery future, NO thin/absent series): crypto_options bars + IV/greeks for BTC weekly and ~30d ATM options on DERIBIT, plus BTC index price for ATM-strike selection. Only 3 tunable parameters (iv_spread_enter, iv_spread_exit, max_hold_days).
Hypotheses
Iteration 3, targeting the Layer-3 300s wall-clock timeout only — no edge logic changed. Iteration 2 had already removed the sole per-bar scan (the schedule prefix became a monotone cursor) and moved the legs to 1-DAY, and it still timed out, which rules out the 'per-bar work that scales with history' diagnosis: the leg quotes are O(1) slot updates and the signal touches exactly four legs. What remains is the fixed cost of standing up and replaying ~208 option instruments (52 weekly opens x 4 legs) against a high-frequency primary clock, so this iteration attacks the three multiplicative terms. (1) PRIMARY CLOCK 4-HOUR -> 1-DAY: the legs already mark daily, so a 4-HOUR primary re-derived the identical signal six times a day from quotes that had not changed — pure waste. Matching the clocks removes five of every six primary bars and five of every six Black-Scholes inversions with no information loss, since the entry, exit, time stop and roll buffer are all wall-clock quantities that do not depend on the check cadence. (2) CHAIN LOOKBACK 365 -> 180 DAYS: ~208 contracts become ~104, halving the instruments the engine must construct, subscribe and replay; the honest cost is a halved trade sample (~26 weekly calendars instead of ~52), which I am flagging rather than hiding, and which the Research Lead can restore once the run fits the budget. (3) IV BISECTION max_iter 60 -> 24: the solver brackets [1e-4, 5.0], so 24 halvings resolve the vol to ~3e-7, far finer than the 0.005-0.03 vol-point thresholds the strategy actually compares against, at 2.5x fewer Black-Scholes evaluations per leg. Everything else — the term-structure signal, the vega-neutral sizing, the delta cap, both entry gates, all three exits, the monotone cursor and the O(1) leg-quote slots — is byte-identical to iteration 2, and _param_bounds now declares every clamped range. No smoke path, no underlying fallback: with no resolved chain the strategy still trades nothing.
Hypotheses
Structurally unmeasurable on the available option history — not worth 2 hours of optimization. The engine itself flags metrics_reliable=false with sharpe_note 'Unreliable: only 4 days moved the equity curve (span 159d)' and effective_daily_obs 4; the headline Sharpe 2.5 has a bootstrap CI [-1.52, 4.06] straddling zero, PSR 0.66, and the entire +1.83% (over ~5 months) rests on ~4 days (return_kurtosis 53, skew 7.15) — indistinguishable from noise. The Deribit option legs only exist from 2026-02 onward (data_days 159), so despite the 8-year BTC-PERP clock the effective option history is ~5-6 months in a single regime, producing just 16 trades (8 calendars); the last-20% holdout and walk-forward OOS windows would each contain a handful of trades, so the 3-phase validation cannot populate and any optimized Sharpe would be best-of-N noise. The mechanism is clean and correctly built (vega-neutral, delta-capped, real BS-inverted IV legs, no artifact blowup unlike the iron-condor), so this is not broken code or a negative/fee-dead edge — it is an inadequate, single-regime sample for a relative-value vol strategy, the same recurring Deribit-options data wall that makes this options family untestable this session. No parameter change fixes a ~5-month, one-regime option history; recommend factory-gate/manual review if multi-year Deribit option history becomes available. Failure pattern: structurally unmeasurable single-regime option history (metrics_reliable=false, 16 trades).
Implementation
Vega-neutral BTC options relative value on Deribit. Each weekly cycle the rolling-calendar chain resolves a front-week (~7 DTE) and a ~1-month (~30 DTE) ATM straddle sharing one strike. Every primary bar the strategy Black-Scholes-inverts all four legs' candle premiums against the perp spot to get ATM IV per tenor and returns the term-structure slope IV(front)-IV(back) in vol points. When the front week trades RICH to the 1-month by >= iv_spread_enter (backwardation) it SELLS the front straddle and BUYS the back straddle sized vega-neutral (contracts_back = contracts_front x vega_front/vega_back), with a hard net-delta cap so the book carries no direction. It unwinds on normalization (slope <= iv_spread_exit), on a max_hold_days time stop, or at the forced roll roll_buffer_hours before the front expiry. Both the primary roll clock and the option legs now run on 1-DAY bars, which matches the leg marking frequency exactly. Nothing is bet on the vol level or on price direction.
Verification Results
CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.
Verification Results
No code change required. Analyst should (a) confirm the realized aggregate market beta of the book in the full backtest, and (b) A/B beta_hedge True vs False — both are a single flag, and the developer's evidence favors the shipped dollar-neutral default.
Verification Results
HEDGE-RATIO DEVIATION FROM THE LITERAL HYPOTHESIS, defensible and disclosed. The hypothesis title/description specify a BETA-SIZED BTC hedge (rolling covariance beta); the shipped default is beta_hedge=False -> unit-beta (dollar-neutral). This is NOT the critical equal-dollar-when-beta!=1 sizing bug from the checklist, because the spread this strategy actually trades is the ALT/BTC RATIO (the signal is z of log(P_alt/P_BTC)), and equal-dollar legs (long $X alt / short $X BTC) hedge that ratio EXACTLY — whereas beta-sizing would hedge market beta, a different quantity the signal is not built on. The hypothesis's language conflates ratio-neutral and market-beta-neutral; the developer correctly chose the construction that hedges the traded spread, disclosed the deviation, showed it empirically dominates (dollar-neutral Sharpe 0.52 vs beta-hedged 0.32), and retained the beta-sized machinery behind a locked flag so the filed construction is one parameter away. Consequence to flag: the dollar-neutral aggregate book carries residual positive market beta (long high-beta alts vs short BTC at equal dollars), so 'market-neutral' here means ratio-neutral, not fully beta-neutral.
Backtest Review
Clean, correctly-built mechanism: vega-neutral sizing, delta cap, real Black-Scholes-inverted IV legs, no artifact blowup (net vega 4.6, net delta 0.06, theta +945)
Backtest Review
Fills the most under-served options / market-neutral-vol buckets; computationally in-budget
Backtest Review
metrics_reliable=false — 'only 4 days moved the equity curve (span 159d)', effective_daily_obs 4; Sharpe 2.5 with CI [-1.52, 4.06] straddling zero, PSR 0.66
Backtest Review
Option legs exist only from 2026-02 (data_days 159): ~5-6 months, single regime, 16 trades (8 calendars) — cannot populate walk-forward OOS or the holdout
Backtest Review
Return concentrated in ~4 days (kurtosis 53, skew 7.15) — indistinguishable from noise
Backtest Review
Recurring Deribit-options single-regime data limitation (same wall as the iron-condor / VRP families this session)
Iteration History
Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit. This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).
Backtest and paper results are hypothetical. Trading involves risk of loss.