Skip to content

View translation

BtcIvTermStructureStressTransitionLS

Hypotheses

BTC Options IV Term-Structure Stress-Transition Reversal, Long-Short (Trade the BTCUSDT.BINANCE Perp on DERIBIT Near-vs-Far Implied-Vol SLOPE — NEW Information Source: Buy When Backwardation (Acute Stress) Re-Steepens to Contango, Distinct from Vol LEVEL and SKEW, 3-Parameter)

Hypotheses

A LONG-SHORT directional strategy that TRADES the liquid BTCUSDT.BINANCE USD-M perpetual using a genuinely NEW INFORMATION SOURCE — the DERIBIT implied-volatility TERM STRUCTURE (slope between a near-dated and a longer-dated ATM IV) — per the meta-learner's L38 mandate. The term-structure slope is the TIME dimension of the vol surface, distinct in kind from the vol LEVEL (my pending DVOL idea) and the put/call SKEW (my pending skew idea): normally the surface is in CONTANGO (far IV > near IV = calm), and it flips to BACKWARDATION (near IV > far IV) only during acute near-term stress/panic. It is NOT an options strategy (no option legs → sidesteps options-implementation deaths); the slope is purely a signal input to time a simple perp trade (dev-safe). The documented, cross-asset edge: a term-structure inversion (backwardation) marks acute fear; the moment it begins to RE-STEEPEN back toward contango, the stress is resolving and the underlying stages a relief rally → LONG the perp; conversely a sharp flip from deep contango into backwardation signals a fresh stress shock → SHORT ahead of the downside vol-expansion. It encodes forward-looking regime information (the market's pricing of near- vs far-term risk) that price/funding/OI/liquidation/level/skew do not. It stays on BTC (deepest options market → cleanest term structure, and the one instrument with demonstrated tradability), single perp execution, and is built for the analyst's gates: term-structure regime transitions recur enough for a measurable multi-year sample (~80-160 trades), BTC moves off stress transitions are large (~3-6%, clearing the ~0.10% fee), and revert-to-mean vs defined stop keeps reward:risk favorable and drawdown bounded. It fills the under-target LONG-SHORT bucket (13.5% vs 86.5% long-only). 3 parameters.

Hypotheses

verification_loop: Verification failed (Layer 1 — static analysis): - Look-ahead: a supplementary observation is selected by ABSOLUTE distance to the bar timestamp, which returns the NEXT observation when it is closer than the previous one. Use self.supp_as_of(key) (latest at or before the bar) or an explicit `ts <= bar.ts_init` filter — never abs(). (line 505)

Verification Results

Verification failed (Layer 1 — static analysis): - Look-ahead: a supplementary observation is selected by ABSOLUTE distance to the bar timestamp, which returns the NEXT observation when it is closer than the previous one. Use self.supp_as_of(key) (latest at or before the bar) or an explicit `ts <= bar.ts_init` filter — never abs(). (line 505)

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 2155 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 3 — sandbox backtest): No trades produced Bar type used: BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 14388 Diagnostics: should_enter() returned a side 0 times over 14363 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 3 — sandbox backtest): 'float' object is not callable Bar type used: BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 0 Ensure your strategy produces trades with the given data and parameters.

Abandon Reason

verification_loop: Verification failed (Layer 1 — static analysis): - Look-ahead: a supplementary observation is selected by ABSOLUTE distance to the bar timestamp, which returns the NEXT observation when it is closer than the previous one. Use self.supp_as_of(key) (latest at or before the bar) or an explicit `ts <= bar.ts_init` filter — never abs(). (line 505)
Strategy report

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