Pre-reg: PRIMARY = skip gate60 long if prior-day mean-|OBI| z(30d) > +0.5. IS < 2025-01-01, OOS >= 2025-01-01. Tape-only feature, lag-1 by calendar (z[D-1] decides 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 121/364 longs; toxic skips 41; blocked 578 days. Sensitivity (>+0.0) diag: kept 92; toxic skips 70. Secondary signed diag: kept 116; toxic skips 46.
| Segment | Variant | LongDays | Ret | Sharpe | Net10 Sharpe | Turnover |
|---|---|---|---|---|---|---|
| IS | baseline (gate60) | 256 | +86.70% | +1.03 | +1.00 | 19 flips |
| IS | skip if abs_obi_z>+0.5 (PRIMARY) | 38 | +23.94% | +0.74 | +0.67 | 21 flips |
| IS | skip if abs_obi_z>+0.0 | 29 | +20.50% | +0.67 | +0.61 | 19 flips |
| IS | skip if sgn_obi_z>+0.5 (secondary) | 36 | +25.77% | +0.74 | +0.70 | 15 flips |
| OOS | baseline (gate60) | 108 | +65.18% | +1.11 | +1.08 | 15 flips |
| OOS | skip if abs_obi_z>+0.5 (PRIMARY) | 83 | +45.66% | +0.90 | +0.84 | 29 flips |
| OOS | skip if abs_obi_z>+0.0 | 63 | +37.94% | +0.85 | +0.77 | 36 flips |
| OOS | skip if sgn_obi_z>+0.5 (secondary) | 80 | +52.98% | +1.03 | +0.94 | 43 flips |
| FULL | baseline (gate60) | 364 | +208.40% | +1.06 | +1.03 | 33 flips |
| FULL | skip if abs_obi_z>+0.5 (PRIMARY) | 121 | +80.53% | +0.79 | +0.74 | 51 flips |
| FULL | skip if abs_obi_z>+0.0 | 92 | +66.23% | +0.75 | +0.68 | 56 flips |
| FULL | skip if sgn_obi_z>+0.5 (secondary) | 116 | +92.41% | +0.88 | +0.81 | 59 flips |
OOS verdict (PRIMARY, gross)
- lift -0.21, bootstrap p 0.859
- beta vs BH: -0.02 | corr: -0.14 | resid Sharpe -0.83 (ret -12.97%, maxDD -16.77%)
- OOS blocked-day fraction 0.0%
Verdict: REJECT (lift -0.21 < +0.10; p 0.859 NOT < 0.05; resid Sharpe -0.83 <= 0 (beta cut?); blocked 0.0% < 50%)
Forward returns of OK gate60-long days by abs_obi_z quartile
| Quartile (abs_obi_z) | Mean daily ret | Days |
|---|---|---|
| Q1(low) | +1.046% | 41 |
| Q2 | +0.923% | 40 |
| Q3 | -0.269% | 40 |
| Q4(high) | +0.100% | 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.
- Tape starts 2024-06-01: IS is ~7 months and exploratory. OOS decides.
- Next on PASS: walk-forward cuts (like depth_filter_walkforward) + shadow overlay; on REJECT: log and move to F2 (OI-collapse filter).
Time: 3s. Feature: mean |OBI| per 5m bucket, daily mean, z(30d). Status warmup 31d.