# Pre-registration — pn-001: Opening-range breakout by VXN tercile, NQ & ES 2010→ Frozen 2026-08-22 before any outcome was computed. Runner: `study_orb_vxn.py` (this dir). ## Data - `/fp-data/glbx/{NQ,ES}/1m/2010..2026.csv` (`.c.0` continuous), RTH 09:30–15:59 ET. - Quad-witching Fridays excluded (house-documented `.c.0` gap: zero RTH bars / stale mapping on those dates). - Vol: FRED `VXNCLS.csv`, prior trading day's close (no lookahead). ## Design (frozen) - OR windows: **15m** (09:30–09:44) and **30m** (09:30–09:59), reported separately. - Entry: first 9:30-anchored 5m close beyond the OR high (long) / OR low (short), searched from OR end to 12:00 ET. Entry = the confirming close. One trade per day per window. - Exits, reported separately: (a) close 60 minutes after entry; (b) 15:55 close. - Units: points, and R where R = OR width. - VXN terciles: cut points from the 2010–2015 subsample only, applied unchanged to 2016–2026 (no lookahead; expanding-window alternatives deliberately not explored). - Friction: secondary net line at NQ 0.5pt / ES 0.25pt per side. ## Hypotheses - House prior (null-ish): overall ORB continuation expectancy ≈ 0 after friction ("first-half-hour information ≠ a free ORB system"). - H1 (from the noise): expectancy is increasing in VXN tercile (high-vol days trend). ## Reporting Per (symbol × OR window × tercile × exit): n, mean pts, mean R, win rate, t-stat vs 0; top/bottom tercile Welch t for H1. No tuning, no extra filters, no re-slicing after seeing results.