| Variant | Segment | n | Sharpe | Ret (cum) | MaxDD | p vs base |
|---|---|---|---|---|---|---|
| gate60_ETH ungated (baseline) | IS | 537 | 0.27 | +8.07% | -22.84% | nan |
| gate60_ETH ungated (baseline) | OOS | 1629 | 0.63 | +224.80% | -59.47% | nan |
| gate60_ETH x credit-calm | IS | 537 | 0.27 | +8.07% | -22.84% | nan |
| gate60_ETH x credit-calm | OOS | 1629 | 0.46 | +92.56% | -56.56% | 0.482 |
| gate60_ETH x VIX-calm | IS | 537 | 0.29 | +7.30% | -22.81% | nan |
| gate60_ETH x VIX-calm | OOS | 1629 | 0.50 | +107.00% | -56.54% | 0.476 |
| gate60_ETH x double-calm | IS | 537 | 0.29 | +7.30% | -22.81% | nan |
| gate60_ETH x double-calm | OOS | 1629 | 0.44 | +74.82% | -50.10% | 0.486 |
| gate60_BTC ungated (baseline) | IS | 537 | 0.83 | +48.64% | -25.14% | nan |
| gate60_BTC ungated (baseline) | OOS | 1629 | 0.47 | +96.89% | -63.86% | nan |
| gate60_BTC x credit-calm | IS | 537 | 0.83 | +48.64% | -25.14% | nan |
| gate60_BTC x credit-calm | OOS | 1629 | 0.58 | +130.29% | -50.47% | 0.471 |
| gate60_BTC x VIX-calm | IS | 537 | 1.03 | +46.77% | -13.16% | nan |
| gate60_BTC x VIX-calm | OOS | 1629 | 0.28 | +29.41% | -67.06% | 0.486 |
| gate60_BTC x double-calm | IS | 537 | 1.03 | +46.77% | -13.16% | nan |
| gate60_BTC x double-calm | OOS | 1629 | 0.49 | +86.92% | -54.22% | 0.482 |
| SPY 1d reversal unconditional (baseline) | IS | 3021 | -0.47 | -72.97% | -76.81% | nan |
| SPY 1d reversal unconditional (baseline) | OOS | 2678 | -0.88 | -83.82% | -85.77% | nan |
| SPY 1d reversal on VIX-spike only | IS | 3021 | 0.69 | +214.84% | -22.14% | nan |
| SPY 1d reversal on VIX-spike only | OOS | 2678 | 0.88 | +247.21% | -35.40% | 0.484 |
Verdicts (OOS: uplift>0, p<0.05, maxDD not worse)
- gate60_ETH x credit-calm: REJECT (uplift -0.17, p=0.482, maxDD -56.56% vs base -59.47%)
- gate60_ETH x VIX-calm: REJECT (uplift -0.13, p=0.476, maxDD -56.54% vs base -59.47%)
- gate60_ETH x double-calm: REJECT (uplift -0.20, p=0.486, maxDD -50.10% vs base -59.47%)
- gate60_BTC x credit-calm: REJECT (uplift +0.11, p=0.471, maxDD -50.47% vs base -63.86%)
- gate60_BTC x VIX-calm: REJECT (uplift -0.19, p=0.486, maxDD -67.06% vs base -63.86%)
- gate60_BTC x double-calm: REJECT (uplift +0.02, p=0.482, maxDD -54.22% vs base -63.86%)
- SPY 1d reversal on VIX-spike only: REJECT (uplift +1.75, p=0.484, maxDD -35.40% vs base -85.77%)
Follow-up: spike-reversal threshold sensitivity (p_self vs >0)
| thr | IS Sharpe | IS p | OOS Sharpe | OOS p | trade frac |
|---|---|---|---|---|---|
| 1.1 | +0.78 | 0.0036 | +0.83 | 0.0040 | 0.29/0.33 |
| 1.2 | +0.69 | 0.0088 | +0.88 | 0.0022 | 0.22/0.25 |
| 1.3 | +0.83 | 0.0026 | +0.79 | 0.0050 | 0.17/0.19 |
| 1.5 | +0.71 | 0.0082 | +0.85 | 0.0024 | 0.11/0.11 |
Amended verdict: SPY 1d reversal on VIX-spike: PASS (p<0.01 at all thresholds, IS/OOS consistent, no threshold overfit). Caveats: costs not yet modeled (daily flip on ~25% of days needs a cost-drag pass); unconditional reversal is -0.88 Sharpe, so ALL the edge is the conditioning.
CORRECTION 2026-09-07: Family B PASS retracted
The round-19/rev_spike construction never multiplied by day-t return (it averaged the lagged signal, not tradable P&L). Correct construction w[t]=-sign(r[t-1])spike, P&L=wr:
| cost | IS Sharpe (p) | OOS Sharpe (p) | OOS ret | OOS maxDD |
|---|---|---|---|---|
| 0bps | +0.59 (0.026) | +0.53 (0.041) | +99.5% | -26.2% |
| 1bps | +0.55 (0.036) | +0.48 (0.056) | +85.1% | -27.4% |
| 2bps | +0.51 (0.047) | +0.43 (0.078) | +71.6% | -28.6% |
| 5bps | +0.38 (0.097) | +0.28 (0.175) | +36.9% | -32.4% |
Amended verdict: MARGINAL. Negative autocorrelation on spike days is real gross (p<0.05) but net-of-costs p~0.06-0.08 at 1-2bps, dead at 5bps. No sleeve. Lesson: cost-drag pass must mirror the exact tradable position series.