Strategies
SOL-AVAX Stationarity-Gated Cointegration Pair Stat-Arb (Market-Neutral Long-Short, Binance USD-M Futures, 4H, ADF/Hurst Gate + De-Cointegration Stop, Pure OHLCV)
Outcome: Abandoned
SolAvaxStationarityGatedCointegrationPairStatArb4H
Outcome Summary
This strategy was the principled retry of a dead reversion idea, moving the SOL/AVAX cointegration pair trade to Binance 4H futures with a Hurst stationarity gate meant to only fade spreads that were actually mean-reverting and to stand aside otherwise. In practice the mechanism ran as designed — 276 balanced, market-neutral trades — but produced no edge net of costs: it lost 13.9% with a 0.18 Sharpe while commissions (183% of gross) and market impact (66%) swamped the tiny gross profit. Worse, it still took a 69.9% drawdown when the 2021 spread blew out, the precise tail the gate and de-cointegration stop were supposed to eliminate. The analyst abandoned it at the pre-optimization gate on iteration 2, judging that three tunables could neither create cointegration where the pair trends nor overcome costs that already exceeded gross PnL — a recurrence of the reversion-is-dead pattern on a non-stationary pair.
Hypothesis
Iteration 2 fix for the Layer-2 synthetic failure: `_hurst()` was a `@staticmethod` called as `self._hurst(spread)`. The Layer-2 `_StrategyProxy` re-binds strategy methods and strips the staticmethod decorator, so `self` was injected as a second positional arg into a single-arg function ('takes 1 positional argument but 2 were given'). Converting `_hurst` to a normal instance method `def _hurst(self, series)` resolves this — it now works whether called bound or unbound. No other logic touched: the OLS hedge ratio, log-spread z-score, Hurst stationarity gate, dollar-neutral entry, and de-cointegration/z-stop/time-stop exits (all of which passed Layer 1) are unchanged.
Implementation
Market-neutral SOL/AVAX cointegration pair stat-arb on Binance USD-M 4H bars. Fits a rolling OLS hedge ratio on log prices, computes the log-spread z-score, and fades it ONLY when a rolling Hurst-exponent stationarity gate (Hurst < threshold => mean-reverting) confirms the spread is currently cointegrated. Enters dollar-neutral (short rich / long cheap leg), exits on reversion, de-cointegration (gate fails), z-blowout, or time stop. Pure OHLCV, no leverage.
Verification Results
Backtest Review
- Sharpe
- 0.18
- Total return
- -13.95%
- Max drawdown
- 69.89%
- Trades
- 276
- Win rate
- 51.1%
- Profit factor
- 1.01
Mechanism functions as designed: 276 trades, balanced 138 long / 138 short, genuinely market-neutral (portfolio beta 0.07, benchmark_correlation 0.20)
Pure OHLCV, differentiated pairs stat-arb, adequate trade sample for optimization
benchmark_meaningful=false correctly flags this as market-neutral; judged on absolute metrics
No edge net of costs: commission_pct_of_gross=1.83 (commission alone is 183% of gross PnL) and impact_cost_pct=65.97% — trading costs EXCEED gross profit; turnover 69.3 makes this structural
profit_factor 1.006 with avg_loss (5204) > avg_win (5013) at 51% win rate — expectancy is negative net; total_return -13.9%, Sharpe 0.18, IR -0.70, negative alpha
70% max drawdown on a supposedly market-neutral strategy — the Hurst gate + de-cointegration stop failed to contain the 2021 spread blowout (annual -33.6%), the exact tail the hypothesis claimed to fix
capacity_usd ~$230K — deployable only at toy scale even if a Sharpe were found
3 tunables cannot create cointegration that isn't there nor overcome costs that already exceed gross PnL
Outcome Summary
A stationarity gate cannot manufacture cointegration in a pair that de-cointegrates, and high-turnover mean-reversion churn (here driven by exit_z=0) can make trading costs structurally exceed gross PnL — so cost and drawdown viability must be established before betting on the gate.
It was abandoned at the pre-optimization BACKTEST_REVIEW gate: trading costs already exceeded gross profit and the Hurst gate plus de-cointegration stop failed to contain the 2021 SOL/AVAX spread blowout — the exact trending-spread tail the design claimed to fix — so no parameter sweep was judged capable of rescuing it and optimization was never reached.
A market-neutral SOL/AVAX cointegration pair stat-arb on Binance USD-M 4H futures that fades the log-spread only when a rolling Hurst-based stationarity gate confirms the spread is currently mean-reverting, with a dynamic OLS hedge ratio, a de-cointegration stop, and just three tunables (lookback, entry_z, stationarity_threshold), using pure OHLCV.
Over ~926 days the base backtest lost money: total return -13.9%, Sharpe 0.18 (CI low -0.81), information ratio -0.70, profit factor 1.006 across 276 balanced trades (138 long / 138 short) at a 51% win rate, with avg loss ($5,204) exceeding avg win ($5,013). It was genuinely market-neutral (beta 0.07, benchmark correlation 0.20) but suffered a 69.9% max drawdown, and commissions alone were 183% of gross PnL with market impact another 66%, on turnover of 69.3 and ~$230K capacity.
Backtest and paper results are hypothetical. Trading involves risk of loss.