# Pre-registration — pn-070/071: GEX regime (fade vs breakout), NQ & ES Frozen 2026-08-22 before any outcome was computed. Runner: `study_gex_regime.py` (this dir). ## Data - Regime: first GEX snapshot of each ET day with et_time ≤ 09:30 (else earliest that day) from `/fp-data/gex/2026/` — QQQ maps to NQ, SPY maps to ES. - Tape: `/fp-data/glbx/{NQ,ES}/1m/2026.csv` (`.c.0` continuous), RTH 09:30–15:59 ET. - Archive begins 2026-07-26 → **n ≈ 20 days per symbol at first run. This is a HARNESS + FIRST READ, not a verdict.** The script is rerunnable; the archive accrues daily; judge at n ≥ 60 classified days. ## Regime classification (house computeGamma, frozen) Per-strike net = call_gex + put_gex within ±6% of spot; tilt = Σnet / Σ(|call|+|put|). - tilt > +0.08 → **+GEX** day · tilt < −0.08 → **−GEX** day · else excluded (dead zone). ## Tests (both symbols, both regimes) - **T1 breakout**: OR = 09:30–09:59 high/low. First 9:30-anchored 5m close beyond OR high (long) or low (short) at/after 10:00, searched to 12:00. Entry = that close. Exit = 15:55 close. Metric: points in trade direction; win = > 0. - **T2 call-wall fade**: wall = nearest-significant call-gex strike above spot (house wall rule), scaled to futures by (futures price ÷ underlying spot) at the snapshot minute. First touch at/after 10:00 → short at the wall; exit 15:55 close. Win = close below wall. ## Hypotheses (directional, from the noise catalog) - H1: T1 expectancy on −GEX days > on +GEX days. - H2: T2 expectancy on +GEX days > 0 and > on −GEX days. ## Reporting n / mean pts / win rate per (symbol × regime × test); Welch t for H1/H2; friction note (NQ 0.5pt, ES 0.25pt per side). No parameter tuning; no additional splits. Deviations from the catalog's sketch: event-day split dropped (no reliable event calendar on disk); wall source is the morning snapshot only.