Skip to content

View translation

SolAvaxAltL1PairsSpreadMR

Hypotheses

SOL-AVAX Smart-Contract L1 Pairs Spread Mean Reversion

Hypotheses

A market-neutral (dollar-neutral) pairs trading strategy on two highly correlated smart-contract Layer-1 altcoin futures: SOLUSDT and AVAXUSDT on Binance USD-M. Both are independent high-throughput L1 chains competing in the same niche (Solana ~65k TPS, Avalanche ~4.5k TPS subnet-aggregated), drive similar narratives (DeFi, NFT, RWA), and exhibit a 90-day rolling correlation typically above 0.80. Their price ratio (SOL-priced-in-AVAX) oscillates within regimes — when one chain has an idiosyncratic catalyst (Solana memecoin season, AVAX subnet launch), the ratio diverges sharply, then mean-reverts as fundamentals/flows normalize. The strategy follows the proven pattern of the successful ADA-DOT and ETH-BTC ratio trades already in the portfolio: compute the log-ratio z-score on a 4-hour timeframe, fade extreme readings (|z|>2.0), exit at z-score reversion to ±0.3. Long the underperforming leg, short the outperforming leg in equal dollar amounts. Captures relative-value alpha that is uncorrelated to overall crypto beta — diversifying the portfolio away from BTC-direction exposure.

Hypotheses

Iteration 3 fixes ONLY the reported static gate failure (leverage_set_but_unused) and changes nothing else. Root cause: the AST gate inspects the sizing methods' own bodies for a leverage reference, but the prior version applied leverage only inside a `_leg_notional()` helper, so `position_size()` had no `leverage` token and was flagged as inert. Fix: the leverage multiplier is now read via a direct `self.config.leverage` reference INSIDE both `position_size()` and `_avax_leg_size()`, each computing notional = equity * per_leg_pct * self.config.leverage inline; the `_leg_notional()` helper indirection is removed. The runtime result is identical to the intended iter-2 behaviour (gross ~1.2x equity at per_leg_pct=0.30 and leverage=2.0, dollar-neutral across the two legs), so the config leverage of 2.0 genuinely amplifies both legs. All signal logic (z-score of log(SOL/AVAX), entry/exit/stop thresholds), the SyncedBuffer alignment, the AVAX hedge-leg overrides, and all imports are byte-for-byte unchanged, preserving every earlier passing layer.

Hypotheses

Not worth optimizing: SOL-AVAX is not a co-integrated / mean-reverting pair, so the z-score fade is structurally dead on this instance. The spread TRENDED rather than reverting — 2021 -85.4% (Solana's explosive re-rating massively outperformed AVAX, so the fade repeatedly shorted the winner and longed the loser), then a violent 2022 +59.9% reversal (including the +79.7% FTX/SOL-collapse day, return_kurtosis 107), then 2023 -32.9%. Over a large, statistically meaningful 670-trade sample the strategy lost 90.5% with profit_factor 0.850, negative expectancy (-121/trade), Sharpe -0.328, and a 97.5% (leverage-amplified) drawdown. No z-threshold tuning fixes a spread that isn't stationary — optimization would only re-fit to the 2022 reversal outlier and fail forward, and this is a pair-choice flaw, not a code bug an iteration corrects. IMPORTANT for the Research Lead: the pairs-mean-reversion MECHANISM is sound and proven on genuinely co-integrated siblings (ADA-DOT, ETH-BTC) — the salvageable reframe is to retry that same mechanism on a still-co-integrated pair; SOL-AVAX specifically has de-cointegrated (SOL structurally re-rated vs AVAX over 2021-2026) and is unoptimizable as a mean-reversion target. FAILURE PATTERN: applying ratio mean-reversion to two assets that are correlated but NOT co-integrated (competing L1s where one structurally out-performs) produces a trending spread that the fade loses on — high rolling correlation does not imply a stationary ratio, and a validated pairs-MR mechanism does not transfer to a pair whose spread has secularly re-rated.

Implementation

Market-neutral (dollar-neutral) pairs mean-reversion on the SOL/AVAX log-price ratio, 4H bars, Binance USD-M futures. Computes the z-score of log(SOL/AVAX) over a rolling 60-bar window; fades |z|>2.0 (long the cheap leg, short the rich leg in equal dollar notional), exits on reversion to |z|<0.3, a regime-break stop at |z|>=3.5, a 10% emergency ratio move, or a 42-bar time stop. Leverage 2.0 scales each leg's notional (gross ~1.2x equity, net beta ~0).

Verification Results

Verification failed (leverage_set_but_unused): config sets leverage=2.0 but the strategy never references leverage in sizing. Size positions on it — notional = equity * fraction * leverage / price (read self.config.leverage) — or set leverage=1.0. As written the leverage is inert and the backtest is identical to 1x.

Backtest Review

Mechanically functional dollar-neutral pairs implementation: 670 balanced long/short trades, timestamp-aligned legs, low beta (-0.025) — the market-neutral construction works as designed

Backtest Review

The pairs-MR mechanism class is proven on co-integrated siblings (ADA-DOT, ETH-BTC) — so the failure is pair-specific, not mechanism-wide

Backtest Review

Catastrophic loss: total_return -90.5%, profit_factor 0.850 (<1), expectancy -121/trade, Sharpe -0.328, max_drawdown 97.5%

Backtest Review

SOL-AVAX is NOT co-integrated: 2021 -85.4% (SOL structurally outperformed AVAX, spread trended away from the fade), 2022 +59.9% violent reversal, 2023 -32.9% — the ratio re-rated rather than mean-reverting

Backtest Review

return_kurtosis 107 with a +79.7% single-day outlier (2022-11-17 FTX/SOL collapse) — result is outlier-driven around a losing core, not a stable edge

Backtest Review

Large 670-trade sample confirms the negative edge is real, not noise; leverage=2.0 amplified the drawdown to near-total wipeout

Analysis

Do NOT send to optimization — tuning z_entry/z_exit/z_stop/lookback cannot fix this; the missing piece is a regime gate the sweep cannot add. The strategy loses -88.6% (PF 0.844, 97.5% DD) because the SOL/AVAX log-ratio is NOT stationary over the full history: SOL structurally outgrew AVAX, so the spread TRENDS rather than oscillates, and the blind |z|>2 fade gets run over during sustained idiosyncratic regimes (2021 -85.7% during SOL's parabola, 2023 -40.7%). Crucially, the recent more-cointegrated regime is strongly positive (2024 +4%, 2025 +15%, 2026 +32%, rolling Sharpe 3-7), so there IS edge when the spread mean-reverts — the fix is to only trade then. Specific changes: 1. ADD a spread-stationarity / trend gate before entering: e.g. a rolling ADF/Hurst test on the log-ratio, OR require the spread's own moving average to be flat (reject entries when |slope of the rolling-mean log-ratio| exceeds a threshold), so the fade only fires when the spread is genuinely range-bound. This is the core fix that would have kept the strategy OUT of the 2021/2023 trending-ratio blowups. 2. Optionally use a rolling/centered z-window that adapts to regime so a structurally drifting ratio doesn't sit at extreme z for months. 3. Re-backtest the full period after the gate. ACCEPTANCE: the gate must turn the FULL-sample result positive (not just preserve the recent regime) with PF > 1.1 and a drawdown that no longer approaches ruin — otherwise this pair does not cointegrate and it is an abandon. Do NOT curve-fit the gate to only exclude 2021/2023 by hindsight; use a causal, rolling statistic. If the gated re-run still loses across the full sample, abandon — and flag to the Research Lead that the proven pairs-MR mechanism should be redirected to a genuinely cointegrated altcoin pair rather than SOL-AVAX.

Outcome Summary

This strategy applied the portfolio's proven pairs mean-reversion mechanism to SOL versus AVAX, two correlated smart-contract L1s, expecting their price ratio to oscillate and revert. Mechanically the dollar-neutral implementation worked — 670 balanced long/short trades, near-zero beta — but the economics were catastrophic: it lost 90.5% with a negative Sharpe, sub-1 profit factor, negative per-trade expectancy, and a 97.5% drawdown amplified by 2.0x leverage. The backtest reviewer abandoned it at the pre-optimization gate, concluding SOL had structurally re-rated against AVAX so the spread trended away from every fade rather than mean-reverting, making it a pair-choice flaw rather than a tunable or code problem. The mechanism itself remains validated on genuinely co-integrated siblings like ADA-DOT and ETH-BTC, so the noted reframe is to retry it on a still-co-integrated pair.

Outcome Summary

High rolling correlation does not imply a stationary, co-integrated ratio: applying ratio mean-reversion to two competing L1s where one secularly re-rates produces a trending spread the fade loses on, and no z-threshold tuning can fix a non-stationary pair — the salvageable move is to reuse the validated mechanism on a genuinely co-integrated pair.

Outcome Summary

It was abandoned at the pre-optimization BACKTEST_REVIEW gate (iteration 3): the reviewer judged SOL-AVAX not co-integrated — the spread trended rather than reverting (2021 -85.4% as SOL structurally re-rated, 2022 +59.9% violent reversal, 2023 -32.9%) — so the z-score fade was structurally dead and optimization and later stages were never reached.

Outcome Summary

A dollar-neutral pairs mean-reversion strategy on the SOL/AVAX log-price ratio (4-hour z-score), fading extreme readings (|z|>2.0) by longing the underperforming leg and shorting the outperforming leg and exiting on reversion to ±0.3, following the portfolio's proven ADA-DOT and ETH-BTC ratio trades.

Outcome Summary

It was a decisive loser over a large 670-trade sample: total return -90.5%, Sharpe -0.328, profit factor 0.850, expectancy -$121/trade, and a leverage-amplified 97.5% max drawdown, with return kurtosis of 107 driven by a +79.7% single-day FTX/SOL-collapse outlier around an otherwise losing core.
Strategy report

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