Strategies
SOL-vs-ETH Relative-Momentum Rotation, Dollar-Neutral Long-Short (Two-Instrument SOLUSDT.BINANCE + ETHUSDT.BINANCE Perps, Daily Bars — Long the Stronger / Short the Weaker on SOL/ETH Ratio MOMENTUM, Deadband-Gated, Higher-Dispersion Pair for Fee Viability, Pure OHLCV, 2-Parameter)
Outcome: Abandoned
SolEthRelativeMomentumRotationLS
avg_trade_return_pct 1.86% clears the two-leg fee comfortably — the higher-dispersion pair choice did solve the fee-viability problem that killed ETH/BTC
Hypothesis
Implementation
Verification Results
CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.
Marginal risk-adjusted edge: Sharpe 0.62, CI [-0.18, 1.42] includes zero on 117 rotations. Mechanism now fee-viable and reward/risk-repaired, but ratio relative-strength persistence is weak (identical mechanism was PF 0.737 on ETH/BTC vs 1.25 here — pair-window sensitivity). Not a code fault. Weight OOS/holdout heavily; abandon per the developer's pre-registered criterion if the holdout Sharpe isn't clearly positive. Don't chase a third pair.
Dollar-neutral (equal-dollar) sizing is faithful to the hypothesis as written but is not beta-neutral: SOL's higher beta leaves residual net crypto-beta, so 'hedges out the crypto beta' is only partly true. Code correctly implements the specified dollar-neutral sizing (thesis note, not a sizing bug). Analyst should confirm the edge is relative-strength alpha, not residual alt-beta timing.
Backtest Review
- Sharpe
- 0.62
- Total return
- 177.34%
- Max drawdown
- 24.33%
- Trades
- 234
- Win rate
- 49.6%
- Profit factor
- 1.22
avg_trade_return_pct 1.86% clears the two-leg fee comfortably — the higher-dispersion pair choice did solve the fee-viability problem that killed ETH/BTC
234 trades (~117 rotations) is a measured sample, so the null result is trustworthy rather than noise
Clean 2-parameter dollar-neutral construction with proper data alignment; no code/execution defects
Sharpe 0.62 with bootstrap CI [-0.164, 1.383] straddling zero and PSR 0.927 (<0.95) — not distinguishable from no-edge on the full sample, before deflation
PF only 1.22, win_rate 49.6% — barely-breakeven expectancy; the same mechanism was PF 0.737 on ETH/BTC, so the improvement is pair selection, not edge
Outlier-carried: 2023 alone +69.4% (2023-11-21 +47.7% single day), 2024 -2.4% and 2026 -4.8% negative; kurtosis 5.7
Market-neutral relative-momentum pairs is a near-zero-survivor class (L45/L52); max DD 24.3% with CI to 66% is above the promotion floor
Iteration History
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['deadband', 'leg_frac', 'max_days', 'vol_window', 'mom_lookback', 'min_notionals', 'stop_ratio_pct', 'size_precisions', 'hedge_instrument_id'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj must be an instance or subtype of type (bar timestamp: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj must be an instance or subtype of type (bar timestamp: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj must be an instance or subtype of type (bar timestamp: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj must be an instance or subtype of type (bar timestamp: 1735689600000) - zero_volume: TypeError: super(type, obj): obj must be an instance or subtype of type (bar timestamp: 1735689600000) - price_gap: TypeError: super(type, obj): obj must be an instance or subtype of type (bar timestamp: 1735689600000)
Backtest and paper results are hypothetical. Trading involves risk of loss.