Skip to content
All strategies

Strategies

ETH-vs-BTC Relative Options Fear Premium: Dollar-Neutral ETH/BTC Pair on Bybit Linear Perps, Timed by (ETH DVOL - ETH RV14) minus (BTC DVOL - BTC RV14) z-Score, Fixed 14-Day Clock (BYBIT 1-DAY, long-short, market-neutral, flat most of the time)

Outcome: Analyzing

EthBtcRelativeFearPremiumPairBybit

The strategy works as the hypothesis describes. The ledger has 94 closed legs, which make 47 dollar-neutral pairs: each ETH leg is opened the same day as an opposite BTC leg of equal size (0.45 of equity per leg).…

Hypothesis

Original Research Lead hypothesis. It extends the information channel behind two promoted runs: the ETH options-implied fear-premium timer on the OKX swap (run 320afbce: 164 trades, average trade 2.02%) and the ETH VRP regime on Deribit's linear perp (39 trades, 2.20%). Those runs time ETH's direction with its own options market. This hypothesis asks a RELATIVE question that neither tested: when the options market charges an unusually large fear premium on ETH RELATIVE to BTC, does ETH outperform BTC as that……Show moreShow less

Original Research Lead hypothesis. It extends the information channel behind two promoted runs: the ETH options-implied fear-premium timer on the OKX swap (run 320afbce: 164 trades, average trade 2.02%) and the ETH VRP regime on Deribit's linear perp (39 trades, 2.20%). Those runs time ETH's direction with its own options market. This hypothesis asks a RELATIVE question that neither tested: when the options market charges an unusually large fear premium on ETH RELATIVE to BTC, does ETH outperform BTC as that relative premium bleeds? The trade is the ETH/BTC spread, dollar-neutral, so the market-direction bet those runs carry is removed. Per lesson L232, the options signal is expressed only through linear instruments of the underlyings it measures: the ETHUSDT and BTCUSDT linear perps on BYBIT, a venue that is under-represented in the corpus (3.1% vs the 5% target). Options are not traded. Signal, computed once per day at the 1-DAY bar close (00:00 UTC) using only data at or before that close: vrp_E = DVOL_ETH - RV_E and vrp_B = DVOL_BTC - RV_B. DVOL_x is the Deribit 30-day implied-vol index, read with self.supp_as_of('DVOL_ETH') / self.supp_as_of('DVOL_BTC'); these are hourly named series keyed at each candle close, from 2021-03. RV_x = stdev of the last rv_lookback daily log returns of that coin's Bybit close x sqrt(365) x 100, in DVOL's units. rel = vrp_E - vrp_B. z = (rel - mean(rel over z_window days)) / std(rel over z_window days). If z >= +entry_z, ETH's fear premium is unusually rich relative to BTC's: go LONG ETHUSDT.BYBIT and SHORT BTCUSDT.BYBIT in equal dollar notional. If z <= -entry_z, ETH's options are complacent relative to BTC's: go SHORT ETH and LONG BTC. Hold for exactly hold_days daily bars, then close both legs. No new pair is opened while one is open (non-overlapping events). Why BTC is used despite its corpus concentration: the mechanism is defined against BTC. BTC is the only other underlying with a DVOL index, and the BTC leg is the hedge leg, not the bet. PRE-STUDY by the Research Lead (Bybit linear 1-DAY closes from the catalog, DVOL ffilled to each bar close, 2021-03 to 2026-10, non-overlapping events, gross spread return per pair). Baseline rv_lookback=14, z_window=180, entry_z=1.0, hold=14d: 71 events, mean +1.96%, median +1.82%, win rate 65%. Long-ETH arm +0.96%, short-ETH arm +3.05%. By year: 2021 +3.3%, 2022 +3.2%, 2023 -0.5%, 2024 +5.0%, 2025 +2.3%, 2026 -0.1%. Neighbours: z_window=365 with entry_z=1.0 gives 61 events and +1.54%. RV7 with z_window=365 and entry_z=0.5 gives 94 events and +1.77%. entry_z=0.5 with z_window=180 is weaker (105 events, +0.99%). RV30 is weak or flat in most cells. That is a stated sensitivity, not a hidden one. Matched control for ETH/BTC drift (the ratio fell through 2022-2025): an UNCONDITIONAL 14-day short of ETH/BTC averaged +0.79% from 2022 on, and the unconditional long therefore -0.79%. Incremental expectancy attributed to the signal (lesson L217): about +2.2% on the short-ETH arm and about +1.7% on the long-ETH arm over the same instrument with no options signal. The control must be reported by running with signal_mode='always_short_eth' (the same clock and sizing, entering every hold_days with no options signal), so the analyst can compare the two on identical costs. Execution substitution: decisions are made at the daily close and filled by market orders at that close. On a 24/7 venue that price is the next bar's open, the registry's use_equivalent for next_bar_open_fill. Both legs are ordered on the same bar. The strategy must check self.legs_balanced() and flatten a lone leg if one fill is refused. Risk control is route (b): a time exit plus capped sizing. Each leg is 45% of equity (gross 90%, leverage setting 2.0 for margin headroom, net ~0). A pair-level protective exit at the daily close closes both legs if the pair's combined unrealised loss reaches spread_stop_pct of the pair's per-leg notional. That is a fixed risk setting, not a signal. Funding is charged on both Bybit legs through the funding ledger and roughly offsets, since BTC and ETH funding co-move.

Under-represented buckets this fills: BYBIT venue (3.1% vs 5% target), long-short (24% vs 45%+), pairs and market-neutral. It uses the options-information channel that lesson L232 says to express through linear instruments, the route behind the only promoted DVOL runs. Ideas I measured first and rejected in this session: (1) the Bybit-native spot/linear volume-share accumulation transfer, at 523 events with -0.05% gross per 5 days, where the share filter worsened the trend-only control; (2) Bybit daily perp-minus-spot basis extremes, which gave non-monotone noise; (3) the frozen daily down-shock absorption rule on 16 Bybit spot alts, -1.3% at 3 days and losing in 2022. Not a duplicate of the pipeline's BtcCoinMDvolVrpRegimeLong (single-coin, long-only) or of the ETH timers (directional): this is the cross-sectional difference of two VRPs, traded as a dollar-neutral spread.

Implementation

Dollar-neutral ETH/BTC pair on Bybit linear perps (1-DAY). Each daily close computes rel = (DVOL_ETH - RV_ETH) - (DVOL_BTC - RV_BTC), with RV = rv_lookback-day annualised close-to-close vol in DVOL units, and z-scores it over z_window days. z >= +entry_z: long ETH / short BTC; z <= -entry_z: short ETH / long BTC. Equal-dollar legs of 45% of equity each, held hold_days daily bars, non-overlapping. The pair is closed early if the combined unrealised loss reaches spread_stop_pct of per-leg notional or the hedge breaks (legs_balanced). signal_mode='always_short_eth' is the matched no-signal control. Execution substitution: market orders at the decision bar's close, which on a 24/7 venue is the next bar's open (next_bar_open_fill use_equivalent).

Iteration 2, IMPLEMENTATION FIX. The zero-trade result came from a data-injection bug, not from the entry threshold. _dvol() called self.supp_as_of(key) with a variable. The platform injects a named series (DVOL_ETH/DVOL_BTC) only when the code reads it by its literal name (supp_as_of("DVOL_ETH")). Both series were therefore empty, z was never computed, and no pair was opened. Note also that should_enter() always returns None by design, because both legs are submitted from calculate_signal. The fix reads both series with literal supp_as_of("DVOL_ETH") / supp_as_of("DVOL_BTC") calls, and I checked that the platform's detector now finds both: about 48.8k hourly points each, 2021-03 to now. Trading rules, parameters, config and sizing are unchanged. The risk route is (b): a time exit plus a pair-level loss exit, with gross 90% of equity at leverage 2.

Backtest Review

Sharpe
0.45
Total return
48.52%
Max drawdown
18.69%
Trades
128
Win rate
51.6%
Profit factor
1.19

The strategy works as the hypothesis describes. The ledger has 94 closed legs, which make 47 dollar-neutral pairs: each ETH leg is opened the same day as an opposite BTC leg of equal size (0.45 of equity per leg). There are 26 short-ETH pairs and 21 long-ETH pairs, so both directions trade. Most pairs exit on the 14-day clock and none overlap.

The trade rate matches the pre-study: 47 pairs over about 3.4 years of development data (entries begin 2022-04 after warm-up), about 14 a year, against the Research Lead's 71 events over about 5 years.

Per-trade economics comfortably clear costs. The average leg return is 1.02% of notional against the Bybit linear floor of about 0.15%, roughly 7 times the floor. Profit factor is 1.31, win rate 0.52, and total return +50% net of fees and funding.

The worst drawdown is 18.7%, inside the pre-registered 20%. The result does not depend on one pair: removing the largest pair (2025-04-30, +$18.1k) still leaves about +$30k across 46 pairs. No phantom spread: both legs are liquid majors on matched daily closes, and the input audit is clean.

The risk-adjusted edge is modest and noisy. Sharpe is 0.56 (confidence interval -0.48 to 1.59) and the longest drawdown lasted 777 days. 2023 lost 5.96%, and the profit sits mostly in 2024 and 2025.

The control run the hypothesis asked for (signal_mode='always_short_eth') is not part of this review, so the extra return from the signal beyond the ETH/BTC drift has not yet been shown on identical costs. The short-ETH side does lead (26 of 47 pairs).

Buy-and-hold does not apply as a benchmark here (the pair is market-neutral and benchmark_meaningful is false), so I judge it on its absolute metrics.

The sample is small for 4 tunable parameters: about 14 pairs a year means few, long walk-forward windows.

Iteration History

Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: ETHUSDT.BYBIT-1-DAY-LAST-EXTERNAL, Bars processed: 1643 Diagnostics: should_enter() returned a side 0 times over 1643 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.

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