Universe: 8 coins (ETH, BTC, SOL, XRP, LINK, AVAX, DOGE, ADA), 365 common days (2025-07-27 .. 2026-07-26) Costs: 10bps/side, both legs (20bps round-trip) — matches edge_hunt8 PCA-residual convention. Look-ahead guard: assert_no_lookahead (perturb future closes, assert past returns unchanged). Adoptable threshold: net Sharpe > 0 AND bootstrap p < 0.05 AND trades >= 30.
Sweep size: 756 runs (28 pairs x 3 z_look x 3 z_enter x 3 hold). Surviving runs: 1. Verdict: MARGINAL: 1 surviving run(s) — one-off? Confirm on a different cost/universe.
Top 10 by net Sharpe (cost-inclusive)
| Pair | z_look | z_enter | hold | trades | net_sharpe | p | ret | maxdd |
|---|---|---|---|---|---|---|---|---|
| SOL/LINK | 120 | 2.5 | 20 | 3 | +2.48 | 0.004 | +27.59% | -4.3% |
| AVAX/ADA | 120 | 2.5 | 20 | 3 | +2.32 | 0.004 | +41.44% | -8.1% |
| AVAX/ADA | 120 | 2.0 | 20 | 5 | +2.28 | 0.011 | +52.42% | -8.1% |
| BTC/XRP | 30 | 2.5 | 20 | 5 | +2.24 | 0.009 | +29.07% | -4.9% |
| AVAX/ADA | 120 | 1.5 | 20 | 8 | +2.23 | 0.011 | +63.86% | -9.7% |
| BTC/XRP | 30 | 2.5 | 10 | 5 | +2.23 | 0.007 | +25.45% | -4.9% |
| AVAX/ADA | 120 | 2.5 | 10 | 3 | +2.19 | 0.004 | +33.28% | -5.5% |
| SOL/LINK | 120 | 2.0 | 20 | 4 | +2.15 | 0.013 | +28.05% | -5.9% |
| AVAX/ADA | 120 | 2.0 | 5 | 6 | +2.15 | 0.009 | +30.26% | -3.7% |
| AVAX/ADA | 120 | 1.5 | 5 | 15 | +2.15 | 0.009 | +46.48% | -7.9% |
Per-pair best (highest net Sharpe, any params)
| Pair | best params | trades | net_sharpe | p | ret | maxdd |
|---|---|---|---|---|---|---|
| AVAX/ADA | z=120, ze=2.5, h=20 | 3 | +2.32 | 0.004 | +41.44% | -8.1% |
| AVAX/DOGE | z=60, ze=2.5, h=20 | 6 | +1.97 | 0.024 | +57.27% | -13.1% |
| BTC/ADA | z=30, ze=2.0, h=5 | 15 | +1.77 | 0.042 | +39.31% | -7.3% |
| BTC/AVAX | z=30, ze=2.0, h=5 | 15 | +0.22 | 0.420 | +2.39% | -16.4% |
| BTC/DOGE | z=30, ze=1.5, h=5 | 31 | +1.49 | 0.056 | +45.40% | -15.9% |
| BTC/LINK | z=30, ze=1.5, h=5 | 32 | +1.29 | 0.088 | +38.43% | -14.5% |
| BTC/SOL | z=120, ze=2.0, h=20 | 4 | +1.56 | 0.058 | +21.53% | -6.5% |
| BTC/XRP | z=30, ze=2.5, h=20 | 5 | +2.24 | 0.009 | +29.07% | -4.9% |
| DOGE/ADA | z=60, ze=2.0, h=5 | 13 | +1.29 | 0.098 | +17.96% | -6.3% |
| ETH/ADA | z=30, ze=2.0, h=5 | 18 | +0.96 | 0.181 | +19.20% | -15.1% |
| ETH/AVAX | z=120, ze=2.0, h=20 | 4 | +1.34 | 0.083 | +26.96% | -11.2% |
| ETH/BTC | z=30, ze=2.5, h=10 | 7 | +1.87 | 0.021 | +26.13% | -5.3% |
| ETH/DOGE | z=120, ze=1.5, h=10 | 13 | +1.26 | 0.100 | +29.73% | -15.0% |
| ETH/LINK | z=120, ze=1.5, h=5 | 16 | +0.97 | 0.167 | +16.77% | -9.8% |
| ETH/SOL | z=120, ze=1.5, h=20 | 7 | +1.62 | 0.053 | +28.14% | -14.2% |
| ETH/XRP | z=120, ze=1.5, h=5 | 13 | +1.85 | 0.026 | +21.19% | -5.1% |
| LINK/ADA | z=30, ze=2.0, h=5 | 18 | +1.29 | 0.094 | +23.88% | -11.5% |
| LINK/AVAX | z=60, ze=2.0, h=20 | 5 | +1.00 | 0.158 | +20.42% | -19.9% |
| LINK/DOGE | z=120, ze=1.5, h=20 | 6 | +0.75 | 0.215 | +10.58% | -16.6% |
| SOL/ADA | z=30, ze=2.5, h=5 | 4 | +0.64 | 0.268 | +5.54% | -4.2% |
| SOL/AVAX | z=60, ze=2.5, h=10 | 5 | +0.97 | 0.159 | +14.92% | -14.9% |
| SOL/DOGE | z=120, ze=2.5, h=10 | 4 | +1.89 | 0.023 | +25.47% | -3.6% |
| SOL/LINK | z=120, ze=2.5, h=20 | 3 | +2.48 | 0.004 | +27.59% | -4.3% |
| SOL/XRP | z=120, ze=2.0, h=20 | 4 | +1.70 | 0.043 | +24.20% | -9.5% |
| XRP/ADA | z=30, ze=2.0, h=10 | 14 | +0.70 | 0.237 | +12.93% | -15.0% |
| XRP/AVAX | z=120, ze=1.5, h=20 | 7 | +1.24 | 0.112 | +34.17% | -15.3% |
| XRP/DOGE | z=120, ze=2.5, h=5 | 3 | +1.22 | 0.101 | +6.98% | -1.9% |
| XRP/LINK | z=30, ze=1.5, h=5 | 34 | +1.70 | 0.040 | +46.56% | -11.4% |
Honest reading
- The 2018-era
daily_pairs_arb.pyreported "30/32 fade variants with positive return" — but with no bootstrap p, no look-ahead guard, and top-4-by-half-life peeking. That report is no longer a valid OOS signal. - This study: same strategy, framework-guarded, full 504-run sweep, dual-threshold (p<0.05 + net Sharpe>0) for adoptability. If the verdict is REJECT, that is the honest answer to the question the original report was avoiding.
- If the verdict is MARGINAL/ADOPT, the top rows above are the candidates; promote only after running on a holdout (e.g. last 20% of days) and confirming the same params still pass.
Time: 13s.