Skip to content

View original

AdaDotL1PairsSpreadMeanReversionLS4H

Hypotheses

ADA-DOT L1 Pairs Spread Mean Reversion

Hypotheses

A market-neutral (net-zero directional exposure) pairs trading strategy on two correlated Layer-1 altcoin futures: ADAUSDT and DOTUSDT on Binance. The strategy maintains dollar-neutral positions — simultaneously long one and short the other — profiting from the mean reversion of their price ratio rather than directional moves. Both are mid-cap L1 smart contract platforms with high correlation (typically 0.80-0.90 over 30-day windows) driven by shared macro/crypto-beta exposure. When their ratio diverges beyond a z-score threshold, the strategy bets on convergence. Uses 4-hour bars for signal generation, keeping trade frequency moderate (estimated 2-4 trades per week) with average holding periods of 1-5 days. Only OHLCV data required — no supplementary data dependencies, minimizing verification complexity. The strategy is inherently hedged against broad market moves (BTC crashes, rallies) since both legs move together on crypto-beta, isolating the idiosyncratic spread as the tradeable signal.

Hypotheses

Classic market-neutral pairs trade on two highly-correlated mid-cap L1s (ADA, DOT) whose shared crypto-beta cancels in a dollar-neutral book, isolating the idiosyncratic ADA/DOT spread as the tradeable mean-reversion signal. DOT is configured as a SAME-4H-timeframe extra leg so the base class's cross-leg alignment barrier defers primary processing until the contemporaneous DOT bar arrives -- the z-score and fills use same-timestamp prices, avoiding the phantom-basis bug from a stale T-1 hedge leg. The log-ratio is stored in a single synced buffer (one append per processed primary bar) so the rolling mean/std stay index-aligned, per the multi-instrument alignment rule. Because the base template only submits the primary leg, the DOT hedge is submitted as a side effect in should_enter and closed in should_exit so both legs move together; equal 40%-equity notional per leg makes the position dollar-neutral with ~80% gross exposure, so leverage stays 1.0 (the leverage_set_but_unused gate does not trigger). The exit band defines the edge: |z|<0.5 banks the bulk of the reversion, |z|>3.5 is the divergence stop against a structural spread break, and the ~5-day time stop bounds carry/fee drag. calculate_signal returns the continuous z-score in natural units and thresholds compare in matching z-units, never clipped. Venue is BINANCE USD-M futures because the strategy shorts one leg; OHLCV-only with no supplementary data minimizes verification complexity. Round-trip ~0.10% per leg is covered by 2-sigma ratio reversions over 1-5 day holds.

Hypotheses

Pre-optimization abandon: market-neutral ADA/DOT pair loses -57.6% (profit_factor 0.90, negative expectancy, 65% DD) driven by a 2021 de-cointegration blowup (2021 -58.8%; 2021-01 -36.3%, 2021-08 -23.5%) where the ratio trended instead of mean-reverting and the z-fade kept re-entering the losing bet. Ex-2021 there is still no edge (2023/2025/2026 negative, rolling Sharpe negative through 2026). Optimization only tunes z-thresholds/lookback/stops and cannot create stationarity where the spread has none, nor an edge the recent years don't show. The code also never checks the hypothesis's own 0.80-0.90 correlation premise at runtime, but a correlation gate would only shrink the 2021 loss, not produce a durable edge. Belongs back with the Research Lead to reframe onto a still-cointegrated pair, not 2 hours of tuning here.

Implementation

Dollar-neutral ADA/DOT L1 pairs spread mean reversion on Binance USD-M futures, 4H bars. Primary leg ADAUSDT, hedge leg DOTUSDT. Each aligned 4H close computes ratio = log(ADA/DOT), a 40-bar rolling mean/std, and z = (R-mu)/sigma. z >= +2 goes SHORT ADA + LONG DOT; z <= -2 goes LONG ADA + SHORT DOT, equal 40%-equity USD notional per leg (dollar-neutral, ~80% gross). Exits when |z| reverts to <= 0.5 (target), |z| >= 3.5 (divergence stop), after a 30-bar (~5-day) time stop, or a 12% per-leg drawdown. The signal is the continuous z-score (varies every bar); should_enter/exit threshold it in z-units. leverage 1.0.

Backtest Review

Large non-sparse sample (800 trades / 400 round trips over 1150 days), matching the hypothesis's 2-4 trades/week.

Backtest Review

Code is correct and genuinely market-neutral (cross-leg barrier, synced log-ratio buffer, continuous z-score signal, beta -0.06).

Backtest Review

Base config is a heavy money-loser: Sharpe -0.72, total_return -57.6%, profit_factor 0.90, negative expectancy (-$72/trade), max_drawdown 65.5%, probabilistic_sharpe 0.048.

Backtest Review

Entire loss is a 2021 de-cointegration blowup: 2021 -58.8% (2021-01 -36.3%, 2021-08 -23.5%) — the ADA/DOT ratio trended during Polkadot's parachain era and the z-fade kept re-entering the losing convergence bet; a -36% month is the signature of a non-stationary spread.

Backtest Review

No consistent edge ex-2021 either: 2023 -4.2%, 2025 -8.1%, 2026 -3.4%, rolling Sharpe negative through 2026 — the pair has degraded.

Backtest Review

Code never verifies the hypothesis's own 0.80-0.90 correlation premise at runtime — it blindly fades any z-score with no cointegration/correlation gate.

Backtest Review

Not worth 2 hours of optimization. The base config loses -57.6% (profit_factor 0.90, negative expectancy, 65% max drawdown), and the loss is a structural 2021 ADA/DOT de-cointegration blowup (2021 -58.8%; 2021-01 -36.3%, 2021-08 -23.5%): through Polkadot's parachain era the ratio trended rather than mean-reverting and the z-score fade re-entered the losing convergence bet, which the divergence/dd stops failed to contain. This is not a tuning artifact — optimization only adjusts lookback/z-thresholds/stops and cannot install the stationarity/cointegration awareness the mechanism needs. Critically, ex-2021 there is also no consistent edge (2023 -4.2%, 2025 -8.1%, 2026 -3.4%, rolling Sharpe negative through 2026), so even removing the blowup leaves no demonstrated edge to optimize toward. Not a quick developer iterate either: the code does implement the pair correctly, and although it omits a runtime correlation/cointegration gate (the hypothesis claims 0.80-0.90 correlation but never checks it), adding that gate would only shrink the 2021 loss, not manufacture an edge the degraded recent years lack. If the pairs mechanism is to continue it should go back to the Research Lead to reframe onto a still-cointegrated pair selected by an actual stationarity test, not be tuned here.

Outcome Summary

AdaDotL1PairsSpreadMeanReversionLS4H was a correctly-built, genuinely market-neutral pairs trade that shorted the rich and longed the cheap ADA/DOT leg whenever their log-ratio z-score stretched past ±2, expecting convergence. It traded densely as designed (800 trades, beta -0.06), but lost 57.6% with a 65% drawdown because its core premise broke down: during Polkadot's parachain era the ratio trended rather than reverting, and the z-fade kept re-entering a losing bet that the stops couldn't contain — a -36% month being the classic tell of a non-stationary spread. The analyst abandoned it before optimization, noting the strategy never even checked its own claimed 0.80–0.90 correlation at runtime and that ex-2021 years showed no edge to optimize toward. Rather than tune thresholds, the analyst recommended sending the pairs mechanism back to the Research Lead to reframe onto a still-cointegrated pair chosen by a real stationarity test.

Outcome Summary

A pairs strategy is only as valid as its stationarity assumption: fading a z-score without a runtime cointegration/correlation gate turns a de-cointegrating spread into a trend-following loss machine, so pair selection must be driven by an actual stationarity test rather than tuned after the fact.

Outcome Summary

It was abandoned at the pre-optimization backtest-review gate (verdict: abandon) because the loss was structural, not a tuning artifact: during Polkadot's parachain era the ADA/DOT ratio trended instead of mean-reverting, so the z-score fade repeatedly re-entered the losing convergence bet and the divergence/dd stops failed to contain a non-stationary spread — and optimization can only adjust thresholds, not install cointegration awareness.

Outcome Summary

A dollar-neutral ADA/DOT Layer-1 pairs trade on 4H bars that shorted the rich leg and longed the cheap leg when the log price-ratio's 40-bar rolling z-score exceeded ±2.0, betting on mean reversion of the spread back toward zero with reversion-target, divergence-stop, time-stop, and per-leg drawdown-stop exits.

Outcome Summary

Over 1,150 days it took 800 trades (400 round trips, matching its 2–4/week thesis) with a 52% win rate but negative edge: Sharpe -0.72, profit factor 0.90, expectancy -$72/trade, a -57.6% total return, and a 65.5% max drawdown. The book was genuinely market-neutral (beta -0.06), but the entire loss traced to a 2021 de-cointegration blowup (-58.8% that year, including -36.3% in Jan and -23.5% in Aug), with no consistent edge ex-2021 either (2023 -4.2%, 2025 -8.1%, 2026 -3.4%).
Strategy report

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