← all research

data/finra_short_volume.py · 499 names · 2020-09-01..2026-08-12 · IS<2023-01/OOS>=2023-01 · next-open · 10bps one-way

A–E pre-screen

variantIS net SROOS net SROOS gross SRret netmaxDDturn/yr
PRIMARY -z30 hold5 LS-2.84-2.05+0.44-54.5%-54.8%147.2
reverse +z30 hold5 LS-2.92-2.83-0.44-62.3%-63.2%147.2
long-only low-ratio+0.69+0.98+1.48+113.5%-25.8%73.8
hold1 LS-12.23-9.35+0.75-96.3%-96.4%591.6
hold10 LS-2.22-1.99-0.66-49.2%-49.8%77.9
raw ratio hold5 LS-1.08-0.87+0.75-31.3%-33.0%117.9

EW-panel benchmark OOS Sharpe 1.44 (ret +103.8%).

Verdict — PRIMARY

REJECT / near-miss (control reverse-sign net SR -2.85; if the reverse wins, the primary is wrong-signed.)

checkresultdetail
A alignment (lag-1, next-open)PASSframework-enforced
B incrementality (OOS gross > EW)FAILOOS gross SR 0.44 vs EW 1.44; rank-corr(signal,mom126) +0.00
C economics (OOS net@10 > 0)FAILOOS net SR -2.05, 147 turns/yr
D stability (IS & OOS same sign)FAILIS -2.84, OOS -2.05
E null+power (perm p<0.05)PASSperm p 0.000
stress (OOS net@25 > 0)FAILOOS net@25 SR -4.74

Notes

  • sv_ratio = FINRA short volume / total volume; the flow includes market-maker hedging, so a vol/momentum proxy is live risk (see B).
  • CDN retention: older-than-~2020 rows 403; window is stated, not worked around.