# Options-flow direction factors — results · 2026-09-09 13:35 Pre-registration: `2026-09-09-flow-prereg.md`. Sessions 712 (2023-10-10 → 2026-09-04), quad-witching excluded. Base rates: up30 52.4%, up_close 53.2%, up 10:10→close 55.6%. ## Descriptive — by factor tercile (z-scored by rolling 60-session median |x|) - **F1** → up_1010_close: neg 55.5% (+0.010%) · mid 53.7% (-0.013%) · pos 56.6% (+0.028%); WF AUC 0.498; n=682 - **F2** → up_1010_close: neg 50.7% (-0.045%) · mid 56.8% (+0.024%) · pos 58.1% (+0.045%); WF AUC 0.548; n=681 - **F3** → up30: neg 51.1% (-0.029%) · mid 53.7% (-0.011%) · pos 51.5% (+0.024%); WF AUC 0.493; n=681 - **F3** → up_close: neg 54.6% (+0.020%) · mid 52.0% (+0.040%) · pos 52.0% (-0.036%); WF AUC 0.460; n=681 - **F4** → up30: neg 47.6% (-0.047%) · mid 56.6% (+0.023%) · pos 52.0% (+0.005%); WF AUC 0.470; n=680 - **F4** → up_close: neg 52.0% (+0.048%) · mid 53.5% (-0.041%) · pos 52.9% (+0.011%); WF AUC 0.508; n=680 - **F5** → up30: neg 53.3% (+0.008%) · mid 50.2% (-0.043%) · pos 52.9% (+0.019%); WF AUC 0.485; n=681 - **F5** → up_close: neg 52.9% (+0.023%) · mid 51.5% (-0.067%) · pos 54.2% (+0.069%); WF AUC 0.489; n=681 ## Policies (Part A fill rules) - **FL1_qqq_1010**: triggers 342 (long 142/short 200), W/L/T 35/84/223, R/trigger **+0.010** (p=0.409), halves -0.006 (n=157) / +0.025 (n=185), long -0.000 / short +0.018, $ at 1 NQ -13,257 → **REFUTED**. - **FL2_tide_1010**: triggers 345 (long 201/short 144), W/L/T 30/91/224, R/trigger **+0.025** (p=0.290), halves +0.058 (n=162) / -0.004 (n=183), long +0.039 / short +0.006, $ at 1 NQ -1,202 → **REFUTED**. - **FL3_prior_day**: triggers 345 (long 129/short 216), W/L/T 128/217/0, R/trigger **-0.086** (p=0.903), halves -0.012 (n=160) / -0.149 (n=185), long -0.161 / short -0.041, $ at 1 NQ -7,085 → **REFUTED**. ## Interpretation - **No factor carries direction.** Every walk-forward AUC sits at 0.46–0.55 (chance); no tercile pattern is monotonic; the largest tercile gap (market tide at 10:10, 50.7 % → 58.1 % into the close) is a +0.09 % drift, not a trade, and its AUC is 0.548. - **All three policies refuted**: QQQ 10:10 flow +0.010 R, market tide 10:10 +0.025 R, prior-day QQQ flow −0.086 R. 65 % of the 10:10 trades time out — nothing happens after the signal. The prior-day signal is actively wrong on the long side (−0.161 R). - **Why this is expected**: net premium at the ask/bid classifies aggressor side, but for QQQ the dominant flow is hedging and 0DTE structures whose direction is not a view on the underlying; and by 10:10 whatever information the opening burst held is already in the price. - **Closed** on this sample. The flow archive (`fp-data/flow/`, 730 days of per-minute QQQ net premium + market tide) stays on X10 for any future, differently-mechanised pre-registration (e.g. flow *at the wall* rather than flow alone), but flow-as-direction is done.