Pre-reg: PRIMARY = keep gate60 long only if affirmatively calm in both legs (prior-day OI-collapse z(30d) >= -1.0 AND taker-exhaustion z(30d) <= +1.0); single-leg distress or a blind leg skips. IS < 2025-01-01, OOS >= 2025-01-01. Real Binance OI + taker ratio, lag-1 by calendar (features[D-1] decide position held D). Non-OK days BLOCKED (position 0), counted separately from toxic skips. No defaults, no fills.
Window: 2022-12-02 .. 2026-08-31 (1369 days). Status mix: OK 791, WARMING 578, NO_DATA 0, STALE 0
PRIMARY diag (full window): kept 118/364 longs; toxic skips 44; blocked 578 days. OI-leg diag: kept 143/364 longs; toxic skips 19; blocked 578 days. Exhaust-leg diag: kept 137/364 longs; toxic skips 25; blocked 578 days. Sensitivity (-0.5/+0.5) diag: kept 87/364 longs; toxic skips 75; blocked 578 days.
| Segment | Variant | LongDays | Ret | Sharpe | Net10 Sharpe | Turnover |
|---|---|---|---|---|---|---|
| IS | baseline (gate60) | 256 | +86.70% | +1.03 | +1.00 | 19 flips |
| IS | skip if oi_z<-1.0 AND ex_z>+1.0 (PRIMARY) | 38 | +15.72% | +0.52 | +0.46 | 21 flips |
| IS | skip if oi_z<-1.0 (OI leg) | 49 | +4.93% | +0.22 | +0.18 | 13 flips |
| IS | skip if ex_z>+1.0 (exhaust leg) | 43 | +23.49% | +0.68 | +0.65 | 11 flips |
| IS | skip if oi_z<-0.5 AND ex_z>+0.5 | 29 | +12.24% | +0.50 | +0.41 | 23 flips |
| OOS | baseline (gate60) | 108 | +65.18% | +1.11 | +1.08 | 15 flips |
| OOS | skip if oi_z<-1.0 AND ex_z>+1.0 (PRIMARY) | 80 | +40.74% | +0.86 | +0.77 | 43 flips |
| OOS | skip if oi_z<-1.0 (OI leg) | 94 | +40.65% | +0.82 | +0.76 | 35 flips |
| OOS | skip if ex_z>+1.0 (exhaust leg) | 94 | +65.29% | +1.16 | +1.11 | 25 flips |
| OOS | skip if oi_z<-0.5 AND ex_z>+0.5 | 58 | +50.02% | +1.20 | +1.06 | 54 flips |
| FULL | baseline (gate60) | 364 | +208.40% | +1.06 | +1.03 | 33 flips |
| FULL | skip if oi_z<-1.0 AND ex_z>+1.0 (PRIMARY) | 118 | +62.86% | +0.69 | +0.62 | 65 flips |
| FULL | skip if oi_z<-1.0 (OI leg) | 143 | +47.58% | +0.55 | +0.50 | 47 flips |
| FULL | skip if ex_z>+1.0 (exhaust leg) | 137 | +104.12% | +0.93 | +0.88 | 37 flips |
| FULL | skip if oi_z<-0.5 AND ex_z>+0.5 | 87 | +68.38% | +0.87 | +0.76 | 78 flips |
OOS verdict (PRIMARY, gross)
- lift -0.25, bootstrap p 0.840
- beta vs BH: -0.04 | corr: -0.20 | resid Sharpe -0.75 (ret -17.12%, maxDD -25.00%)
- OOS blocked-day fraction 0.0%
Verdict: REJECT (lift -0.25 < +0.10; p 0.840 NOT < 0.05; resid Sharpe -0.75 <= 0; blocked 0.0% < 50%)
Forward returns of OK gate60-long days by oi_z quartile
| Quartile (oi_z) | Mean daily ret | Days |
|---|---|---|
| Q1(low) | +0.480% | 41 |
| Q2 | +0.359% | 40 |
| Q3 | -0.317% | 40 |
| Q4(high) | +1.264% | 41 |
Reading
- PASS needs lift ≥ +0.10 with p < 0.05 on OOS, positive residual (else the filter just cuts beta), and <50% blocked days (else it wins by sitting out the sample). IS is shown for consistency only.
- Net@10/25bps per flip are alongside gross: a skip-filter trades LESS, so net should flatter it — if net still fails, the signal is dead.
- Metrics start 2024-06-01: IS is ~7 months and exploratory. OOS decides.
- Next on PASS: walk-forward cuts + shadow overlay; on REJECT: log and move to F4 (credit/VIX gate on crypto; F3 OKX still warming).
Time: 3s. Features: log OI end/end change, |log(mean taker ratio)|, z(30d). Status warmup 31d.