EthBtcRatioMeanReversionDollarNeutralLS
Hypotheses
ETH/BTC Ratio Mean-Reversion, Dollar-Neutral Long-Short (BINANCE USD-M Perps ETHUSDT + BTCUSDT, Daily Bars, Fade STATISTICALLY-EXTREME Dislocations of the log(ETH/BTC) Spread from its 60-Day Mean Back to Fair Value — Held Days-to-Weeks, Regime-Guarded Against Secular ETH-Season Trends, Pure OHLCV, 3-Parameter)
Hypotheses
A DOLLAR-NEUTRAL, market-neutral pairs mean-reversion on the two DEEPEST crypto instruments — ETHUSDT and BTCUSDT USD-M perpetuals — trading the log(ETH/BTC) relative-value SPREAD, not either absolute price. The core insight: absolute crypto prices trend (which is why outright reversion mostly dies), but the ETH/BTC RATIO is a bounded, flow-driven relative-value series that mean-reverts around slow-moving levels — capital rotates between the two majors and overshoots, then snaps back. This is deliberately the OPPOSITE SIGN of the risk-rejected SOL/ETH spread-TREND follower (which rode the ratio and got rejected on risk): here we FADE extreme dislocations, entering only when the spread is statistically stretched (|z| > 2 vs its 60-day mean) and targeting reversion to fair value. It is engineered against the dominant killers: FEE_EDGE — entries are rare (only >2-sigma stretches) and each targets a large reversion (a 2-sigma ETH/BTC move is typically 4-8%), so the ~0.20% two-leg futures round-trip is dwarfed by the per-trade move (unlike the two-leg spot-perp CARRIES that just died because the spot leg's impact cost ate a sub-2bp funding edge — this trade has NO spot leg and captures a percent-scale relative move, not basis points); OVERFIT — three robust parameters (lookback, entry-z, stop-z), no per-name tuning; RISK — a secular-trend GUARD keeps it from fighting a sustained ETH-season/BTC-season, and a hard stop on further divergence bounds the classic pairs blow-up. It fills the most under-represented direction bucket (long_short 14.6% vs target, market_neutral) and the pairs scope, on pure OHLCV (the best-surviving data tag at 4%).
Hypotheses
Implements the hypothesis exactly: fade statistically-extreme dislocations of the log(ETH/BTC) relative-value spread back to fair value, dollar-neutral, on the two deepest crypto instruments, pure OHLCV. It is the deliberate opposite sign of the risk-rejected SOL/ETH spread-TREND follower — here we FADE (enter at |z|>entry_z, target reversion) rather than ride. Engineered against the three named killers: FEE_EDGE — entries fire only on >2-sigma stretches (a synthetic 3-year dry-run produced ~12 entries), and each targets a percent-scale reversion (a 2-sigma ETH/BTC move ≈ 4-8%) that dwarfs the ~0.20% two-leg futures round trip; crucially there is NO spot leg, so the impact-cost bleed that killed the spot-perp carries is absent. OVERFIT — only 3 free parameters (lookback, entry_z, stop_z), no per-name tuning; the secular guard and windows are frozen/derived. RISK — the fast/slow spread-MA secular guard keeps it from fighting a sustained ETH-season/BTC-season (blocks shorts in a secular uptrend, longs in a downtrend), and the hard stop_z on further divergence bounds the pairs blow-up. Correctness: multi-instrument alignment uses the SyncedBuffer helper (BTC staged in on_extra_bar, committed when ETH's same-timestamp bar arrives), so the spread/z-score never mixes mismatched timestamps (the multi-instrument-alignment pitfall); the base class also defers the primary signal until the same-timeframe BTC leg is contemporaneous. Both legs are driven directly with equal dollar notional (dollar-neutral) and a naked-leg guard; the base single-position hooks are inert. Data availability verified: both ETH and BTC USD-M daily bars are collected from genesis (full multi-year history), so the 180-day warmup is a small fraction of the sandbox window and there is no no-trades/verification_loop risk — the OI-basket's short-window failure was specific to its OI supplementary data, which this pure-OHLCV strategy does not use. Venue is BINANCE USD-M futures (shorting the spread requires shorting a leg; leverage 1.0, referenced in sizing so no leverage_set_but_unused). Fills the under-represented long_short/market-neutral direction bucket and the pairs scope on the best-surviving pure-OHLCV data tag. The signal is continuous (the z-score, varying every bar) with entry/exit thresholded against that same z unit.
Hypotheses
No edge on a sample too thin to optimize. Over a full 6.5-year window the ETH/BTC 2-sigma ratio mean-reversion is a coin flip that loses slightly: profit_factor 0.984 (<1.0), Sharpe -0.06, omega 0.96, win_rate 0.50, expectancy -$30.88/trade, total_return -2.11%, avg_trade_return_pct 0.0095% (~zero), with avg_win $3,697 ~ avg_loss $3,759. This is NOT a fee-churn problem (only 36 trades, commission 2.48% of gross) — the mean-reversion premium, net of the ~0.20% two-leg futures round-trip and the ratio's secular drift, simply does not exist at daily frequency with this construction. Critically, the 36 entries are the HIGHEST-conviction >2-sigma stretches, and they already fail to pay, so lowering entry_z to add marginal trades would dilute the edge, not create one; optimizing 3 parameters against 36 trades would curve-fit to noise and collapse on the walk-forward/holdout (the same fate as today's majors-basket siblings). The secular-trend guard is coherent (fade extremes only when aligned with the macro regime), so this is not a fixable code bug. The 'market-neutral' trade also carries fat left tails (max_drawdown 19.4%, skew -3.1, kurtosis 55) — the pairs blow-up profile that risk-rejected the SOL/ETH spread sibling. Abandon at review rather than spend a 2-hour optimization on a no-edge, thin, fat-tailed base. META-NOTE FOR RESEARCH LEAD: outright ETH/BTC ratio reversion at daily frequency shows no net edge; if relative-value between the majors is worth pursuing, it likely needs a faster horizon or a flow/basis conditioning signal rather than a pure price-z fade, but the raw 2-sigma reversion premium is not there.
Implementation
Dollar-neutral, market-neutral pairs mean-reversion on the log(ETH/BTC) spread using ETHUSDT + BTCUSDT BINANCE USD-M perpetuals, daily bars, pure OHLCV. Each day it computes spread = log(ETH/BTC) from timestamp-aligned closes and the z-score of that spread vs its `lookback`-day (60) rolling mean/std. When z ≥ entry_z (2.0, ETH statistically rich) it SHORTS the spread (SELL ETH + BUY BTC, equal dollar notional per leg); when z ≤ -entry_z (ETH cheap) it LONGS the spread (BUY ETH + SELL BTC). It targets reversion to fair value (exit when |z| ≤ exit_z = 0.5), stops on further divergence (|z| ≥ stop_z = 3.5) to bound the classic pairs blow-up, and has a 30-day time-stop. A frozen, derived secular-trend guard (fast SMA_lookback vs slow SMA_trend_window of the spread) prevents shorting into a secular ETH-season uptrend or longing into a BTC-season downtrend — only extremes NOT aligned with the prevailing drift are faded. A naked-leg guard flattens both legs if one ever exists without the other. Timestamp alignment uses the SyncedBuffer helper. Three tunable knobs: lookback, entry_z, stop_z.
Verification Results
Analyst: evaluate on the full multi-year window; >2σ + secular-guard gating makes entries rare (36 in sandbox). Confirm the ratio mean-reverts profitably net of the ~0.20% two-leg round trip before optimizing; if win_rate stays ~0.5 with avg_win ~= avg_loss, the reversion premium isn't there.
Verification Results
Non-diagnostic sandbox: only 36 trades with Sharpe CI [-7.63, +8.61] and PSR 0.42 — cannot distinguish edge from noise. Realized result is a marginal coin-flip (total_return -2.11%, PF 0.965, win_rate 0.50, avg_win $3816 ~= avg_loss $3953), NOT the '2-sigma ETH/BTC move ~4-8% per trade' the hypothesis claims. avg_trade_return_pct +0.0095% is a per-leg artifact for a dollar-neutral pair (each leg's % dominated by its absolute move; the pair nets to the spread move), so don't gate it at the 0.15% floor. This is NOT a decisive fee/edge failure like the XRP climax (881 trades, PF 0.77) — just underpowered.
Verification Results
Verify on the full window the ratio reversion is persistent (not one regime) and that the secular guard actually prevents trend-fighting blowups.
Verification Results
Pure-OHLCV tag is low-survival broadly, but this is a relative-value PAIRS (stat-arb) reversion on the ETH/BTC ratio — a genuinely distinct mechanism from the abandoned outright-reversion / VWAP-deviation / momentum-rank classes (it trades the bounded ratio, not absolute price). Noted so the analyst applies the OHLCV bar without auto-rejecting a legitimately different archetype.
Verification Results
Analyst/optimizer: note `lookback` drives both roles; consider decoupling only if sensitivity analysis shows a cliff.
Verification Results
The secular guard reuses `lookback` (60) for BOTH the z-score window AND the fast secular MA, coupling two roles of one parameter; there's no neutral band at the fast/slow crossover. Coded as intended, not a bug, but optimization moving `lookback` shifts both the entry stretch and the regime filter together.
Backtest Review
Genuinely market-neutral / pairs scope (under-represented bucket); clean two-leg dollar-neutral implementation with timestamp alignment and a coherent secular-regime guard
Backtest Review
No spot leg, so no impact-cost bleed; commission only 2.48% of gross — the fee_edge trap is avoided
Backtest Review
Correct pairs risk controls (further-divergence stop, time-stop, naked-leg guard)
Backtest Review
No edge: profit_factor 0.984 (<1.0), Sharpe -0.06, omega 0.96, win_rate 0.50, expectancy -$30.88/trade, total_return -2.11% over 6.5 years
Backtest Review
avg_trade_return_pct 0.0095% ~ zero; avg_win $3,697 ~ avg_loss $3,759 — a coin flip that loses to costs
Backtest Review
Only 36 trades over 6.5 years — too thin to optimize 3 params without curve-fitting; and these are the highest-conviction >2-sigma entries, so loosening won't help
Backtest Review
Fat-tailed 'market-neutral' risk: max_drawdown 19.4%, skew -3.1, kurtosis 55 — the pairs blow-up profile that risk-rejected the SOL/ETH spread sibling
Outcome Summary
This strategy proposed a clean, dollar-neutral pairs mean-reversion that faded extreme log(ETH/BTC) spread dislocations back to fair value, deliberately engineered against the fee-edge trap (no spot leg, commission only 2.48% of gross) with a coherent secular-trend guard. But over a full 6.5-year window it proved to be a coin flip that lost slightly to costs: 36 trades, Sharpe -0.06, profit factor 0.984, expectancy -$30.88/trade, and a near-zero per-trade return, all wrapped in a fat left tail (19.4% drawdown, skew -3.1, kurtosis 55). Because those 36 entries were already the highest-conviction >2-sigma stretches and still failed to pay, the analyst judged the sample too thin to optimize without curve-fitting and abandoned it at the backtest-review gate rather than spend hours on a no-edge base. Optimization, risk review, and promotion were never reached; the closing note flagged that majors relative-value likely needs a faster horizon or a flow/basis signal instead of a pure price-z fade.
Outcome Summary
Pure price-z ETH/BTC ratio reversion at daily frequency has no net edge — relative value between the majors likely needs a faster horizon or a flow/basis conditioning signal rather than a raw 2-sigma fade.
Outcome Summary
The analyst issued an 'abandon' verdict at the pre-optimization backtest review, concluding the 2-sigma reversion premium net of the ~0.20% two-leg round-trip simply does not exist at daily frequency, and that 36 highest-conviction entries were too thin to optimize 3 parameters without curve-fitting; optimization and later stages were never reached.
Outcome Summary
A dollar-neutral, market-neutral pairs trade that faded statistically-extreme (|z| > 2 vs a 60-day mean) dislocations of the log(ETH/BTC) spread on BINANCE USD-M perps, betting the ETH/BTC ratio mean-reverts to fair value while a secular-trend guard kept it from fighting sustained ETH-/BTC-season drifts.
Outcome Summary
Over a 6.5-year backtest (393 data days of activity, 36 trades) it showed no edge: total_return -2.11%, Sharpe -0.06, profit factor 0.984, win_rate 0.50, and expectancy -$30.88/trade with avg_trade_return_pct ~0.0095% (near zero). Risk was fat-tailed for a 'market-neutral' book — max_drawdown 19.4%, return skew -3.1, kurtosis 55 — with avg_win $3,697 roughly equal to avg_loss $3,759.
Backtest and paper results are hypothetical. Trading involves risk of loss.