Skip to content

View translation

DotAdaRollingCointegrationSpreadMeanReversionLS

Hypotheses

DOT/ADA Rolling-Cointegration Spread Mean-Reversion, Dollar-Neutral Long-Short (Binance USD-M, 12H bars, adaptive OLS hedge ratio + rolling-z entry band, structural-break stop, 3-parameter)

Hypotheses

A dollar-neutral, two-instrument stat-arb on two same-cohort smart-contract-L1 perps: DOTUSDT.BINANCE (primary) + ADAUSDT.BINANCE (hedge). Rolling OLS hedge ratio → residual spread → rolling z-score; trade transient dislocations and hold until reversion. Rolling (not full-sample) anchor adapts to regime, avoiding the 'short the winner forever' trap. Net market exposure ~0 — mechanistically distinct from the momentum-confluence winners and from the ETH/BTC ratio-momentum death.

Hypotheses

Implements the hypothesis literally: adaptive (rolling, not full-sample) OLS hedge ratio -> residual spread -> rolling z entry band -> structural-break stop, on DOT/ADA 12H Binance USD-M perps, with exactly three optimizable signal parameters (z_lookback, z_entry, z_exit) and the rest fixed as risk plumbing. The rolling anchor recomputes beta, mean and std every bar so a genuine re-rating of one coin against the other moves the fair value instead of producing a permanent 'short the winner' position — the failure mode the hypothesis calls out. Dollar neutrality is enforced at the sizing layer (matched notionals, beta clamped to [0.3, 2.5] so a noisy regression cannot make the 'neutral' book directional), which addresses the known failure pattern where mismatched pair legs carry net delta and get liquidated. Venue is futures (BINANCE) because the strategy shorts one leg every trade; leverage 2.0 is genuinely consumed in position_size (equity * per_leg_pct * self.config.leverage / price) giving 0.30x equity notional per leg and ~0.6x gross, deliberately modest so compounded and arithmetic returns do not diverge through volatility drag. Entry frequency: a 90-bar (45-day) window with a 1.8-sigma band on 12H bars fires roughly 15-25 round trips per year over the 6-year history, so the sandbox window produces many trades and each capture (typically 1.5-2 sigma of a residual whose 45-day sigma is several percent) is large relative to the ~0.20% round-trip taker cost across the two legs. No parameter is silently clamped in code, so no _param_bounds block is declared.

Hypotheses

Marginal net expectancy on a decisive 202-trade / 5.8-year sample: profit_factor 1.0286 sits in the fee/impact-drag band [0.85,1.10] (impact 21.2% of gross), Sharpe 0.121 with CI [-0.754,0.921] straddling zero, total_return only +4.8% over 5.8 years against 22.2% max drawdown (recovery_factor 0.36). The two-leg 0.266% per-trade return leaves negligible margin over round-trip cost. The edge is regime-confined (only_one_regime=true): profitable only in the normal-vol tercile (+52%) while LOSING in calm (-18.7%) and stressed (-17.2%), negative in 3 of 7 years, with most of 2025's gain coming from a single +16.5% 2025-03-03 print that is a caution flag on a delta-neutral book — QA's concern is borne out on full history. This is the dollar-neutral major-alt-perp long-short mean-reversion class (L45 multi_instrument 0/84; SolEth dollar-neutral and EthBtc ratio both abandoned) that dies at PF~1.0 after optimization; three parameters cannot lift a PF-1.03, single-regime signal above costs — a 2-hour walk-forward would only curve-fit the normal-vol regime and the March-2025 outlier. abandon_class=negative_expectancy.

Implementation

Dollar-neutral statistical arbitrage on two same-cohort alt-L1 Binance USD-M perpetuals, DOTUSDT (primary) and ADAUSDT (hedge), on 12-HOUR bars. Every aligned bar it fits a ROLLING OLS hedge ratio beta of log(DOT) on log(ADA) over the last z_lookback bars, forms the cointegration residual e = log(DOT) - beta*log(ADA), and returns its rolling z-score as a continuous signal in natural units (~+-4). z <= -z_entry means the residual is cheap -> LONG DOT / SHORT ADA; z >= +z_entry means it is rich -> SHORT DOT / LONG ADA. Positions are held until the residual reverts inside +-z_exit (the OU capture), until |z| >= z_stop (structural break of the relationship), or until max_hold_days of calendar time has elapsed since entry. Both legs are sized to matched USD notional (hedge notional = beta * primary notional) at per_leg_pct of equity times the configured leverage, so the book runs at ~zero net delta and roughly 0.6x gross exposure.

Verification Results

Optionally skip entry (return 0.0 signal) when the raw regression slope is <= 0 rather than clamping it up to beta_min, so a decoupled window stands aside instead of trading a mis-hedged pair.

Verification Results

OLS beta is clamped to [0.3, 2.5], which forces a positive hedge ratio. If DOT/ADA decouple and the windowed regression prints a negative slope, the clamp installs a +0.3 hedge, momentarily making the 'neutral' book directional. In practice these two same-cohort L1s are strongly positively correlated so this is a rare edge case, not a defect, but the analyst should be aware the neutrality guarantee has this boundary.

Verification Results

Sandbox smoke test is weak and marginal: profit_factor 1.013 (barely >1), Sharpe 0.12 with CI [-0.72, 0.92] straddling zero, total_return +4.8% over ~5.8y. Regime split is unfavourable — it MAKES money only in the normal-vol tercile (+52.2%) and LOSES in both calm (-18.6%) and stressed (-17.2%), i.e. the edge is confined to one regime. Impact cost is 36% of gross with capacity only ~$775k, so realized edge shrinks fast at size. This is the dollar-neutral major-alt-perp long-short pair class the graveyard shows dying at PF~1.0 (e.g. SolEth dollar-neutral, EthBtc ratio, and L45 multi-instrument 0/84). avg_trade_return_pct 0.266% does clear the two-leg fee floor, so it is not fee-nonviable outright, but I would check on full history whether the residual actually mean-reverts (vs. continues, which killed the ETH/BTC anchor trade) and whether the normal-regime-only profitability survives OOS before spending optimization budget.

Backtest Review

Reliable sample: 202 trades over 5.8 years / 4270 bars, balanced 101 long / 101 short legs (dollar-neutral mechanism correctly implemented, 0 dropped orders).

Backtest Review

avg_trade_return_pct 0.266% nominally clears the single-leg Binance USD-M fee floor; commission is only 1.83% of gross.

Backtest Review

benchmark_meaningful=false is appropriate (market-neutral) — judged on absolute risk-adjusted metrics.

Backtest Review

profit_factor 1.0286 sits in the fee/impact-drag band [0.85,1.10] — gross edge is real but sits inside costs (impact_cost_pct 21.2%). For a two-leg pair the 0.266% per-trade return leaves almost no net margin.

Backtest Review

Sharpe 0.121 with CI [-0.754, 0.921] straddling zero; Sortino 0.134; total_return +4.8% over 5.8 years (~0.8%/yr) against a 22.2% max drawdown (recovery_factor 0.36).

Backtest Review

Edge confined to ONE regime (only_one_regime=true): +52% in normal-vol tercile but LOSES in calm (-18.7%) and stressed (-17.2%) — QA's edge concern borne out on full history.

Backtest Review

Negative in 3 of 7 calendar years; most of 2025's +10% came from a single 2025-03-03 print of +16.5% (month +19.6%) — a double-digit single-day move on a supposedly delta-neutral book is a caution flag for leg/bar misalignment, not clean reversion capture (symptom only, mechanism not independently verified).

Backtest Review

Belongs to the dollar-neutral major-alt-perp long-short mean-reversion class (L45 multi_instrument 0/84; SolEth dollar-neutral and EthBtc ratio both abandoned) that dies overfit/no-edge at PF~1.0 after the 3-phase run.

Outcome Summary

DotAdaRollingCointegrationSpreadMean-3d12aa0166

Outcome Summary

DotAdaRollingCointegrationSpreadMeanReversionLS was a dollar-neutral long-short mean-reversion strategy trading the rolling cointegration residual of DOT against ADA on 12H Binance USD-M perps. On a decisive 202-trade, 5.8-year sample it produced only +4.8% total return against a 22.2% drawdown, with Sharpe 0.12 (CI spanning zero) and profit factor 1.03 sitting squarely inside the fee-and-impact drag band. The analyst noted the edge existed only in the normal-vol regime (+52%) while losing in calm and stressed periods and negative in 3 of 7 years, with much of 2025's gain from a single suspicious +16.5% print on a supposedly delta-neutral book. It was abandoned at the pre-optimization backtest-review gate as negative-expectancy — a known dying class of dollar-neutral major-alt-perp mean-reversion — so optimization, analyst, and risk stages were never reached.

Outcome Summary

A two-leg pair paying round-trip cost on both legs needs per-trade margin well above 0.266% and edge that survives across volatility regimes; a PF~1.03 single-regime signal cannot be rescued by tuning three parameters.

Outcome Summary

The backtest-review analyst returned an 'abandon' verdict before optimization: profit factor 1.03 sits inside the fee/impact-drag band (impact 21.2% of gross), Sharpe straddles zero, and the edge was regime-confined (profitable only in the normal-vol tercile at +52% while losing in calm -18.7% and stressed -17.2%, negative in 3 of 7 years).

Outcome Summary

A dollar-neutral DOT/ADA stat-arb on Binance USD-M 12H perps that traded the residual of a rolling-OLS cointegration spread back toward its mean via a rolling z-score entry band.

Outcome Summary

Over 5.8 years and 202 trades (101 long / 101 short) it returned +4.8% total against a 22.2% max drawdown, with a Sharpe of 0.12 (CI -0.75 to 0.92), profit factor 1.03, and avg_trade_return_pct of 0.266%.
Strategy report

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