Skip to content
All strategies

Strategies

WTI-Brent Crude Spread Reversion on Deribit USDC Oil Perps: Fade 15m Deviations of (WTI - beta*Brent) from a Rolling Regression Fair Value, Dollar-Neutral Two-Leg, Flat Most of the Time (WTIOIL_USDC-PERPETUAL.DERIBIT / BRENTOIL_USDC-PERPETUAL.DERIBIT, 15m)

Outcome: Abandoned

WtiBrentSpreadReversionDeribit15m

Outcome Summary

WtiBrentSpreadReversionDeribit15m adapted QuantConnect/Quantpedia's WTI-Brent spread strategy to Deribit's two USDC oil perps. It replaced the source's always-in SMA flip with a thresholded z-score entry on a rolling regression residual, with an explicit flat state. The code was written in one iteration, but the pipeline could not load any 15m bars for either leg after 5 collection retries, so no backtest was produced. The run was abandoned as data_unavailable before any evaluation stage. That fits the hypothesis's own caveat that the Deribit oil perps, whose history only started on 2026-09-17, did not yet have enough history to test.

Hypothesis

Restated from first principles (not a line-by-line port) from QuantConnect Strategy Library #100 'Trading with WTI BRENT Spread' (Quantpedia). The source's mechanism: WTI and Brent are near-identical light-sweet crudes whose price difference is anchored by a physical arbitrage (seaborne export of US crude, which is bounded by freight and quality differentials), so deviations of the spread from its fair value revert. The source trades it on DAILY spot prices, with an SMA-20 entry and a 1-year regression fair-value……Show moreShow less

Restated from first principles (not a line-by-line port) from QuantConnect Strategy Library #100 'Trading with WTI BRENT Spread' (Quantpedia). The source's mechanism: WTI and Brent are near-identical light-sweet crudes whose price difference is anchored by a physical arbitrage (seaborne export of US crude, which is bounded by freight and quality differentials), so deviations of the spread from its fair value revert. The source trades it on DAILY spot prices, with an SMA-20 entry and a 1-year regression fair-value exit. Our venues carry exactly this pair as two USDC-margined linear perpetuals on the same venue: WTIOIL_USDC-PERPETUAL.DERIBIT and BRENTOIL_USDC-PERPETUAL.DERIBIT (Deribit perp fees are 0.015% maker / 0.035% taker, so about 0.07% round trip per leg). We therefore trade the real spread, not a crypto proxy. Adaptations for a 24/7 perp venue: (1) Fair value is a rolling OLS of Brent on WTI over the trailing N bars, with no look-ahead: fit on bars strictly before the current bar. The residual s_t = BRENT_t - (alpha + beta*WTI_t) is standardized by its rolling std into z_t. (2) Entry is on |z| >= z_entry, not on 'spread above/below SMA20'. The source's SMA rule is an always-in design that flips sides on every SMA cross, which the factory has shown pays a double round trip on every flip (L150), so it is replaced by a thresholded entry with an explicit flat state. (3) Deribit's oil perps trade through weekends and CME halts, when there is no underlying futures anchor and only perp flow moves the spread. Dislocations that open in those windows should revert hardest when the CME reopens. This is the novel element vs the source, but it is NOT a gate: it is reported as a separate attribution, per L130. DATA-AGE CAVEAT (binding): both perps' catalog history starts 2026-09-17 (about 9 days as of 2026-09-26). At 15m bars that is about 860 bars, far below what a validation needs. This hypothesis must NOT be started until at least ~75 days of history have accrued (target ~2026-12-01, about 7,000 15m bars). At the expected firing rate of ~2-3 entries per day, that gives at least 150 trades. Until then any backtest is anecdotal. The developer should use lookback_days to match the available history and never substitute another instrument: USO.USEQ has no Brent counterpart in our universe, CL.USEQ is Colgate-Palmolive rather than crude, and crypto 'identical-asset' pairs have spread moves far below fees. Selection choices stated explicitly (L122): the venue and pair are forced by the source (the only WTI/Brent pair we hold); the 15m timeframe is chosen because with ~2.5 months of data it is the coarsest bar that yields at least 150 trades. Lookback, z_entry and z_exit are the three fitted parameters.

Implements the hypothesis on its exact pair (no substitutes). The fair value uses only prior bars. The SMA always-in rule is replaced by a thresholded entry with an explicit flat state. Weekend/CME-halt entries are tagged in a scalar counter for attribution only, not as a gate. Lookback, z_entry and z_exit are the fitted parameters; stop_z, max_hold_bars and per_leg_pct are fixed risk settings. There are no silent clamps, so no _param_bounds. The Brent leg is used only when its bar timestamp equals the WTI bar's (L139). Each leg is booked as its own order (L146). A naked leg is closed on the next bar. Per-bar cost is O(lookback), independent of span. Caveat: the catalog history starts 2026-09-17, so any backtest before ~75 days of history have accrued is anecdotal, as the hypothesis itself states. Also, a 1-day residual std on 15m WTI/Brent may be small relative to the ~0.14% two-leg round-trip taker cost; if the sandbox shows sub-fee per-trade moves, a longer lookback / higher z_entry is the lever.

data_unavailable: backtest data for WTIOIL_USDC-PERPETUAL.DERIBIT could not be collected after 5 retries: - bars (bar_type=WTIOIL_USDC-PERPETUAL.DERIBIT-15-MINUTE-LAST-EXTERNAL): got 0, needed 100, or 30+ days span - bars (bar_type=BRENTOIL_USDC-PERPETUAL.DERIBIT-15-MINUTE-LAST-EXTERNAL): got 0, needed 100, or 30+ days span The data layer (not the strategy) is the blocker — re-evaluate this hypothesis once collection is fixed / the symbol is backfilled.

Implementation

Dollar-neutral two-leg WTI/Brent spread reversion on Deribit USDC oil perps, 15m bars. Every bar, fits rolling OLS BRENT = alpha + beta*WTI on the previous `lookback` timestamp-aligned bars (excluding the current bar), standardises the current residual by the in-window residual std, and returns z. Enters at |z| >= z_entry (z>0: long WTI / short Brent; z<0: short WTI / long Brent) with equal dollar notional per leg (40% of equity each, 0.8x gross, within the DERIBIT 1x cap). Exits when |z| reverts inside z_exit, at a divergence stop |z| >= stop_z, or after max_hold_bars (48h). Flat otherwise.

Outcome Summary

The hypothesis itself said not to start before about 75 days of Deribit oil-perp history existed (target ~2026-12-01), so it should wait until that history exists and the catalog/collector for these Deribit perps is confirmed working.

The run was abandoned with reason data_unavailable. After 5 retries, collection returned 0 of the 100 bars needed (or 30+ days of span) for both WTIOIL_USDC-PERPETUAL.DERIBIT and BRENTOIL_USDC-PERPETUAL.DERIBIT 15m bars. The abandon reason names the data layer, not the strategy, as the blocker. The backtest-review, analyst and risk stages were never reached.

A dollar-neutral, mostly-flat 15m mean-reversion trade on the WTI-Brent spread using Deribit USDC oil perps: it fades |z| >= z_entry deviations of Brent from a rolling no-look-ahead OLS fair value against WTI, and reports weekend/CME-halt entries separately for attribution only.

There are no performance numbers. The backtest report is empty, optimization never ran, and no return, Sharpe or trade count exists.

Analysis

Trading with WTI BRENT Spread

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