BtcDvolImpliedVolExtremeReversalLS
Hypotheses
BTC Options-Implied-Volatility Extreme Reversal, Long-Short (Trade the BTCUSDT.BINANCE Perp on DERIBIT DVOL / Implied-Vol Signals — NEW Information Source: Buy the Underlying After a Fear-Driven IV Spike Peaks, Short on Complacent Low-IV Breakdowns, Revert Exit, 3-Parameter)
Hypotheses
A LONG-SHORT directional strategy that TRADES the liquid BTCUSDT.BINANCE USD-M perpetual but takes its signal from a genuinely NEW INFORMATION SOURCE — the DERIBIT options-implied volatility index (DVOL / BTC ATM implied vol) — directly answering the meta-learner's L38 mandate ('add a genuinely new information source, not a new instrument/timeframe'). It is NOT an options strategy (no option legs → sidesteps the options-implementation deaths); IV is purely a data input to time a simple perp trade (dev-safe). Implied vol is forward-looking risk pricing that is NOT contained in price, momentum, funding, OI, or liquidation flow — so this is a truly orthogonal signal to everything in my pending book (KAMA trend, momentum survivor, liquidation-flow reversal, OI-divergence fade). The documented edge is contrarian, the crypto analogue of buying VIX spikes: when implied vol SPIKES to an extreme (panic/capitulation priced in) and then rolls over, the underlying is fear-driven oversold and tends to bounce → LONG the perp; when implied vol is at an extreme LOW (complacency) and price cracks below a short mean, a vol-expansion down-move is likely → SHORT. It stays on BTC (the one instrument with demonstrated tradability and the deepest options market → best DVOL signal), single execution instrument (dev cannot swap without breaking the signal), and is built for the analyst's gates: IV extremes recur enough for a measurable multi-year sample (~80-160 trades), BTC reversals off fear peaks are large (~3-6%, clearing the ~0.10% fee), and a revert-to-mean target vs a defined stop keeps reward:risk favorable and drawdown bounded. It fills the under-target LONG-SHORT bucket (13.6% vs 86.4% long-only) and the near-empty options-data-informed space. 3 parameters.
Hypotheses
Before loosening anything a third time I re-derived what the gate demands, and it exonerates the gate: with iv_pct_edge 0.15 the top tail is by construction the upper ~15% of observations, price sits below its 5-day mean on roughly half of bars, and once price is about 1 ATR below that mean the geometric score reduces to sqrt(fear), which clears 0.25 at an IV rank of only ~0.86. That has to occur somewhere in 2,149 bars. So the input was empty, and there were two blockers in my own plumbing. First, I threw away every string key: the dual-key convention on funding_rates makes skipping the string half correct there, and I copied `if isinstance(k, str): continue` to deribit_dvol — so a string-keyed series (or one nested under any key other than the exact 'BTC'/'btc' I checked) discarded 100% of the data while every other diagnostic looked healthy. Keys are now coerced with _to_ns regardless of type and collected into a dict keyed by the resulting nanosecond value, so int-only, string-only and dual-keyed shapes all parse through one path without double-counting, and the extractor handles nesting under any key plus a list-of-rows shape. Second — and this one I had not seen — the percentile was computed from an internal list appended one value per BAR and gated at 200 samples, so even with perfect data the strategy was blind for the first ~33 days and could only rank history it had itself walked through. The rank now comes straight from the series over a 90-day calendar window via searchsorted plus one bounded numpy comparison, and the rollover reference is read from the series as-of 24h earlier, which removes the bar-warmup coupling entirely and with it a whole class of off-by-warmup failure. No threshold, score term, exit rule or sizing constant changed. I also made the failure mode unambiguous for the next reader: the parse log reports raw entries, parsed samples, span and min/mean/max IV; a one-time line fires on the first usable rank; and on_stop reports bars_with_iv, bars_with_rank and the min/max rank actually observed. My pre-commitment: if this still produces no trades, those numbers will show dvol_rows=0 or a span far shorter than the backtest, which means deribit_dvol has no usable history in this pipeline and the hypothesis is untestable as specified — the honest call then is to abandon rather than loosen the gate again, since the gate is demonstrably not what binds. I did not add a price-only fallback in any iteration and will not: that would quietly turn this into the price mean-reversion strategy the session has already falsified while still claiming to test an options-implied signal.
Hypotheses
Marginal, regime-bound single-perp supplementary-gated directional trade with no significant edge — not worth 2 hours of optimization. The iteration-3 DVOL parsing fix worked (197 measured trades, the zero-trades blocker is genuinely resolved), so this is a real result, and it is near-flat: Sharpe 0.246 with bootstrap CI [-0.53, 1.006] straddling zero, PSR 0.64, profit_factor 1.15, information_ratio -0.82, total_return just +22.7% over 6.7 years (CAGR 4.5%). avg_trade_return_pct 0.228% clears the 0.15% floor only barely and PF 1.15 is fee-fragile (commission 5.46% of gross). The edge is concentrated in the 2022 fear/vol regime (+22%) while calm regimes lose (-20%, Sharpe -0.78) and recent years are weak (2023 -2.2%, 2025 -9.8%), so the last-20% holdout would be weak-to-negative. This is the L73 single-perp OI/funding/premium/DVOL-gated directional family (PF < 1.7, class prior says abandon at review) — the supplementary gate does not add robustness the ~225-trial deflation can't strip. The DVOL signal is genuinely orthogonal and the code is now correct, but no parameter tuning lifts a PF-1.15, CI-straddles-zero result whose edge lives in one vol regime over the deflated-Sharpe/holdout gates. Failure pattern: no_edge single-perp supplementary-gated directional, marginal/regime-bound (L73).
Implementation
Long/short directional strategy trading the BTCUSDT.BINANCE USD-M perpetual on a Deribit DVOL implied-volatility signal, 4-HOUR bars, no option legs. The DVOL reading as-of each bar is ranked as a percentile within the trailing 90 days OF THE SERIES ITSELF (searchsorted plus one bounded numpy comparison — no bar-sampled warmup); the long branch fires when that rank is in the top iv_pct_edge tail, DVOL is below its reading 24h earlier (fear receding) and price is below its 30-bar mean, scored sqrt(fear x depress); the short branch fires when the rank is in the bottom tail with price below the mean. Entry is a fresh cross of +/- entry_thresh; when neither tail is active the signal is a continuous background lean clipped below the threshold. Exits are an intrabar-detected stop stop_atr_mult ATRs against entry (checked first, booked at the bar close), a target target_atr_mult ATRs in favour on the close, and a 30-bar max hold. Sizing risks a locked 2% of equity against the stop distance, capped at 0.5x equity notional. If DVOL is missing, stale or too short to rank, no position is taken — no price-only fallback. Three tunables: iv_pct_edge, stop_atr_mult, target_atr_mult.
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
Marginal, regime-dependent edge: Sharpe 0.25 (CI spans zero), PF 1.12, calm tercile negative, book ~70% short. avg_trade_return_pct +0.228% clears fees so it's fee-viable, but the risk-adjusted signal is thin. Not a code fault. Weight OOS/holdout heavily; confirm the short branch has edge beyond shorting a rising market; evaluate only over the DVOL-covered (~2021+) span.
Backtest Review
Iteration-3 data-parsing fix resolved the zero-trades blocker; DVOL is now correctly parsed (197 measured trades) and is a genuinely orthogonal information source
Backtest Review
Low drawdown (18.8%) and low volatility; risk-first sizing and structural exits are sound
Backtest Review
avg_trade_return_pct 0.228% is nominally above the 0.15% futures fee floor
Backtest Review
No significant edge: Sharpe 0.246 with CI [-0.53, 1.006] straddling zero, PSR 0.64, PF 1.15, IR -0.82; total_return only +22.7% over 6.7 years (CAGR 4.5%)
Backtest Review
Edge is regime-bound: 2022 fear/vol year carried it (+22%); calm regimes lose (-20%, Sharpe -0.78); 2023 -2.2%, 2025 -9.8% — recent/holdout window weak
Backtest Review
L73 single-perp supplementary-gated directional family with PF 1.15 (<1.7) — the gate adds no robustness the deflation can't strip
Backtest Review
PF 1.15 is fee-fragile (commission 5.46% of gross); thin expectancy
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced
Bar type used: BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 2180
Diagnostics: should_enter() returned a side 0 times over 2149 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds.
Ensure your strategy produces trades with the given data and parameters.
Iteration History
Verification failed (Layer 4 — QA review):
- NO TRADEABLE EDGE, NOW THAT THE SIGNAL IS ACTUALLY TESTED. The iteration-3 data-plumbing fixes worked (0 -> 38 trades), so the DVOL/IV-extreme-reversal signal is genuinely tested for the first time, and the result is dead flat: total_return -0.10%, profit_factor 0.997, Sharpe -0.034 (CI [-1.72, 1.54], symmetric about zero), win_rate 0.395, avg_trade_return_pct +0.139% -- BELOW the 0.15% fee floor. The favorable reward:risk (avg_win $2,235 vs avg_loss $1,462, ~1.53) is exactly cancelled by the 39.5% hit rate: EV ~= 0.395 x 2235 - 0.605 x 1462 ~= -$2/trade. This is not a weak positive to sharpen -- it is indistinguishable from zero edge, and the per-trade return does not clear costs.
- CAPACITY COLLAPSE -- capacity_usd $64,056 with impact_cost_pct 124.9% on BTCUSDT.BINANCE, the deepest crypto book. Either it reflects the ~zero net edge (capacity ~= edge / impact, and edge ~= 0 drives capacity toward zero), or it is structural: the strategy trades precisely at FEAR PEAKS, exactly when spreads are widest and the book is thinnest, so realistic market impact is high and deployable size is tiny. Either reading is a hard blocker: at $64K capacity with impact exceeding the gross return, even a genuine edge could not be deployed at meaningful scale.
Backtest and paper results are hypothetical. Trading involves risk of loss.