# Gamma-wall history backfill — pre-registration (frozen 2026-09-09 before the bulk pull) ## Why Parts C and D of `2026-09-09-crown-policies-prereg.md` are forward-only ledgers (22 sessions, 5 triggers; 47 walls, 17 touches) and need ≥100 triggers/touches (~15 months). The Unusual Whales token exposes end-of-day strike-level gamma exposure by date back to **2023-10-10** (730 trading days), plus the regular-session close per date. This study reconstructs the wall map for every session since then and evaluates the frozen Part C and Part D rules on it. ## Data (pulled after this file was written) - `/api/stock/{QQQ,NDX}/greek-exposure/strike?date=D` — end-of-day book for date D, stored to `fp-data/gex/history/{TICKER}_D.json.gz`. - `/api/stock/QQQ/ohlc/1d?date=D` — regular-session (`market_time="r"`) close = spot for D. - NQ 1m bars from the X10 archive (`fp-backtest/data/*_1m_et.parquet`), quad-witching sessions excluded as in Part A. ## Proxy and its validation (pre-declared) The live archive snapshots the book at 09:10 ET on session S. History only gives the **close of S−1**. Open interest updates once per day, so the S−1 close book is the natural proxy for the S 09:10 book. Before any policy result is read, the proxy is validated on the overlap window (sessions since 2026-07-29 with a 09:10 snapshot): report the share of sessions where the proxy call wall and put wall each fall within 0.5 % of the live 09:10 wall, and the regime agreement rate. **If wall agreement < 70 % the backfill is declared unfit and no policy verdict is issued.** ## Wall construction (identical to Part C / the app's computeGamma) Nearest strike with ≥50 % of peak call (put) GEX within ±6 % of spot, 0.3 % ATM buffer; flip = cumulative-net minimum; tilt = net/gross; |tilt| < 0.08 = neutral. Spot = QQQ regular close of S−1. Scaled to NQ by (NQ 09:30 open ÷ spot). Primary book = QQQ (the archive Part C uses). NDX walls are computed and reported as an agreement statistic only. ## Rules evaluated (frozen as written in Parts C and D; no new variants) - **P8 long-γ fade**, **P9 short-γ break**, **P10 cage** — exactly as Part C (Part A fill rules: next 1m open after the 5m signal close, 1 pt slip, stop max(floor, ATR mult), 1.5R, trigger window and cap as Part A). - **Part D first-touch wall fade** — for each wall on the correct side of the 09:30 open: LIMIT fade at the wall on first RTH touch (fill at the wall or the bar's open, whichever is worse), stop = max(12 pt, 0.5 × expected 5-minute range) beyond the wall, target 1R toward the cage, exit stop/target/session close. - *Deviation (declared):* the live grader's "expected 5-minute range" comes from the desk-read range model, which has no history. Proxy: median 5m true range of the prior 5 RTH sessions. This is the only substitution. ## Decision rules (unchanged from the parent pre-registration) - Part C: same as Part A — mean R > 0 with p < 0.05 (Bonferroni over P8, P9 = α 0.025), positive in both halves of the sample (2023-10→2025-03 / 2025-03→2026-09), positive in ≥3 of 4 regime/half cells with n ≥ 20. - Part D: hit rate ≥ 57 % at 1R in both halves; per-regime sign agrees with the long-γ mechanism (long-γ ≥ short-γ hit rate). Also report the 09:30–10:00 vs after-10:00 split (descriptive, not a decision input). - P10 cage held rate: descriptive. - Any rule that fails stays shadow-only. Nothing from this study feeds the live crown; a VALIDATED rule would be shipped as an *opportunity* row with sizing, forward-graded from ship date. ## Amendment 2 (2026-09-09 13:05, after the proxy-validation stop, before any policy read under the new proxy) Validation on 24 overlap sessions showed the S−1 close book and the S 09:10 book are the **same book** (net GEX by strike correlates 1.00 on every session); the walls differed only because `computeGamma` selects the nearest significant strike relative to **spot**, and the live snapshot uses the 09:10 pre-open spot. Evaluating the S−1 book at the live 09:10 spot reproduces the live walls 100 % / 100 %. **Amended proxy:** book = S−1 close; spot = QQQ close of S−1 × (NQ last price at 09:10 ET on S ÷ NQ 16:00 close on S−1). This is a mechanism fix selected by the validation statistic alone. Disclosure: policy figures under the original proxy (walls at the S−1 close spot) had already been printed as descriptive output when this amendment was written; they were not used to choose the amendment. The validation threshold (≥70 % walls within 0.5 %) and all decision rules are unchanged. The amended proxy must itself pass validation before a verdict is issued. ## Walk correction (2026-09-09 13:12, declared after a robustness check on the amended-proxy run, before the final read) The first-touch walker credited a target hit on the touch bar itself whenever that bar's opposite extreme reached the target; 62 % of trades "resolved" on the touch minute with a median hold of 0 minutes. Within a 1-minute bar the extreme may precede the touch, so this is look-ahead. Correction: on the touch bar only the stop can trigger (a move ≥ stop distance beyond the wall must follow the touch); targets are evaluated from the next bar and must trade a tick through. The identical flaw exists in the live grader's `walkPlan` for LIMIT fills and is corrected there in the same commit, so the forward ledger and this backfill share one mechanic. Decision rules unchanged. ## Part D2 (pre-registered 2026-09-09 13:20, after Part D was refuted under the corrected walker; single variant, no sweep) Motivation (declared, not a result): Part D's stop (max(12, 0.5 × expected 5-minute range) ≈ 13 pt median) is below NQ's typical opening-minute range, so most trades stop on the touch bar. D2 changes **only the stop** to the doctrine stop already used by Part A: max(12, 2 × ATR3 of the 5-minute bars at the touch); target 1R; same first-touch limit fill, same correct-side filter, same corrected walker. One variant → α = 0.05. Decision rule as Part D (hit rate ≥ 57 % at 1R in both halves, long-γ ≥ short-γ). If refuted, the wall-fade line is closed: no further variants will be run on this sample.