Strategies
ETH/BTC Ratio 4H Bollinger Band Mean-Reversion Long-ETH Short-BTC Pair (BINANCE USD-M, 3-Parameter, Dollar-Neutral, Time-Stop-Only)
Outcome: Abandoned
EthBtcRatioBollingerPairMeanReversionLS
Outcome Summary
EthBtcRatioBollingerPairMeanReversionLS was a carefully designed answer to a prior LINK/ETH failure — moving back to the analyst-prescribed 4H timeframe, trading a two-sided dollar-neutral ETH/BTC ratio band, and dropping the stop-z parameter the optimizer had previously abused. The construction was correct and well-populated, but it lost 67.4% with a Sharpe of -1.18 whose entire confidence interval was negative, a 68.8% drawdown, and losses in 6 of 7 years on both spread directions. The cause was structural: the ETH/BTC ratio trends through its z-score bands rather than reverting, so no lookback, entry-z, or hold-time change could rescue it. As the fourth-plus failed crypto-major-ratio mean-reversion variant of the session, the analyst abandoned it at the backtest-review gate and recommended redirecting away from the mechanism class entirely.
Hypothesis
Implementation
Dollar-neutral ETH/BTC ratio Bollinger mean-reversion pair on 4H bars. It z-scores the ETH/BTC close ratio over a rolling lookback window; at z <= -entry_z it goes long ETHUSDT / short BTCUSDT in equal dollar notional (ETH oversold vs BTC), and at z >= +entry_z it shorts ETH / longs BTC. It closes both legs when the ratio reverts through its rolling mean (z crosses 0 favourably) or after a hard max_hold_bars time stop. There is no stop-z parameter, so the optimizer has no stop knob to push to extremes. Three tunable parameters (lookback_bars, entry_z, max_hold_bars); exit_z pinned to 0, per_asset_pct fixed at 30% per leg. Leverage 1.0.
Verification Results
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['entry_z', 'min_notional', 'lookback_bars', 'max_hold_bars', 'per_asset_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - zero_volume: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000) - price_gap: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735689660000)
Backtest Review
- Sharpe
- -1.18
- Total return
- -67.39%
- Max drawdown
- 68.77%
- Trades
- 276
- Win rate
- 50.4%
- Profit factor
- 0.71
Clean two-sided dollar-neutral construction (beta -0.035, no sizing blow-up), healthy trade count (276), correct cross-leg alignment
Disciplined 3-parameter design with the stop-knob removed (addresses the LINK/ETH optimizer-abuse failure mode)
Catastrophic loser: Sharpe -1.18 with the ENTIRE CI negative (-1.76 to -0.41), profit_factor 0.71, omega 0.47, expectancy -$233/trade, total_return -67.4%, PSR 0.0002
68.8% max drawdown with return_skew -5.7 and kurtosis 64.6 — the ETH/BTC ratio trends through the z-score bands rather than mean-reverting; both spread directions lose
Negative in 6 of 7 years (2020 -24%, 2021 -30%, 2022 -15%, 2025 -22%) — edgeless across regimes, not one bad window
Fourth+ pairs-MR variant to fail (one-sided ETH/BTC, LINK/ETH, SOL-AVAX abandoned; LTC/BTC failed post-opt) — crypto major-ratio z-score MR has no edge over these windows
Outcome Summary
Disciplined parameter scope and a clean two-sided dollar-neutral build cannot create an edge where the spread isn't stationary — this was the fourth-plus crypto major-ratio z-score mean-reversion variant to fail (after one-sided ETH/BTC, LINK/ETH, SOL-AVAX abandoned and LTC/BTC failing post-optimization), confirming the mechanism class has no robust edge over these windows.
The analyst abandoned it at the backtest-review gate before optimization because its premise was falsified by its own data: the ETH/BTC ratio trends through the z-score bands rather than mean-reverting on a 4H/100-bar window (dominance rotations are persistent, not stationary), so the time stop merely locked in trend losses — removing the stop-z knob didn't help because the failure was an absence of reversion edge, not optimizer abuse.
A dollar-neutral, OHLCV-only TWO-sided relative-value pair on 4H bars — z-scoring the ETH/BTC price ratio over a rolling 100-bar window and, at an extreme negative z, going long ETHUSDT and short BTCUSDT in equal dollar notional (and the symmetric short-ETH/long-BTC at extreme positive z), exiting on reversion to the mean or a 96-bar (~16-day) time stop, deliberately omitting any stop-z parameter so the optimizer couldn't abuse it.
The build was clean and genuinely market-neutral (beta -0.035, no blow-up) over a healthy 276 trades (138 long, 138 short), but it lost catastrophically: -67.4% total return (CAGR -14.9%), Sharpe -1.18 with the entire CI negative (-1.76 to -0.41), profit factor 0.71, per-trade expectancy -$233, PSR 0.0002, a 68.8% max drawdown, a fat left tail (skew -5.7, kurtosis 64.6), and negative returns in 6 of 7 years — losing on both spread directions.
Backtest and paper results are hypothetical. Trading involves risk of loss.