The 15 studies
These results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under- or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.
The setups sold to prop traders
Pre-registeredVerdict, as the study states it: Tape: 0 of 26 cells VALIDATED. Prop overlays (frozen H-P1): not supported. Prop business test (frozen H-P2): holds. Post-hoc size sensitivity (addendum, not a pre-registered verdict).
- Arms tested
- 28
- Pre-registration written
- Sep 16, 2026, 17:48 ET
- First result
- Sep 16, 2026, 17:50 ET
- Markets
- MNQ and MES (micros), traded off NQ and ES GLBX 1m bars (.v.0 volume roll)
- Sample
- In-sample 2019-01-01 to 2023-12-31; out-of-sample 2024-01-01 to 2026-09-11 (2018 used only to warm 20-day means)
- Costs
- $1.50 per micro round turn plus 1 tick slippage each way on market and stop orders; news stop entries +4 ticks; limits fill only 1 tick through
Notes, defects and the original title
Strongest pre-registration in the bundle: PREREG-2026-09-16.md is byte-identical to the source and its sha256 4e921928ecd174744cb1d2970fce62d1c0305015e9308a8c4d2f3aa3242cfe32 matches the recorded .sha256 file ('frozen 2026-09-16 17:48:13 EDT'); prereg created 17:48:11, engine.mjs 17:50:33, first output 17:50:48. Arms = 26 tape cells (13 setups x 2 roots) + the two prop hypotheses H-P1/H-P2. Not counted as arms: 26 seeded coin-flip control streams, and the post-hoc size addendum (520 cells; 4 positive in both halves at list fees, 3 of them coin-flip controls). The site's strategyClaims.ts numbers (all 26 cells' net/t/n/verdict, overlay table, size rows, 520/4/3) match out/*.json exactly. CATALOG.md/SOURCES.md are the public claims being tested (third-party URLs). Run: node --max-old-space-size=12288 engine.mjs; node sim.mjs; SIZES=1,3,5,10,20 node sim.mjs. Trade-level outputs (out/trades-NQ.json, out/trades-ES.json) are not included.
Backtest of claimed 'profitable prop trader' strategies (13 setups x NQ/ES micros) plus a prop-account simulator
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES 2018-2026); CPI/NFP/FOMC release timestamps from the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included
Level breakouts: why the desk's old picks lost
Not pre-registeredVerdict, as the study states it: The published pick family has no edge — replicated three ways (net of $4 RT + 1 tick each way: -0.217R to -0.091R per trade across five variants).
- Arms tested
- 53
- Pre-registration written
- none
- First result
- Sep 15, 2026, 22:26 ET
- Markets
- CL, NQ, ES, GC, ZN, RTY, YM, 6E (full-size contracts)
- Sample
- Breakout replication: 2026 year-to-date only (3,971 sessions, about 5,500 trades per variant). Late-session momentum: 702 days 2023-2026. Overnight drift: 2020-2026, about 1,660 nights per root
- Costs
- $4 round turn plus 1 tick slippage each way (overnight/late-session scripts: NQ $14, ES $29, CL $24, GC $24 per round turn)
Notes, defects and the original title
Post hoc diagnosis, no pre-registration. Arms is a lower bound: 26 cells reported in the write-up (5 breakout variants, 4 target multiples, 1 breakeven-stop variant, 8 late-session-momentum cells, 8 overnight/day cells) plus about 27 conditioner splits printed by study2.mjs and not tabulated. The breakout replication covers 2026 YTD only; the multi-year evidence the write-up cites is the separate pn-001 study (orb-vxn-and-gex-regime) and an external paper. Three passages quoting the desk's live pick record were redacted under the 2026-09-10 disclosure rule. Scripts write a debug file to <out-dir>.
Why the tape-graded record loses: replication of the published level-breakout family, plus late-session momentum and overnight drift checks
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (2020-2026; the breakout scripts read 2026.csv only); QQQ dealer-gamma history <data-root>/fp-data/gex/history/*.json.gz from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE)
Opening-range breakouts by volatility regime
Pre-registeredVerdict, as the study states it: pn-001 ORB by VXN tercile — REFUTED as a system. pn-070/071 GEX regime — H1 PROMISING, accruing; H2 unreadable.
- Arms tested
- 32
- Pre-registration written
- Aug 22, 2026, 11:53 ET
- First result
- Aug 22, 2026, 11:57 ET
- Markets
- NQ, ES (.c.0 continuous)
- Sample
- pn-001: NQ+ES 1m 2010-2026, quad-witching Fridays excluded, about 10,500 trades; VXN tercile cuts frozen on 2010-2015. pn-070: 2026-07-26 onward, about 20 days per symbol (11-15 classified)
- Costs
- NQ 0.5 pt / ES 0.25 pt per side (secondary net line)
Notes, defects and the original title
Both preregs were created 22-31 s before the scripts and about 4 minutes before RESULTS; no in-text times. Arms: pn-001 24 cells (2 symbols x 2 OR windows x 3 VXN terciles x 2 exits); pn-070 8 cells (2 symbols x 2 regimes x 2 tests). pn-070 H1 (breakouts on negative-GEX days) is a gamma-regime rule that was left 'PROMISING, accruing' at n=3/8 with a rerun due at about 60 classified days (late Oct 2026); it was never closed.
pn-001 opening-range breakout by VXN tercile (NQ, ES 2010-2026) and pn-070/071 GEX-regime fade vs breakout (2026 forward archive)
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES 2010-2026); FRED VXNCLS.csv (public); QQQ/SPY GEX snapshots <data-root>/fp-data/gex/2026/ from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE) (pn-070 only)
Does relative volume rescue the opening-range breakout?
Pre-registeredVerdict, as the study states it: VERDICT: REFUTED (primary cell t = -0.33, mean -1.11 pt; 0 of 7 instruments replicate).
- Arms tested
- 320
- Pre-registration written
- Aug 25, 2026, 21:26 ET
- First result
- Aug 25, 2026, 21:31 ET
- Markets
- NQ primary; ES, RTY, YM, CL, GC, ZN, 6E replication
- Sample
- 2010-06-07 to 2026-08-25; NQ 4,033 sessions, 3,913 trades (577 in the top RVOL quintile); IS/OOS split at 2020
- Costs
- NQ 1.0 pt round trip base (amended from 0.5 before any run); sensitivity 0 / 0.5 / 2.0 pt; per-instrument tick-scaled; stop slippage max(2 ticks, 0.25 x excursion)
Notes, defects and the original title
320 cells were pre-counted by the study (8 instruments x 5 RVOL buckets x 2 entries x 4 frictions); 1 cell was confirmatory. Unconditional ORB (all trades) is also reported: +0.744 pt gross, -0.256 pt net (t -0.21). Timestamp defect: the prereg says 'Frozen 19:30 MDT' and its amendment says '19:45 MDT', but the file was created 21:26:52 EDT (19:26 MDT) and last written 21:27:37 EDT, before rvol_orb.py (21:28:24) and the first raw output (21:31:33). The file order supports pre-registration; the in-document times are wrong. The results honestly record that monotonicity criterion 2 was written too loosely and a mid-study bug fix (NQ results bit-identical).
Does relative-volume selection rescue the opening-range breakout on futures?
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (8 roots, 2010-2026)
Seven mechanical opening policies on NQ
Partly pre-registeredVerdict, as the study states it: Part A: all seven policies refuted. Part B geometry grid: Survivors none; Suggestive none.
- Arms tested
- 196
- Pre-registration written
- Sep 9, 2026, 11:57 ET
- First result
- Sep 9, 2026, 11:58 ET
- Markets
- NQ
- Sample
- NQ 1m GLBX .c.0, 2012-01-03 to 2026-09-04, 3,569 sessions; halves 2012-2018 / 2019-2026
- Costs
- 0.25 pt slippage against the trade on fills; no commission (about $4.5 round turn, noted as about 0.006R)
Notes, defects and the original title
Included because Parts C and D of this prereg define the gamma-wall rules tested in gamma-wall-backfill, and crown_policies.py/open_factors.py are code dependencies of every gamma study. Part A (7 policies) prereg created 11:57:36, before crown_policies.py (11:58:29) and its results (11:58:53). Partial because Parts B-D were appended to the same file later (final write 12:34:38) and the Part B grid results were written at 12:14:16, so the file system cannot show Part B's text predates its results. Arms = 7 (Part A) + 189 (Part B grid: 7 policies x 27 geometries). P6 is a 15-minute opening-range-break control (-0.003 R/trigger, n=3,497). One sentence quoting the live crown-play record was redacted under the disclosure rule. open_factors.py also runs the 2026-09-08 open-factor study, which is not part of this bundle.
Mechanical crown-play policies on NQ (Part A), exit-geometry grid (Part B), and the definitions of the gamma-wall policies (Parts C, D)
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ 2011-2026; open_factors.py builds the data/NQ_1m_et.parquet cache that crown_policies.py requires); FRED VXN
Fading and breaking gamma walls over 730 days
Partly pre-registeredVerdict, as the study states it: P8 long-gamma fade REFUTED; P9 short-gamma break REFUTED; Part D first-touch fade REFUTED; Part D2 (doctrine stop) REFUTED; P10 cage held 68% — descriptive only. The wall-fade line is closed on this sample.
- Arms tested
- 4
- Pre-registration written
- Sep 9, 2026, 12:55 ET
- First result
- Sep 9, 2026, 12:57 ET
- Markets
- NQ, with QQQ (and NDX, agreement only) strike-level gamma exposure
- Sample
- 730 history days 2023-10-10 to 2026-09-08; 693 sessions evaluated (quad-witching excluded); halves 2023-10 to 2025-03 / 2025-03 to 2026-09
- Costs
- Part C: 1 pt slippage; Part D: limit fill at the wall or the bar's open, whichever is worse; costs not needed for the verdict (gross already negative)
Notes, defects and the original title
The original prereg file (created 12:55:44) predates the data pull (12:56:04 to 12:57:38). Partial because three disclosed changes followed partial output: Amendment 2 (proxy spot fix, written after descriptive policy figures had printed), a walk correction that removed a look-ahead (which had produced 62-64% hit rates), and Part D2 (added after Part D was refuted). Timestamp defect: those sections are stamped 13:05, 13:12 and 13:20, but the prereg file's last write is 13:03:53 and the results file (with D2 results) was created at 12:57:48 and last written 13:06:46. Arms = P8, P9, D, D2 (P10 is descriptive). One sentence giving the live shadow-ledger tally was redacted under the disclosure rule.
Gamma-wall history backfill: wall-fade and wall-break policies on 730 days of reconstructed dealer positioning
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); QQQ/NDX end-of-day strike gamma exposure and QQQ daily OHLC per date from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE) (pulled with backfill_history.mjs and backfill_ndx_close.mjs into <data-root>/fp-data/gex/history); live 09:10 QQQ snapshots <data-root>/fp-data/gex/2026/QQQ_*T0910.json.gz for the proxy validation (forward archive, not included)
Can the morning predict a day inside the gamma walls?
Pre-registeredVerdict, as the study states it: REFUTED (rule: AUC >= 0.65, top >= 80%, bottom <= 55%); conditional trade rules reported descriptively, no verdict.
- Arms tested
- 3
- Pre-registration written
- Sep 9, 2026, 13:28 ET
- First result
- Sep 9, 2026, 13:28 ET
- Markets
- NQ with QQQ gamma walls
- Sample
- 688 sessions 2023-10-11 to 2026-09-04 (base cage rate 67.9%); walk-forward OOS 2025-2026 (398 sessions)
- Costs
- 0.25 pt slippage; stop max(12, 2 x ATR3 of 5m bars); target 1.5R
Notes, defects and the original title
Near miss recorded honestly: AUC 0.658 and top tercile 82.0% pass, bottom tercile 56.4% fails the 55% bar; width alone gives AUC 0.660. Arms = 1 classifier + 2 conditional rules (C1, C2) that were only to be evaluated if the classifier validated. Timestamp defect: the prereg says 'frozen 2026-09-09 14:20', but the file was created 13:28:11 (same second as cage_classifier.py) and the results file 18 s later, headed 13:28. The file order supports pre-registration; the stated freeze time is wrong.
Cage-day classifier: can pre-09:30 factors predict a close inside the gamma walls, and does that make the walls tradable?
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); <data-root>/fp-data/gex/history from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE); FRED VXNCLS.csv
Does options flow carry NQ direction?
Pre-registeredVerdict, as the study states it: All three policies refuted (FL1 QQQ 10:10 flow, FL2 market tide 10:10, FL3 prior-day QQQ flow). No factor carries direction.
- Arms tested
- 3
- Pre-registration written
- Sep 9, 2026, 13:33 ET
- First result
- Sep 9, 2026, 13:34 ET
- Markets
- NQ, with QQQ net premium and market-wide tide
- Sample
- 712 sessions 2023-10-10 to 2026-09-04; halves split 2025-03-15
- Costs
- 0.25 pt slippage; stop max(12, 2 x ATR3 of 5m bars); target 1.5R; 60-minute cap
Notes, defects and the original title
The prereg file (13:33:24) predates the first flow data file (13:33:31), consistent with 'frozen before the bulk pull'. Arms = FL1-FL3 (8 descriptive factor/target rows carry no verdict). Timestamp defect: the prereg says 'frozen 2026-09-09 14:45'; the file system and the results header (13:35) show it was written about 70 minutes earlier than stated.
Options-flow direction factors: does net options premium carry NQ direction?
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); per-minute QQQ net-premium ticks and market tide per date from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE) (backfill_flow.mjs writes <data-root>/fp-data/flow/*.json.gz)
Gamma walls moving at 10:10 as an entry signal
Pre-registeredVerdict, as the study states it: REFUTED as mechanical 10:10 entries; suggestive as a context factor.
- Arms tested
- 3
- Pre-registration written
- Sep 9, 2026, 13:10 ET
- First result
- Sep 9, 2026, 13:10 ET
- Markets
- NQ with QQQ gamma book
- Sample
- 693 sessions 2023-10-11 to 2026-09-04; halves split 2025-03-15
- Costs
- 0.25 pt slippage; stop max(12, 2 x ATR3 of 5m bars); target 1.5R; 60-minute cap
Notes, defects and the original title
All three policies (M1 wall drift, M2 tilt shift, M3 flip cross) were positive in both halves but none cleared one-sided p < 0.0167, so all failed the frozen rule. Timestamp defect: the prereg says 'frozen 2026-09-09 13:55', but it was created 13:10:11 (same second as wall_migration.py) and the results 8 s later, headed 13:10.
Gamma-wall migration at the 10:10 book refresh as an NQ entry signal
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); <data-root>/fp-data/gex/history from Unusual Whales API data (requires your own subscription; the pull scripts here read the key from an env file named by UW_KEY_FILE)
Day session, gaps, turn of month and release days
Partly pre-registeredVerdict, as the study states it: Twenty-nine arms run against a 27-test pre-registration, zero validated.
- Arms tested
- 29
- Pre-registration written
- Sep 16, 2026, 09:58 ET
- First result
- Sep 16, 2026, 10:02 ET
- Markets
- NQ, ES, YM, RTY, GC, CL, ZN, 6E (full-size)
- Sample
- 2010-2026 per root (RTY from 2017, 6E partial); event-conditioned arms only 2020-01-03 onward (event flags start there, not 2016 as the prereg assumed); splits 2010-2018 / 2019-2026 (price arms), 2016-2021 / 2022-2026 (event arms)
- Costs
- Round turn (2 ticks + $4): NQ $14, ES $29, YM $14, RTY $14, GC $24, CL $24, ZN $35.25, 6E $16.50
Notes, defects and the original title
Per claim: day session = pre-registered family D1 (8 roots, none pays; 5 of 8 negative); gap continuation = family E (2 arms, both refuted); turn-of-month = family C1 (refuted; flips sign between halves); 'Release days are wilder' ($2,880 vs $2,776 mean absolute NQ move, 2020+) is NOT a pre-registered test: the results label that table 'Computed after the fact and labelled descriptive — no test attached'. The NQ hour profile was pre-declared as descriptive. Partial because: 2 arms beyond the 27 frozen (declared); the prereg file was edited after the results (an 'ANSWERED' banner; no hash of the original body exists); and the release-day range figures are post hoc. Timestamp defect: the prereg says 'Frozen 2026-09-16 10:15 ET', but it was created 09:58:43 and the results JSON was written 10:02:33, so the stated freeze time is after the results.
What the desk can actually publish: a 29-arm strategy suite (overnight, timing, calendar, day session, gap follow-through)
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (8 roots, 2010-2026); the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included
The overnight drift in three layers, including crowd attention
Partly pre-registeredVerdict, as the study states it: Of 19 arms across three layers, exactly one passes every frozen test: the pre-FOMC night on NQ (N1 — VALIDATED). B1 attention-induced buying: refuted.
- Arms tested
- 57
- Pre-registration written
- Sep 16, 2026, 06:37 ET
- First result
- Sep 16, 2026, 06:38 ET
- Markets
- NQ primary; ES and GC secondary
- Sample
- Nights 2016-01-05 to 2026-09-11 (NQ 2,581 nights); train 2016-2021 / confirm 2022-2026. The pre-FOMC arm's 53 nights are 2020-2026 only, because the event archive's FOMC rows start in 2020
- Costs
- Round turn NQ $14, ES $29, GC $24; fills at the 16:00 and 09:30 prints
Notes, defects and the original title
Arms = 19 per root x 3 roots (15 hypotheses Bonferroni-counted on NQ, p < 0.0033). Attention (B1): the narrower attention-arm prereg (created 05:53:05, about 45 min before the run) and B1 here were both written before results; B1 = +$281.58/night, t 1.57, p 0.117, refuted. CAUTION on the placebo: with attention dates shuffled, the same arm returns +$100.11 (t 0.70), about the $98.00 baseline. Shuffling therefore removes the effect, it does not reproduce it; both write-ups describe this backwards. The refutation stands on p = 0.117 and random-night placebo p = 0.188. Pre-FOMC (N1): partial. The prereg itself quotes the answer (+$973 net, n=53, t=3.12) from the event-nights run hours earlier, and N1 re-measures those same 53 nights, which lie inside the 2016-2026 window where the effect was first found (macro-events-fundamentals). It is a re-measurement, not an independent confirmation. 'On a longer sample' in the results is not true for this arm. Timestamp defect: the prereg says 'Frozen 2026-09-16 09:45 ET', but the file was created 06:37:45 and the results 06:38:58.
The overnight drift under three layers (technical, event, behavioural), including the attention arm B1 and the pre-FOMC arm N1
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES, GC 2016-2026); VIX daily <data-root>/fp-data/fmp/vix-daily.json (FMP); the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included; Wikipedia pageview attention series (fp-context attention/wikipedia, public API)
Is the overnight drift just event nights?
Pre-registeredVerdict, as the study states it: Pre-FOMC (positive control) supported on NQ (n=53, net $972.70, t=3.12) and ES; every other arm inconclusive or suggestive. The overnight drift does not live only in identifiable event nights.
- Arms tested
- 20
- Pre-registration written
- Sep 15, 2026, 22:42 ET
- First result
- Sep 15, 2026, 23:26 ET
- Markets
- NQ, ES, GC (CL side table)
- Sample
- Nights 2020-01-01 to 2026-09 (NQ 1,642 nights); train 2020-2023 / confirm 2024 onward
- Costs
- $4 round turn + 1 tick each way: NQ $14, ES $29, GC $24
Notes, defects and the original title
Prereg created 22:42:14, runner 22:54:20, first results 23:26:19 (re-run 05:32 after the news wire was filled; verdicts unchanged). Arms = 7 (NQ) + 7 (ES) + 6 (GC) primary cells. Pre-FOMC was pre-registered as a pipeline POSITIVE CONTROL for an effect already known from the 2026-08-25 study, not as a new hypothesis.
Does the overnight drift concentrate in identifiable event nights beyond pre-FOMC?
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES, GC 2020-2026); the fp-context event archive (<data-root>/fp-context: events/**/*.jsonl with ts_event/ts_published/subclass/region, events/earnings/_weights.json, features/context_daily.jsonl); built from FMP, Fed, BLS/BEA, Federal Register, GDELT, Alpaca and SEC EDGAR feeds; not redistributed and its builder is not included
Macro releases and surprises on NQ, where the pre-FOMC night was found
Pre-registeredVerdict, as the study states it: H1 CONTESTED; H2 REFUTED; H3 Confounded, as predicted; (bonus) pre-FOMC overnight drift: Robust and survives every check — a forward-shadow candidate, not something to size tomorrow.
- Arms tested
- 176
- Pre-registration written
- Aug 26, 2026, 00:36 ET
- First result
- Aug 26, 2026, 00:37 ET
- Markets
- NQ
- Sample
- NQ 1m 2010-06-07 to 2026-08-25 (4,033 sessions); FMP econ calendar 2016-2026 (909 sessions with a composite surprise); pre-FOMC n=85 FOMC days 2016-2026 after the 2026-08-26 calendar correction
- Costs
- 1.0 pt round trip for the tradability legs; distribution tests gross
Notes, defects and the original title
The pre-FOMC drift was a pre-specified SECONDARY test ('reported, never confirmatory'), measured 18:00 ET prior day to 09:30 ET open: +25.38 bps gross, t +3.61 (corrected), one cell among about 176 in this study and about 544 pre-counted across that day's three studies (the study notes the expected max |t| under the null is about 3.3). Prereg created 00:36:30 EDT, before fundamentals_nq.py (00:37:36) and the first output (00:37:41); its in-text 'Frozen 20:25 MDT' (22:25 EDT) is two hours earlier than the file and cannot be verified. Results carry two dated corrections (2026-08-26: calendar repair; jobless-claims result refuted). Arms = about 176 cells as pre-counted by the study.
Do macro events, surprises and administrations predict NQ? (where the pre-FOMC drift was first found)
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ 2010-2026); FMP economic calendar 2016-2026 JSON (<data-root>/fp-data/fmp/econ-calendar-*.json; FMP subscription)
The pre-FOMC night, graded forward
Pre-registeredVerdict, as the study states it: No verdict yet. Shadow only: promotion requires forward n >= 8 (about 2027-08 at the earliest), forward mean net > 0, forward hit rate >= 55%, pooled t > 3.0, and positive excess over the non-FOMC baseline.
- Arms tested
- 1
- Pre-registration written
- Aug 26, 2026, 07:20 ET
- First result
- none yet
- Markets
- NQ (1 contract)
- Sample
- Historical seed n=85 FOMC days 2016-01-27 to 2026-07-29 (can never promote the rule); forward observations from 2026-08-26 onward: 1 so far (2026-09-16)
- Costs
- 1.0 index point round trip
Notes, defects and the original title
This is the only genuinely out-of-sample test of the pre-FOMC rule, and it has 1 of the 8 forward observations its own frozen bar requires. The rule graded here enters at 18:00 ET (after the daily halt) and exits 09:30 ET. The forward track file (prefomc-shadow-track.jsonl, per-date entry/exit prices) is not included. The grader (prefomc_shadow.py, created 07:12:11) predates the spec (07:20:57); the spec froze the promotion bar before any forward observation existed.
Pre-FOMC overnight drift: forward shadow-grading spec and grader
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ); FMP economic calendar (FOMC decision dates, 'Interest Rate Decision', country US)
The last half hour, 15:30 to 16:00
Not pre-registeredVerdict, as the study states it: VALIDATED, conditional — ship as a shadow-mode Close Read, not a sized trade.
- Arms tested
- 25
- Pre-registration written
- none
- First result
- Jul 27, 2026
- Markets
- NQ (cross-symbol check on ES, YM, RTY)
- Sample
- NQ.c.0 1m, 3,948 full RTH sessions 2010-06-07 to 2026-07-24; IS 2010-2019 / OOS 2020-2026; survivor n=540 trades
- Costs
- 1.0 pt round trip on NQ; ES 0.5, YM 2.0, RTY 0.3 pt in the cross-symbol check
Notes, defects and the original title
Post hoc: about 25 hypothesis variants screened (18 in close_study.py), then the survivor put through robustness checks; no pre-registration exists. Survivor: |15:00 to 15:30 move| > 0.30%, follow it to the close: +5.79 bps/trade, t 2.17, bootstrap p 0.016, hit rate 51.5% (not significant). That t is below the t >= 3 bar the later pre-registered studies use. 2023-2026: the base rule is negative on all four index futures (NQ -2.3, ES -4.0, YM -0.9, RTY -0.6 bps, all n.s.); NQ longs +2.5 pt, shorts -8.9 pt. close_deep_dive.py needs pm_paths.parquet, which no script on disk generates. The calendar-study (OPEX, month-end, quarter-end) code was not found.
Close Read feasibility study: the 15:30 to 16:00 ET NQ window
Data needed to rerun: CME futures 1-minute OHLCV bars (Databento GLBX layout: ts_event,rtype,publisher_id,instrument_id,open,high,low,close,volume,symbol) at <data-root>/fp-data/glbx/<ROOT>/1m/<YEAR>.csv; licensed vendor data, not redistributed (NQ, ES, YM, RTY 2010-2026)