Paper: stock-market analogues of a crypto limit-order-book edge. The crypto leg (Binance 5m L2,
research/orderbook_edge_scan.py) found deep-book imbalance predicts 4h drift (BTC imb5 IC +0.05), top-of-book walls mean-revert (wall Q5 -6.9bps/4h), and thin books foreshadow volatility (84.7 vs 48.2bps). Equities have no L2 history here, so this study tests the same two mechanisms through daily-bar proxies: wall = upper-wick share z (ask-wall fade) and thin = log dollar-volume percentile (half-size when <0.20). Base is the frozen eqmom top-decile 126d momentum, 21d rebalance, next-day fills.
Base: top-decile 126d momentum, 21d rebalance | wall: skip top-quintile upper-wick z | thin: half-size dvol pct<0.20 | skip 22.2%, thin 18.8%
Verdict
Both overlays help gross and net (10/20bps), survive a 2023 split OOS, and the
combined edge is significant (p=0.017). Wall-fade carries the result; thin-sizing
is neutral alone. Cost: turnover 0.27->0.34/rebal, maxDD -44.2%->-46.8% — a
return booster, not a risk reducer. Stays observe-only (EQMOM_BOOK_OVERLAY=0)
until live paper confirms; enable with EQMOM_BOOK_OVERLAY=1.
| Variant | Ret | Sharpe | PF | MaxDD | Turnover/rebal |
|---|---|---|---|---|---|
| base | +7192.3% | 1.24 | 1.20 | -44.2% | 0.27 |
| wall | +11629.9% | 1.34 | 1.21 | -45.9% | 0.34 |
| thin | +7778.2% | 1.25 | 1.20 | -44.6% | 0.27 |
| both | +12265.5% | 1.35 | 1.22 | -46.8% | 0.34 |
Net of 10bps turnover cost: | base net | +6755.6% | 1.22 | 1.19 | -44.3% | | wall net | +10752.7% | 1.32 | 1.21 | -46.1% | | thin net | +7306.4% | 1.24 | 1.20 | -44.8% | | both net | +11340.9% | 1.33 | 1.21 | -47.0% |
Net of 20bps turnover cost: | base net | +6345.1% | 1.21 | 1.19 | -44.4% | | wall net | +9941.1% | 1.30 | 1.21 | -46.2% | | thin net | +6862.9% | 1.22 | 1.19 | -44.9% | | both net | +10485.3% | 1.31 | 1.21 | -47.1% |
Bootstrap p(both beats base): 0.0168 Bootstrap p(wall beats base): 0.0190
IS (split 2023-01-01, rule frozen)
| IS base | +3215.6% | 1.24 | 1.20 | | IS wall | +4589.9% | 1.32 | 1.21 | | IS thin | +3288.0% | 1.24 | 1.20 | | IS both | +4655.5% | 1.32 | 1.21 |
OOS (split 2023-01-01, rule frozen)
| OOS base | +119.9% | 1.24 | 1.19 | | OOS wall | +150.1% | 1.45 | 1.23 | | OOS thin | +132.5% | 1.32 | 1.21 | | OOS both | +160.0% | 1.51 | 1.24 |
Sensitivity (gross)
| qcut=0.7 both | +14928.8% | 1.37 | | qcut=0.8 both | +12265.5% | 1.35 | | qcut=0.9 both | +9687.8% | 1.30 |
Per-year (base vs both, gross)
| 2007 | +45.8% | +49.6% | | 2008 | -23.6% | -18.1% | | 2009 | +26.8% | +35.2% | | 2010 | +28.2% | +39.9% | | 2011 | +7.9% | +9.5% | | 2012 | +11.9% | +4.2% | | 2013 | +83.6% | +114.8% | | 2014 | +17.3% | +13.5% | | 2015 | +30.7% | +24.6% | | 2016 | +52.8% | +41.5% | | 2017 | +28.7% | +34.2% | | 2018 | +15.6% | +20.7% | | 2019 | +23.3% | +26.9% | | 2020 | +68.1% | +76.4% | | 2021 | +23.6% | +24.3% | | 2022 | -7.6% | -7.1% | | 2023 | +31.0% | +38.6% | | 2024 | +30.9% | +37.3% | | 2025 | +2.2% | +0.9% | | 2026 | +25.5% | +35.4% |
Done in 25s. Enable: EQMOM_BOOK_OVERLAY=1 (default 0 observe-only).
Risks / next
- Proxies, not L2: wick/volume stand in for walls/depth; validate against real equity quotes (Alpaca/Tiingo L2) before sizing up.
- MaxDD worsens; pair with the credit-spread gate (Round 7: -54.6%->-21.4%).
- 2025 both underperformed base (+0.9% vs +2.2%) — monitor live divergence via
python start_bots.py --status+ decision logs. - Repro:
python validation/equity_book_overlay_study.py(frozen rule, IS<2023).