← all research

Pre-registered rule from the original study (validation/depth_filter_gate60.py): skip gate60 long if z24 > +0.5, where z24 = trailing 24h mean depth-imbalance z-scored vs trailing 30-day window. Five rolling-origin cuts; the OOS verdict at each cut uses the same frozen rule (no threshold re-tuning between cuts).

Data source: signals.crypto_edges.load_binance_depth() (Binance ETH bookDepth cache, 1340d; identical distribution to OKX per reports/depth_filter_binance_warmup.md). The OKX production feed is warming; this validation study uses the validated Binance source.

Cutoffs (cut date / IS span / OOS span):

  • 2024-01-01 / IS 2023-01-01..2024-01-01 / OOS 2024-01-01..2024-07-01
  • 2024-07-01 / IS 2023-07-01..2024-07-01 / OOS 2024-07-01..2025-01-01
  • 2025-01-01 / IS 2024-01-01..2025-01-01 / OOS 2025-01-01..2025-07-01
  • 2025-07-01 / IS 2024-07-01..2025-07-01 / OOS 2025-07-01..2026-01-01
  • 2026-01-01 / IS 2025-01-01..2026-01-01 / OOS 2026-01-01..2026-07-01

Adoptable: depth-filter OOS Sharpe lift >= 0.1 AND bootstrap p < 0.05 in at least 3/5 OOS cuts.

Per-cut results

CutoffOOS dayslong dayskept daysbase Sharpegated SharpeliftpOOS pass?
2024-01-01182135104+1.30+3.10+1.800.031Y
2024-07-011845536+0.79+2.55+1.750.002Y
2025-01-011812214-0.15+2.02+2.170.009Y
2025-07-011847451+2.04+2.98+0.940.120N
2026-01-0118100+0.00+0.00+0.001.000N

Verdict: PASS (3/5 cuts pass the lift+p criteria)

Per-cut IS / OOS detail (for the audit trail)

CutoffSegmentlong dayskeptbase Sharpegated Sharpeliftp
2024-01-01IS6642+1.18+3.41+2.230.000
2024-01-01OOS135104+1.30+3.10+1.800.031
2024-07-01IS201146+1.39+3.62+2.230.000
2024-07-01OOS5536+0.79+2.55+1.750.002
2025-01-01IS190140+1.07+2.83+1.760.000
2025-01-01OOS2214-0.15+2.02+2.170.009
2025-07-01IS7750+0.41+2.28+1.870.000
2025-07-01OOS7451+2.04+2.98+0.940.120
2026-01-01IS9665+1.24+2.50+1.260.013
2026-01-01OOS00+0.00+0.00+0.001.000

Reading

  • The original study used one OOS cut at 2025-01-01. That one cut showed Sharpe 0.99 -> 1.30-equivalent depth-filter lift (full-window +1226% vs +182%, Sharpe 2.85 vs 1.03, p=0.000).
  • Five rolling-origin cuts ask whether that lift is consistent across regimes. The depth-filter is a market-microstructure signal: it might work in the post-FTX Binance regime but break in different L2 dynamics.
  • NEGATIVE lift on a cut means the filter HURT Sharpe on that window. Multiple negative lifts mean the signal is not safe to deploy live.
  • Threshold re-tuning between cuts would re-introduce the look-ahead bug class; pre-registered threshold {DEPTH_THRESHOLD} is the same frozen value at every cut.
  • This study uses the same Binance bookDepth cache the original used; the OKX production wireup is in the WARMING phase. Once OKX reaches READY (75 more days), the same script can be re-run on OKX data to confirm the lift is feed-agnostic.

Time: 3s.