Skip to content

View translation

BtcDeribitDailyBullPutSpreadVrpTrendSkip

Hypotheses

Deribit BTC Daily-Expiry Defined-Risk Bull Put Spread — Systematic Short-Dated Put-Skew/Variance-Risk-Premium Harvest, Rolled EVERY DAY (DERIBIT Options, ~15-20 Delta Short Put + Further-OTM Long Wing, Coarse Downtrend Skip, 3-Parameter)

Hypotheses

A DEFINED-RISK, single-underlying options income strategy on DERIBIT BTC that harvests the persistent crypto PUT-SIDE variance/skew risk premium. Each day it SELLS a ~15-20 delta short-dated (1-2 DTE) put and BUYS a further-OTM put wing (a bull put / put-credit spread), collecting net premium, rolled DAILY. Engineered around the two things that keep killing options books here: (1) DATA-WALL — prior weekly/biweekly/monthly VRP books produced ~12 trades and died 'unmeasurable'; a DAILY roll produces ~400-600 spreads for real statistical power; (2) NAKED SHORT VOL — prior no_edge/risk_reject deaths were undefined-risk straddles/cash-secured puts; the long wing CAPS tail loss. Distinct from the abandoned ETH post-flush spread (which gated 90% of weeks away) and from the in-pipeline weekly NAKED cash-secured put write. Fills the largest venue quota gap (options 6% vs 15%).

Hypotheses

Implements the hypothesis end-to-end on the framework's rolling-options rails: parameters['rolling_options'] declares roll='daily', dte_target=2, 1-HOUR legs at moneyness -0.03 (short) / -0.06 (wing), so the pipeline resolves the historical Deribit DAILY chain into concrete legs + option_chain_schedule and RollingOptionsStrategy owns entry/roll timing. (1) DATA-WALL: a daily cadence over lookback_days=420 targets ~350-420 spreads instead of the ~12-30 that made every prior weekly/monthly VRP book unmeasurable; 420 days is also the largest chain that reliably fits the pipeline's 600s chain-discovery and leg-collection budgets (daily roll = 2 legs/day to resolve and collect). (2) NAKED SHORT VOL: leg ROLES are assigned by strike order inside each expiry (higher = short, lower = wing), an expiry with fewer than two resolved puts is dropped entirely, and both legs go on in one bar - so max loss is structurally capped, unlike the abandoned naked strangle/CSP books. (3) The downtrend skip is deliberately ONE loose condition (trailing return > -6%), not a conjunction of regime filters - over-gating is what reduced the abandoned ETH post-flush spread to 30 trades. Exactly 3 searched parameters (trend_lookback_bars, downtrend_skip, max_loss_frac), each clamped in code with the identical range declared in _param_bounds. Venue is DERIBIT (options venue, leverage 1.0) because the edge is a short-vol/skew premium that only an option structure expresses. Two deliberate deviations, both noted here: (a) the short leg sits at a 3% moneyness offset rather than a computed 15-20 delta - the chain resolver picks strikes by moneyness, and at 2 DTE with BTC IV in the 40-55%% band 3% OTM IS ~15-25 delta, while a deeper strike risks daily contracts with no candles (dropped spreads = fewer trades); (b) on_bar is overridden to scan the schedule with a monotone cursor instead of the base's full O(periods) scan, because a ~420-period daily chain scanned on every hourly bar over the full perp history would burn the Layer-3 wall clock for no benefit. One honest caveat for the analyst: the option chain covers the last ~420 days while BTC-PERPETUAL history runs from 2018, so equity-curve-based ratios are computed over a window far longer than the tradeable one.

Hypotheses

data_wall / unmeasurable: the daily-roll mechanism designed to escape the options data-wall did NOT escape it. The option_chain_schedule resolved to only MONTHLY Deribit BTC expiries (14 expiries, 25JUL25 through 28AUG26), producing just 26 complete spreads with 13 effective daily observations over the full available chain — well under QA's ~100-spread floor and the hypothesis's own 60-trade criterion. This is NOT a fee/expectancy failure (the -12.6% avg_trade_return_pct is the wing-notional artifact; realized economics are net-positive at +$93.7/trade, PF 2.54) and the structure is correctly implemented (defined-risk, wing-first, ~2 DTE, 0.92 short-put win rate). The problem is structural: Deribit does not have daily-expiry chain history in the catalog, so the roll degenerated to a monthly cadence and the sample cannot support a promote/optimize decision. Headline stats (Sharpe 1.89, PSR 0.64) are dominated by two single days (+80.9%, +79.0%), the tell of small-n. Tuning 3 parameters cannot enlarge a sample bounded by data availability. Same wall as EthDeribitTrendLongConvexityCheapIvRoll (12), BtcDeribitIvTermStructureZScoreCalendarRV (12) and EthDeribitPostFlushWeeklyPutCreditSpread (30). Revive when Deribit daily-expiry chain data is collected far enough back to give the daily roll a testable sample. abandon_class = unmeasurable.

Implementation

Sells a DEFINED-RISK bull put (put-credit) spread on Deribit BTC DAILY expiries and rolls it EVERY DAY. At ~2 DTE it SELLS the ~3%-OTM put (~15-25 delta at that tenor) and BUYS the ~6%-OTM put as a wing, collecting the short-dated put-skew / variance-risk premium with a hard, pre-known max loss of (short strike - wing strike) x contracts. The structure is closed 2 hours before the 08:00 UTC settlement and re-established on the next daily expiry. A single COARSE gate stands aside while BTC's trailing 7-day (168 x 1H bar) return is worse than -6%, the regime in which realized downside outruns short-dated put premium. Sizing is risk-first: contracts = max_loss_frac x current equity / the ACTUAL resolved spread width, so each day's pre-known max loss is a fixed 2% of equity. A day trades ONLY when both puts resolved with candle data; an unpaired short put is never sold, and both legs are submitted on the same bar so the book is never naked short. BTC-PERPETUAL 1H bars are the roll clock and the trend gate only - the perp is never traded and there is no underlying fallback path.

Verification Results

No code change required. Optionally the research/hypothesis text could clarify that 'daily' is the roll cadence, not the signal bar, to avoid the auto-generated consistency warning on future runs.

Verification Results

Layer-1.5 flagged that hypothesis says 'Daily' while config.bar_type is BTC-PERPETUAL.DERIBIT-1-HOUR. On inspection this is NOT a real contradiction: 'daily' refers to the option EXPIRY/ROLL cadence (rolling_options roll='daily', dte_target=2), and the 1-HOUR BTC-PERPETUAL bar is used solely as the roll clock and the coarse trend gate (168x1H = 7-day trailing return, matching the hypothesis text). The perp is never traded (should_enter/should_exit/position_size are inert). The design is coherent and the developer documented it explicitly in the rationale.

Verification Results

Confirm the base RollingOptionsStrategy does not rely on its own min_bars_required for leg-data warmup; if it does, reconcile the two so option legs are still fully warmed before the first entry.

Verification Results

min_bars_required() overrides a base-template method (static analyzer base_shadow warning). Here the override is deliberate and used consistently (returns trend_lookback_bars+1, gating both warmup in _try_enter_period and the calculate_signal window). No functional problem observed, but if the base uses min_bars_required for extra-bar/option-leg warmup subscription, confirm the override does not shorten a warmup the base expects.

Verification Results

Defined-risk credit spread: sandbox avg_trade_return_pct is -12.6%, but this is the L72 wing-notional artifact (per-trade return measured against the wide short-minus-wing width, not the premium collected) — the sandbox is actually USD-positive (+$93.7/trade, PF 2.54, total_return +2.44). The real question for the analyst is premium-relative economics and net edge vs Deribit round-trip (~0.06%) over full history; short-dated crypto put VRP is a genuine premium but defined-risk premium selling has historically shown thin per-notional edge. Separately, verify TRADE COUNT: the whole point of the daily-roll design is to escape the ~12-30-trade data-wall that killed prior weekly/monthly VRP books, targeting ~350-420 spreads over lookback_days=420; the truncated sandbox produced only 26 spreads, so confirm the full backtest reaches the designed count (Deribit daily-expiry chain data availability is the binding constraint) — if it lands well under ~100 spreads it becomes unmeasurable rather than fee-nonviable.

Backtest Review

Genuinely new, well-engineered defined-risk structure (bull put spread, long wing hard-caps tail loss) that avoids the naked-short-vol deaths and the wing goes on the same bar as the short.

Backtest Review

Realized economics are net-positive, NOT fee-fragile: the -12.6% avg_trade_return_pct is the L72/L67 wing-notional artifact (return measured against strike width, not premium collected); realized expectancy is +$93.7/trade, PF 2.54, +243% total return.

Backtest Review

Headline risk-adjusted stats look good (Sharpe 1.89, Calmar 6.7, short-put win rate 0.92) and options exposure fills a real venue quota gap.

Backtest Review

The DAILY-ROLL DESIGN DID NOT MATERIALIZE. The whole premise was to escape the data-wall by producing ~350-420 spreads; instead the resolver only found MONTHLY expiries (25JUL25, 29AUG25, 26SEP25, ... 28AUG26 = 14 expiries), yielding 26 complete spreads. avg_dte_at_entry 1.95 confirms it enters ~2 DTE, but only once per monthly expiry, not daily. Deribit daily-expiry chain data simply is not present in the catalog over this history.

Backtest Review

26 trades / 13 effective_daily_obs is non-diagnostic — well under QA's ~100 floor and under the mechanism's own design target. metrics_reliable is nominally true but PSR is only 0.64, sharpe_ci_low 0.93, and profit is dominated by two single days (2025-11-28 +80.9%, 2026-02-27 +79.0%) — classic small-n concentration.

Backtest Review

Tuning cannot enlarge the sample: the binding constraint is daily-expiry chain data availability, not a parameter. A 3-phase run would curve-fit ~9 spreads per walk-forward window and a handful in holdout — the exact wall that killed the prior 12- and 30-trade Deribit VRP books.

Outcome Summary

BtcDeribitDailyBullPutSpreadVrpTrend-34db3a07cc

Outcome Summary

This strategy was a well-engineered, defined-risk bull put spread on Deribit BTC, deliberately designed to sell ~2 DTE puts with a protective long wing and roll every day so it would generate hundreds of observations and escape the 'unmeasurable' data-wall that killed prior weekly/monthly VRP books. The structure worked as intended — wing-first submission, ~2 DTE entries, a 0.92 short-put win rate, +$93.7/trade expectancy and PF 2.54 — but the daily roll never happened: Deribit daily-expiry data simply wasn't in the catalog, so the schedule degenerated to 14 monthly expiries and just 26 spreads. With only 13 effective daily observations and profit concentrated in two big days (PSR 0.64), the analyst abandoned it at backtest review before any optimization, since tuning three parameters cannot enlarge a sample bounded by data availability. It joins a lineage of Deribit VRP books (12, 12, 30 trades) that hit the same wall and is flagged to revive once daily-expiry chain history is collected far enough back.

Outcome Summary

A high-cadence roll can only escape the options data-wall if the underlying short-dated expiry history actually exists in the catalog; verify data availability before designing a mechanism whose statistical power depends on it.

Outcome Summary

The backtest-review analyst issued an 'abandon' verdict before optimization: the daily-roll design failed to materialize because Deribit daily-expiry chain history is absent from the catalog, so the schedule resolved to only 14 monthly expiries, yielding 26 spreads and 13 effective daily observations — far below the ~100-trade floor and non-diagnostic (abandon_class = unmeasurable).

Outcome Summary

Harvest the crypto put-side variance/skew risk premium by selling a ~15-25 delta short-dated Deribit BTC put against a further-OTM long put wing (a defined-risk bull put spread), rolled daily with a coarse downtrend skip.

Outcome Summary

Over the available chain it produced 26 complete spreads with a +$93.7/trade expectancy, profit factor 2.54, +243% total return, Sharpe 1.89 and a 0.92 short-put win rate, but PSR was only 0.64 (sharpe_ci_low 0.93) and profit was dominated by two single days (+80.9% and +79.0%). The headline -12.6% avg_trade_return_pct was a wing-notional measurement artifact, not a real economics failure.
Strategy report

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