Phases 2-4: state of the art, 22-hypothesis research gaps, candidate ranking
- state_of_the_art.md: 10 anomaly families (charter §5 template) with epistemic status; methods inventory with macOS arm64 availability - research_gaps.md: H01-H22, each with constructable artifact null; multiple-testing budget declared (22) for expF - candidate_ranking.md: 10-axis scoring; selected C01=H15 intraday momentum decay, C02=H13 turn-of-month, C03=H11+H03 index-artifact decomposition, C04=H10 crypto-weekend gap; reserve H09 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Showing 7 changed files with +540 and −17
modified
experiments/candidate_01/README.md
+2 −2
@@ -10,6 +10,6 @@ status: draft | ||
| 10 | 10 | |
| 11 | 11 | # candidate_01 |
| 12 | 12 | |
| 13 | −Candidate 01 (selected in Phase 4 from research/candidate_ranking.md) | |
| 13 | +H15 — Intraday momentum post-publication decay (Gao et al. 2018 spec frozen; 2018–2026 OOS; gamma-state proxy from options chains). | |
| 14 | 14 | |
| 15 | −Status: scaffolded 2026-08-12, not yet run. | |
| 15 | +Status: assigned 2026-08-12 (Phase 4); prototyping starts after expC–E scans. | |
modified
experiments/candidate_02/README.md
+2 −2
@@ -10,6 +10,6 @@ status: draft | ||
| 10 | 10 | |
| 11 | 11 | # candidate_02 |
| 12 | 12 | |
| 13 | −Candidate 02 (selected in Phase 4 from research/candidate_ranking.md) | |
| 13 | +H13 — Turn-of-month 2006–2026: did the last calendar survivor (Marquering et al. 2006) survive? One pre-registered window (−1..+3), permuted-calendar null, SPA. | |
| 14 | 14 | |
| 15 | −Status: scaffolded 2026-08-12, not yet run. | |
| 15 | +Status: assigned 2026-08-12 (Phase 4); prototyping starts after expC–E scans. | |
modified
experiments/candidate_03/README.md
+2 −2
@@ -10,6 +10,6 @@ status: draft | ||
| 10 | 10 | |
| 11 | 11 | # candidate_03 |
| 12 | 12 | |
| 13 | −Candidate 03 (selected in Phase 4 from research/candidate_ranking.md) | |
| 13 | +H11 + H03 — Index-artifact decomposition: SPX→SPY 1min lead as pure print-staleness, and the Fisher share of index VR momentum (SPX vs SPY divergence). | |
| 14 | 14 | |
| 15 | −Status: scaffolded 2026-08-12, not yet run. | |
| 15 | +Status: assigned 2026-08-12 (Phase 4); prototyping starts after expC–E scans. | |
modified
research/LOG.md
+21 −0
@@ -108,3 +108,24 @@ OHLC spread estimator for expG. | ||
| 108 | 108 | vs artifact nulls for Level 1 -> DSR with logged trial counts. Next: Phase 2 |
| 109 | 109 | state-of-the-art map, then research_gaps (Phase 3). In parallel (user |
| 110 | 110 | request): major web platform upgrade (mobile + comments). |
| 111 | + | |
| 112 | +## 2026-08-12 03:30 ET — Phases 2–4 complete: state of the art, 22 hypotheses, candidates selected | |
| 113 | + | |
| 114 | +**Question.** Given the verified literature and the measured artifact nulls, | |
| 115 | +which hypotheses deserve prototyping? | |
| 116 | + | |
| 117 | +**Output.** state_of_the_art.md (10 anomaly families in the §5 template with | |
| 118 | +epistemic status + methods/arm64 inventory); research_gaps.md (H01–H22, each | |
| 119 | +with a constructable artifact null; MULTIPLE-TESTING BUDGET DECLARED: 22); | |
| 120 | +candidate_ranking.md (10-axis scores). | |
| 121 | + | |
| 122 | +**Selected.** C01=H15 intraday-momentum post-2018 decay; C02=H13 | |
| 123 | +turn-of-month 2006–2026; C03=H11+H03 index-artifact decomposition (SPX/SPY | |
| 124 | +staleness + Fisher VR share); C04=H10 crypto-weekend→Monday-gap (novelty | |
| 125 | +pick). Reserve: H09. Controls H14/H20/H21 run inside the micro-experiment | |
| 126 | +pipeline. Selection used priors + expA/expB artifact levels only — no | |
| 127 | +real-data effect peeking. | |
| 128 | + | |
| 129 | +**Decision.** Next: expC–expE scans (consuming expB nulls), then expF | |
| 130 | +correction with the declared 22-hypothesis budget. Candidate 04 requires | |
| 131 | +crypto volume-semantics verification first (expA follow-up). | |
modified
research/candidate_ranking.md
+85 −4
@@ -5,10 +5,91 @@ author: Simon-Pierre Boucher | ||
| 5 | 5 | contact: contact@spboucher.ai |
| 6 | 6 | data_source: hfmarketdata.io |
| 7 | 7 | created: 2026-08-12 |
| 8 | −status: draft | |
| 8 | +modified: 2026-08-12 | |
| 9 | +status: reviewed | |
| 9 | 10 | --- |
| 10 | 11 | |
| 11 | −# Candidate ranking | |
| 12 | +# Candidate ranking (Phase 4) | |
| 12 | 13 | |
| 13 | −*Phase 4 output. Not yet written.* 10-axis scoring per CLAUDE.md §7; | |
| 14 | −3-5 candidates selected for prototyping. | |
| 14 | +All 22 hypotheses from `research_gaps.md`, scored 1–10 per charter-§7 axis | |
| 15 | +(10 = best). Axes: **T** testability on hfmarketdata.io · **N** cleanliness | |
| 16 | +of the artifact null · **O** OOS feasibility · **M** multiple-testing | |
| 17 | +discipline · **S** survival odds after costs (5 = n/a, structural claim) · | |
| 18 | +**V** novelty of the honest test · **R** reproducibility · **P** public-atlas | |
| 19 | +value · **I** implementation simplicity · **D** safety against | |
| 20 | +self-deception. | |
| 21 | + | |
| 22 | +| H | Hypothesis (short) | T | N | O | M | S | V | R | P | I | D | Σ | | |
| 23 | +|---|---|--|--|--|--|--|--|--|--|--|--|---| | |
| 24 | +| H15 | Intraday momentum post-2018 decay | 9 | 7 | 9 | 9 | 6 | 9 | 9 | 10 | 7 | 8 | **83** | | |
| 25 | +| H11 | SPX→SPY lead = staleness artifact | 9 | 9 | 8 | 9 | 5 | 8 | 9 | 9 | 8 | 9 | **83** | | |
| 26 | +| H13 | Turn-of-month survived 2006–2026 | 9 | 8 | 9 | 8 | 6 | 8 | 9 | 9 | 8 | 8 | **82** | | |
| 27 | +| H03 | Index VR residual = Fisher share | 9 | 9 | 8 | 9 | 5 | 7 | 9 | 8 | 8 | 9 | **81** | | |
| 28 | +| H16 | Overnight premium convention share | 9 | 9 | 8 | 9 | 5 | 7 | 9 | 8 | 8 | 9 | **81** | | |
| 29 | +| H20 | Intraday artifact U-profile (input) | 9 | 9 | 8 | 9 | 5 | 6 | 9 | 8 | 8 | 10 | **81** | | |
| 30 | +| H14 | Monday effect stays dead (control) | 9 | 9 | 9 | 9 | 5 | 4 | 9 | 7 | 9 | 10 | **80** | | |
| 31 | +| H09 | ES→SPY ordering at the 1min floor | 8 | 8 | 8 | 9 | 5 | 8 | 9 | 8 | 7 | 8 | **78** | | |
| 32 | +| H10 | Crypto weekend → Monday equity gap | 8 | 7 | 7 | 9 | 5 | 9 | 8 | 9 | 7 | 7 | **76** | | |
| 33 | +| H21 | Vol persistence (positive control) | 9 | 9 | 9 | 9 | 5 | 3 | 9 | 6 | 7 | 10 | **76** | | |
| 34 | +| H01 | Liquid 1–60min reversion = 0 net | 9 | 9 | 8 | 8 | 2 | 4 | 9 | 7 | 8 | 9 | **73** | | |
| 35 | +| H08 | SPY→sector ETFs zero on fresh pairs | 9 | 8 | 8 | 8 | 3 | 5 | 9 | 6 | 8 | 9 | **73** | | |
| 36 | +| H07 | Large→small decay + artifact share | 8 | 8 | 8 | 7 | 3 | 6 | 8 | 8 | 6 | 8 | **70** | | |
| 37 | +| H05 | Crypto 1min reversion by maturity | 8 | 7 | 7 | 7 | 4 | 7 | 8 | 7 | 7 | 7 | **69** | | |
| 38 | +| H17 | Crypto hour-of-week calendar | 8 | 8 | 8 | 5 | 4 | 7 | 8 | 7 | 7 | 5 | **67** | | |
| 39 | +| H02 | Daily reversal decay curve | 8 | 7 | 8 | 7 | 2 | 5 | 8 | 7 | 6 | 7 | **65** | | |
| 40 | +| H18 | Holiday effects are dead | 7 | 8 | 7 | 7 | 4 | 4 | 8 | 5 | 8 | 7 | **65** | | |
| 41 | +| H12 | Options activity → next-day vol | 7 | 6 | 8 | 7 | 5 | 7 | 7 | 7 | 4 | 6 | **64** | | |
| 42 | +| H22 | OpEx-week volume/vol patterns | 7 | 6 | 7 | 6 | 4 | 7 | 8 | 7 | 6 | 6 | **64** | | |
| 43 | +| H19 | DST-transition distortions | 7 | 7 | 7 | 7 | 4 | 6 | 8 | 5 | 6 | 5 | **62** | | |
| 44 | +| H04 | Post-jump 1min overreaction | 7 | 5 | 7 | 6 | 3 | 7 | 7 | 7 | 5 | 5 | **59** | | |
| 45 | +| H06 | FX session-boundary reversion | 7 | 6 | 7 | 5 | 3 | 6 | 8 | 5 | 6 | 6 | **59** | | |
| 46 | + | |
| 47 | +## Selected for prototyping (charter: 3–5) | |
| 48 | + | |
| 49 | +**Candidate 01 — H15, intraday momentum post-publication decay** (Σ83). | |
| 50 | +The single highest-information test: a famous published effect (Gao et al. | |
| 51 | +2018) with a freezable specification, an untouched 2018–2026 out-of-sample | |
| 52 | +window that only time could create, a mechanism proxy available in our | |
| 53 | +options chains (Baltussen et al.), moderate cost exposure (2 trades/day in | |
| 54 | +SPY), and near-zero researcher degrees of freedom. Every outcome — | |
| 55 | +persistence, decay, or reversal — is a publishable McLean–Pontiff-style | |
| 56 | +data point. | |
| 57 | + | |
| 58 | +**Candidate 02 — H13, turn-of-month 2006–2026** (Σ82). The last calendar | |
| 59 | +survivor per Marquering et al. (2006), untested since on open data; | |
| 60 | +low-frequency (12×/yr → real cost-survival chance), one pre-registered | |
| 61 | +window, permuted-calendar null + SPA. Highest chance in the whole list of a | |
| 62 | +genuine Level-3 finding — and a clean negative if dead. | |
| 63 | + | |
| 64 | +**Candidate 03 — H11 + H03, the index-artifact decomposition** (Σ83/81). | |
| 65 | +One machinery, two published deliverables: prove the SPX→SPY 1min "lead" is | |
| 66 | +pure print-staleness (result-type C/D: artifact demonstration), and quantify | |
| 67 | +the Fisher share of index-level variance-ratio momentum. Cleanest nulls of | |
| 68 | +the entire list; already seeded by expB (+0.065 measured). | |
| 69 | + | |
| 70 | +**Candidate 04 — H10, crypto-weekend → Monday equity gap** (Σ76, novelty | |
| 71 | +pick). The one genuinely NEW question this dataset is structurally | |
| 72 | +positioned to ask (24/7 crypto × equity session opens). Pre-registered | |
| 73 | +exposed set {COIN, MSTR, RIOT, MARA, HUT} + placebo set + SPY-gap control + | |
| 74 | +permuted-weekend null. Higher self-deception risk (selection, short joint | |
| 75 | +history ~400 weekends) — ranked last of the selected four accordingly. | |
| 76 | + | |
| 77 | +**Reserve — H09** (ES→SPY at the 1min floor): promoted if a selected | |
| 78 | +candidate dies early at the data layer. | |
| 79 | + | |
| 80 | +## Not selected (why, in one line each) | |
| 81 | + | |
| 82 | +Controls/inputs H14, H20, H21 run *inside* the micro-experiment pipeline | |
| 83 | +(expE, expB/expG, framework) — they are mandatory, not candidates. H16 | |
| 84 | +(strong score) folds into candidate 03's convention machinery as a shared | |
| 85 | +deliverable. H01/H08 are expected-negatives that expC/expD produce as scan | |
| 86 | +output without candidate-level investment. H07/H02 are decay re-measurements | |
| 87 | +scheduled after the scans (reuse candidate-03 machinery). H05/H17 (crypto) | |
| 88 | +wait for volume-semantics verification (expA follow-up noted in the data | |
| 89 | +profile). H12/H22 need the options ingestion layer (heavier implementation). | |
| 90 | +H04/H06/H19 have the weakest nulls or lowest power — revisit only if the | |
| 91 | +scans surface something. | |
| 92 | + | |
| 93 | +**Multiple-testing accounting:** selection made on *priors and design | |
| 94 | +cleanliness*, not on any real-data effect sizes — no data peeking occurred | |
| 95 | +beyond expA/expB artifact levels. The 22-hypothesis budget stands for expF. | |
modified
research/research_gaps.md
+194 −4
@@ -5,10 +5,200 @@ author: Simon-Pierre Boucher | ||
| 5 | 5 | contact: contact@spboucher.ai |
| 6 | 6 | data_source: hfmarketdata.io |
| 7 | 7 | created: 2026-08-12 |
| 8 | −status: draft | |
| 8 | +modified: 2026-08-12 | |
| 9 | +status: reviewed | |
| 9 | 10 | --- |
| 10 | 11 | |
| 11 | −# Research gaps | |
| 12 | +# Research gaps (Phase 3) — 22 testable hypotheses | |
| 12 | 13 | |
| 13 | −*Phase 3 output. Not yet written.* Target: >= 20 substantially different, | |
| 14 | −testable hypotheses, each with an explicitly constructable artifact null (CLAUDE.md §6). | |
| 14 | +Each hypothesis: **(a)** what existing work shows, **(b)** what is untested | |
| 15 | +on open HF data at this granularity, **(c)** why it matters, **(d)** plausible | |
| 16 | +mechanism, **(e)** biggest artifact/statistical reason it would be fake, | |
| 17 | +**(f)** smallest Mac-runnable falsifying experiment. Every hypothesis has an | |
| 18 | +explicitly constructable artifact null (charter §6 requirement). Format | |
| 19 | +compresses (a)–(f) into labeled lines. | |
| 20 | + | |
| 21 | +The hypothesis *count* here is the multiple-testing budget input for expF — | |
| 22 | +expanding this list later requires a LOG entry and re-budgeting (§12). | |
| 23 | + | |
| 24 | +## Family R — Mean-reversion (Q1) | |
| 25 | + | |
| 26 | +### H01 — Liquid-name 1–60 min reversion is zero net of bounce | |
| 27 | +(a) Chordia et al. 2005: arbitraged within minutes by 2005. (b) Never | |
| 28 | +measured net of a *measured* bounce null on open 1min data 2000–2026. | |
| 29 | +(c) Anchors the whole survival curve; expected-negative. (d) None expected — | |
| 30 | +that is the point. (e) T1 bounce; T2 staleness. (f) VR/AC1 on 20 pre-specified | |
| 31 | +liquid names × 4 sub-periods vs expB bucket nulls; falsified if excess | |
| 32 | +reversion CI excludes 0 anywhere. | |
| 33 | + | |
| 34 | +### H02 — Daily individual-stock reversal decay curve 2000–2026 | |
| 35 | +(a) Lehmann/Jegadeesh gross reversal; Blume–Stambaugh: bounce halves it; | |
| 36 | +McLean–Pontiff decay. (b) The *net-of-measured-bounce* decay path on open | |
| 37 | +data. (c) Cleanest decay re-measurement. (d) Liquidity-provision compensation | |
| 38 | +shrinking with spreads. (e) T1 (dominant), T4. (f) Weekly-rebalanced reversal | |
| 39 | +deciles, both close conventions, net of EDGE spread; falsified (as decay | |
| 40 | +story) if net effect is stable across sub-periods. | |
| 41 | + | |
| 42 | +### H03 — Index VR momentum has converged to 1; residual = Fisher artifact | |
| 43 | +(a) Lo–MacKinlay VR>1 (1988); Fisher 1966 stale-index bias. (b) SPX-vs-SPY VR | |
| 44 | +divergence as a direct artifact quantification. (c) Methodological: measures | |
| 45 | +the Fisher share. (d) Stale index prints. (e) T2/T3 — deliberately the object | |
| 46 | +of study. (f) VR(q∈{2,5,10,30}) on SPX vs SPY 1day+30min, 2008–2026; the | |
| 47 | +artifact claim is falsified if SPX VR ≈ SPY VR. | |
| 48 | + | |
| 49 | +### H04 — Post-jump 1min overreaction reversal | |
| 50 | +(a) Overreaction literature is daily+; intraday jump reversion is mostly HFT | |
| 51 | +lore. (b) Reaction after >5σ 1min idiosyncratic moves on open data, net of | |
| 52 | +bounce (jumps widen spreads — the null must be *conditional* on the jump). | |
| 53 | +(c) Tests overreaction where attention is scarcest. (d) Liquidity vacuum then | |
| 54 | +refill. (e) Conditional bounce inflation (spread doubles at jumps → mechanical | |
| 55 | +reversal). (f) Event study on pre-specified jump definition, conditional Roll | |
| 56 | +null from post-jump spread estimates; ±CI on excess reversal. | |
| 57 | + | |
| 58 | +### H05 — Crypto 1min reversion (no auction, 24/7, younger market) | |
| 59 | +(a) Crypto microstructure literature is thin and exchange-specific. (b) Open | |
| 60 | +1min BTC/ETH reversion with a constructable bounce null, 2013–2026 maturity | |
| 61 | +sweep. (c) Tests the "young markets are less efficient" prior cleanly. | |
| 62 | +(d) Retail flow + fragmented liquidity. (e) T1 (vendor aggregation may smooth | |
| 63 | +prints); volume field semantics unverified. (f) Same battery as H01 on | |
| 64 | +BTC/ETH/top-10, by year; falsified if excess reversion ≈ 0 across all years. | |
| 65 | + | |
| 66 | +### H06 — FX 1min reversion at session boundaries | |
| 67 | +(a) FX microstructure well-studied on proprietary data. (b) Open 1min FX | |
| 68 | +around the 17:00 ET roll and fixings. (c) Session-boundary liquidity is a | |
| 69 | +mechanism magnet. (d) Dealer inventory at rollover. (e) T7 session semantics; | |
| 70 | +sparse Sunday bars (expA: single 00:xx bar). (f) AC1/VR by hour-of-week grid | |
| 71 | +(pre-counted), permuted hour-labels null. | |
| 72 | + | |
| 73 | +## Family L — Lead-lag (Q2) | |
| 74 | + | |
| 75 | +### H07 — Large→small lead-lag: decay + artifact share | |
| 76 | +(a) Lo–MacKinlay 1990; Scholes–Williams artifact. (b) Joint decay curve AND | |
| 77 | +staleness-share decomposition on open data 2000–2026. (c) Settles how much of | |
| 78 | +a textbook effect was ever real. (d) Slow information diffusion. (e) T3 — | |
| 79 | +measured in expB (+0.047 mid-tercile). (f) Size-decile xcorr on both-fresh | |
| 80 | +subsamples vs staleness-matched null, per sub-period. | |
| 81 | + | |
| 82 | +### H08 — SPY → sector ETFs at 1min is zero on fresh pairs | |
| 83 | +(a) Index→constituent diffusion literature (daily, older). (b) ETF↔ETF at | |
| 84 | +1min on open data. (c) Expected-negative control extending H07 to the most | |
| 85 | +liquid pairs. (d) None expected. (e) T3 residual staleness in low-volume | |
| 86 | +sector ETFs. (f) xcorr SPY↔{XLF,XLE,XLK,…} both-fresh, staleness null; | |
| 87 | +falsified if any |lead| beats null after FDR. | |
| 88 | + | |
| 89 | +### H09 — ES futures → SPY at 1min: does any ordering survive the floor? | |
| 90 | +(a) Sub-second futures lead is established (proprietary data). (b) Whether | |
| 91 | +ANY of it is visible at the 1min floor on open data, and whether the futures | |
| 92 | +splice variant changes the answer. (c) Structural price-discovery question | |
| 93 | +our data can just barely reach. (d) Futures-first discovery. (e) T3/T7 | |
| 94 | +session mismatch; splice artifacts (3 variants = built-in robustness check). | |
| 95 | +(f) ES↔SPY xcorr 09:31–15:59 both-fresh, all 3 adjustments, sub-periods | |
| 96 | +2008–2026. | |
| 97 | + | |
| 98 | +### H10 — Crypto weekend return predicts Monday open gap of crypto-exposed equities | |
| 99 | +(a) Effectively untested on open data; related overnight-information papers. | |
| 100 | +(b) The full 24/7→session-open information relay. (c) One of the few genuinely | |
| 101 | +NEW questions this dataset can pose. (d) Equity prices cannot move while | |
| 102 | +crypto does. (e) Selection of "exposed" set post-hoc (must pre-register: | |
| 103 | +e.g. COIN, MSTR, RIOT, MARA, HUT + placebo set); overlapping market-wide | |
| 104 | +weekend news (control: SPY gap). (f) Regress Monday open gap on BTC weekend | |
| 105 | +return vs placebo set + permuted-weekend null; ~400 weekends. | |
| 106 | + | |
| 107 | +### H11 — SPX→SPY "lead" is 100 % staleness artifact | |
| 108 | +(a) Fisher 1966. (b) Direct decomposition at 1min on open data (expB seed: | |
| 109 | ++0.065). (c) Publishable artifact demonstration (charter result-type C/D). | |
| 110 | +(d) Index print lag. (e) None — the artifact IS the claim. (f) Show the lead | |
| 111 | +disappears when SPX grid is lagged by its print-latency estimate; falsified | |
| 112 | +if a residual lead survives the correction. | |
| 113 | + | |
| 114 | +### H12 — Daily options-chain activity → next-day underlying volatility | |
| 115 | +(a) Options volume→volatility literature (mixed, mostly intraday quotes). | |
| 116 | +(b) With *daily* chains only: does aggregate chain volume/OI change add to a | |
| 117 | +HAR-RV vol forecast? (c) Uses the dataset's unique options depth; forecasting | |
| 118 | +vol (not returns) dodges the efficiency prior. (d) Informed vol trading. | |
| 119 | +(e) Mechanical volume–vol contemporaneity (must be strictly lagged); | |
| 120 | +HAR benchmark must be strong. (f) HAR-RV ± options features, Diebold–Mariano | |
| 121 | +with block bootstrap, pre-2020 train / post-2020 validation. | |
| 122 | + | |
| 123 | +## Family C — Calendar (Q3) | |
| 124 | + | |
| 125 | +### H13 — Turn-of-month survived 2006–2026 | |
| 126 | +(a) Ariel; Lakonishok–Smidt; Marquering et al.: last survivor as of 2006. | |
| 127 | +(b) Its post-2006 fate on open data. (c) THE calendar re-test. (d) Pension/ | |
| 128 | +payroll flows. (e) Calendar p-hacking (window choice) — ONE pre-registered | |
| 129 | +window (−1..+3); OpEx overlap. (f) SPY daily 2000–2026, permuted-calendar | |
| 130 | +null, SPA vs full window universe, sub-periods. | |
| 131 | + | |
| 132 | +### H14 — Monday effect stays dead (negative control) | |
| 133 | +(a) French 1980; decayed per Schwert/Marquering. (b) 2000–2026 open-data | |
| 134 | +confirmation. (c) Calibrates the calendar pipeline on a known corpse — if we | |
| 135 | +"find" it, the pipeline is broken. (d) None. (e) T4/T7 conventions. (f) | |
| 136 | +Day-of-week means + permuted null; expected inside null bands. | |
| 137 | + | |
| 138 | +### H15 — Intraday momentum (Gao) post-publication decay | |
| 139 | +(a) Gao et al. 2018 (in-sample 1993–2013); Baltussen 2021 mechanism. (b) The | |
| 140 | +2018–2026 out-of-sample fate — untouched by the original authors, perfectly | |
| 141 | +measurable here. (c) Textbook McLean–Pontiff test at intraday scale. (d) | |
| 142 | +Gamma hedging → should persist when dealer gamma is short. (e) Overnight-gap | |
| 143 | +spec choice; U-shape spread costs at both trade times. (f) Frozen published | |
| 144 | +spec on SPY 30min bars, split pre/post-2018, gamma-state proxy from our | |
| 145 | +options chains; DSR-corrected. | |
| 146 | + | |
| 147 | +### H16 — Overnight premium is (partly) a close-convention artifact | |
| 148 | +(a) Overnight-vs-intraday split literature. (b) Sensitivity of the premium to | |
| 149 | +close/open conventions quantifiable with both series (T4: 8bp/day discrepancy | |
| 150 | +seed). (c) Convention share of a famous stylized fact. (d) Auction dynamics. | |
| 151 | +(e) The artifact is the object. (f) Recompute premium under 4 convention | |
| 152 | +combos on 20 liquid names + SPY; report the spread of estimates. | |
| 153 | + | |
| 154 | +### H17 — Crypto "weekend effect" with permuted-calendar null | |
| 155 | +(a) Anecdotal/thin literature. (b) Systematic day-of-week/hour-of-week on | |
| 156 | +open 24/7 1min data 2013–2026 with honest correction. (c) Only market with | |
| 157 | +no session artifacts — the cleanest calendar laboratory. (d) Retail weekend | |
| 158 | +flow. (e) Pure MT risk (168-hour grid!) — strict pre-count + FDR + SPA. | |
| 159 | +(f) Hour-of-week grid on BTC/ETH, permuted labels, FDR; survivors → SPA. | |
| 160 | + | |
| 161 | +### H18 — Holiday-adjacent effects are dead | |
| 162 | +(a) Lakonishok–Smidt documented; decayed per Marquering. (b) 2000–2026 | |
| 163 | +confirmation, pre-holiday and post-holiday, exchange calendar from data | |
| 164 | +gaps. (c) Completes the calendar corpse count. (d) None expected. (e) Small-n | |
| 165 | +(≈9 holidays/yr) → low power, wide CIs; report power explicitly. (f) Event | |
| 166 | +windows vs permuted-date null. | |
| 167 | + | |
| 168 | +### H19 — DST-transition week distortions | |
| 169 | +(a) Sparse literature (sleep/mood papers, disputed). (b) At 1min: does the | |
| 170 | +hour-of-day return/vol profile mis-align in DST weeks (a T7 check that could | |
| 171 | +also be a mild real effect)? (c) Doubles as a data-integrity test. (d) | |
| 172 | +Clock-relative order flow. (e) OUR OWN timestamp handling (T7) — the test | |
| 173 | +must first prove the pipeline handles DST. (f) Compare DST-week intraday | |
| 174 | +profiles vs adjacent weeks, permuted-week null. | |
| 175 | + | |
| 176 | +## Family V — Volatility & structure (supporting) | |
| 177 | + | |
| 178 | +### H20 — Intraday bounce/staleness profile (U-shape of the artifact) | |
| 179 | +(a) Wood et al. U-shape. (b) The intraday profile of OUR bounce null — | |
| 180 | +taxonomy open item. (c) Input required by expE/expG; positive control. | |
| 181 | +(d) Known microstructure. (e) None. (f) Roll/EDGE spread by half-hour bucket | |
| 182 | +on the expB universe. | |
| 183 | + | |
| 184 | +### H21 — Realized-vol persistence (positive control) | |
| 185 | +(a) HAR-RV: overwhelming evidence of vol persistence. (b) n/a — we USE it as | |
| 186 | +the pipeline's positive control: a detector that misses vol persistence is | |
| 187 | +broken. (c) Guards against over-aggressive nulls (Type II). (d) Volatility | |
| 188 | +clustering. (e) Noise-biased RV (use 5min subsampling per Zhang et al.). | |
| 189 | +(f) HAR-RV R² on SPY must be strongly positive OOS; failure = pipeline bug. | |
| 190 | + | |
| 191 | +### H22 — OpEx-week patterns in volume/vol (options-expiration calendar) | |
| 192 | +(a) Practitioner lore + some evidence on pinning. (b) With actual expiration | |
| 193 | +calendars from our chains: volume/vol/return patterns on OpEx Fridays vs | |
| 194 | +matched Fridays. (c) Mechanism-rich calendar effect with a natural control | |
| 195 | +group. (d) Hedge unwinds. (e) Confound with turn-of-month (H13) and | |
| 196 | +quarter-end — joint design needed. (f) OpEx vs non-OpEx Friday panel, | |
| 197 | +permuted-Friday null. | |
| 198 | + | |
| 199 | +--- | |
| 200 | + | |
| 201 | +**Budget declared: 22 hypotheses** (+ their pre-specified parameter grids, | |
| 202 | +enumerated in each experiment's hypothesis.md). Preference for prototyping | |
| 203 | +goes to hypotheses with the cleanest nulls and highest information value per | |
| 204 | +CPU-hour (Phase 4 ranking → `candidate_ranking.md`). | |
modified
research/state_of_the_art.md
+234 −3
@@ -5,9 +5,240 @@ author: Simon-Pierre Boucher | ||
| 5 | 5 | contact: contact@spboucher.ai |
| 6 | 6 | data_source: hfmarketdata.io |
| 7 | 7 | created: 2026-08-12 |
| 8 | −status: draft | |
| 8 | +modified: 2026-08-12 | |
| 9 | +status: reviewed | |
| 9 | 10 | --- |
| 10 | 11 | |
| 11 | −# State of the art | |
| 12 | +# State of the art (Phase 2) | |
| 12 | 13 | |
| 13 | −*Phase 2 output. Not yet written.* Per-anomaly template in CLAUDE.md §5. | |
| 14 | +Critical map of each anomaly family and method, in the charter §5 template. | |
| 15 | +Sources: `research/bibliography.md` (52 verified references, accessed | |
| 16 | +2026-08-12); dataset facts: `research/data_source_profile.md`; measured | |
| 17 | +artifact levels: `research/artifact_taxonomy.md` (T1–T7). | |
| 18 | + | |
| 19 | +**Epistemic status legend:** robust / decayed / disputed / likely-artifact. | |
| 20 | + | |
| 21 | +--- | |
| 22 | + | |
| 23 | +## A1 — Short-horizon individual-stock reversal | |
| 24 | + | |
| 25 | +- **What it claims.** Individual stock returns revert at daily–monthly | |
| 26 | + horizons (Lehmann 1990 weekly; Jegadeesh 1990 monthly). | |
| 27 | +- **Granularity required.** Daily suffices; our 1min adds the ability to | |
| 28 | + separate close-convention effects. ✅ testable. | |
| 29 | +- **Known artifact confounds.** Bid-ask bounce (T1 — Blume–Stambaugh showed | |
| 30 | + it halves such effects), stale prices (T2), auction-close mismatch (T4). | |
| 31 | +- **Decay evidence.** McLean–Pontiff −58 % post-publication; Chordia et al. | |
| 32 | + 2014 attenuation with liquidity. Largely gone in liquid U.S. names. | |
| 33 | +- **Correct test.** Cross-sectional reversal portfolios with bounce-robust | |
| 34 | + prices + VR/AC1 net of the liquidity-bucket bounce null; block-bootstrap | |
| 35 | + CIs (assumes stationarity within blocks). | |
| 36 | +- **Multiple-testing exposure.** Moderate: horizon × universe × weighting | |
| 37 | + grid. Pre-specify or FDR-correct. | |
| 38 | +- **Cost sensitivity.** Extreme — highest-turnover class; Novy-Marx–Velikov | |
| 39 | + prior: dies net of costs. | |
| 40 | +- **Open-source impl.** Our own `stats/reversion.py` (gated §8.1); arch's | |
| 41 | + `VarianceRatio` as cross-check — both build on macOS arm64. ✅ | |
| 42 | +- **Main limitation.** Without quote data, bounce correction is estimated, | |
| 43 | + not measured. | |
| 44 | +- **Honest new test here.** A 2000–2026 *decay curve* of daily reversal net | |
| 45 | + of the measured bounce null, by liquidity bucket — a decay re-measurement, | |
| 46 | + not a discovery claim. **Status: decayed (gross); likely-artifact (net).** | |
| 47 | + | |
| 48 | +## A2 — Index/portfolio variance-ratio momentum | |
| 49 | + | |
| 50 | +- **Claims.** Weekly index returns positively autocorrelated, VR(q) > 1 | |
| 51 | + (Lo–MacKinlay 1988). | |
| 52 | +- **Granularity.** Daily/weekly from our 1day bars (2000→) and intradaily | |
| 53 | + aggregation. ✅ | |
| 54 | +- **Confounds.** Fisher stale-constituent effect (T2/T3) inflated early | |
| 55 | + index autocorrelation; largely gone in ETF prices (SPY trades fresh). | |
| 56 | +- **Decay.** The classic effect faded post-1990s; on ETFs (traded prices, | |
| 57 | + not stale indices) it was always weaker. | |
| 58 | +- **Correct test.** Lo–MacKinlay VR with heteroskedasticity-robust CIs / | |
| 59 | + block bootstrap; on BOTH the index (SPX) and the ETF (SPY) — divergence | |
| 60 | + measures the Fisher artifact directly. | |
| 61 | +- **MT exposure.** Low if q-grid pre-specified (q ∈ {2,5,10,30}). | |
| 62 | +- **Cost sensitivity.** n/a as stated (it's a statistical property claim). | |
| 63 | +- **Impl.** Ours + arch. ✅ | |
| 64 | +- **Limitation.** Regime breaks (2008, 2020) dominate long windows — | |
| 65 | + Bai–Perron sub-periods mandatory. | |
| 66 | +- **Honest new test.** SPX-vs-SPY VR divergence as a *quantified Fisher | |
| 67 | + artifact* 2008–2026 — methodological contribution. **Status: decayed; | |
| 68 | + index-level residual = likely-artifact.** | |
| 69 | + | |
| 70 | +## A3 — Lead-lag: large caps → small caps | |
| 71 | + | |
| 72 | +- **Claims.** Returns of large stocks lead small stocks (Lo–MacKinlay 1990); | |
| 73 | + the source of "contrarian" profits. | |
| 74 | +- **Granularity.** Daily and 1min both usable. ✅ | |
| 75 | +- **Confounds.** Non-synchronous trading (T3) — THE canonical confound | |
| 76 | + (Scholes–Williams); our expB measured SPY spuriously leading stale names | |
| 77 | + +0.047 at 1min. | |
| 78 | +- **Decay.** Chordia–Roll–Subrahmanyam: minute-scale predictability | |
| 79 | + arbitraged within 5–60 min by 2005; expect near-zero today in fresh pairs. | |
| 80 | +- **Correct test.** Lagged cross-correlation/Granger ONLY on both-fresh | |
| 81 | + subsamples, against the staleness-matched null (expB machinery); | |
| 82 | + Epps-aware at 1min. | |
| 83 | +- **MT exposure.** High (pairs explosion) — pre-specify a small pair set. | |
| 84 | +- **Cost sensitivity.** Extreme for any tradable interpretation. | |
| 85 | +- **Impl.** Ours (`stats/leadlag.py`, gated). ✅ | |
| 86 | +- **Limitation.** No trade timestamps within the bar; sub-minute lead-lag | |
| 87 | + invisible. | |
| 88 | +- **Honest new test.** Decay curve of large→small lead-lag 2000–2026 net of | |
| 89 | + the staleness null — with the *artifact share* reported alongside the | |
| 90 | + total. **Status: decayed (fresh pairs); the textbook effect is largely T3 | |
| 91 | + artifact in modern data.** | |
| 92 | + | |
| 93 | +## A4 — Futures/ETF/index lead-lag (price-discovery ordering) | |
| 94 | + | |
| 95 | +- **Claims.** Futures (ES) lead cash ETFs (SPY) which lead the index print | |
| 96 | + (SPX) at minute scale. | |
| 97 | +- **Granularity.** 1min is coarse for this (the true lead is seconds) but | |
| 98 | + the *ordering* may still be detectable. ⚠️ marginal. | |
| 99 | +- **Confounds.** T3/T7 (session semantics, index staleness — expB measured | |
| 100 | + SPX lagging SPY +0.065); futures splice choice (3 variants — testable). | |
| 101 | +- **Decay.** At seconds-scale this is permanent structure; at 1min it may be | |
| 102 | + fully arbitraged/invisible. | |
| 103 | +- **Correct test.** Both-fresh 1min xcorr ES↔SPY with staleness null; | |
| 104 | + robustness across the three futures adjustment variants. | |
| 105 | +- **MT exposure.** Low (one pre-specified triple). | |
| 106 | +- **Cost sensitivity.** n/a (structural claim, not a strategy). | |
| 107 | +- **Impl.** Ours. ✅ | |
| 108 | +- **Limitation.** 1min floor; ES data starts 2008. | |
| 109 | +- **Honest new test.** Is ANY ES→SPY lead detectable at 1min after the | |
| 110 | + staleness null, and is SPX→anything pure artifact? **Status: robust at | |
| 111 | + sub-second (literature); unknown at 1min on open data — genuine gap.** | |
| 112 | + | |
| 113 | +## A5 — Cross-asset information flow: crypto ↔ crypto-exposed equities | |
| 114 | + | |
| 115 | +- **Claims.** (Thin literature.) 24/7 crypto prices embed information that | |
| 116 | + equity prices can only reflect at the next open. | |
| 117 | +- **Granularity.** 1min crypto (24/7) + equity opens. ✅ — this is a | |
| 118 | + *structural* granularity advantage of our dataset. | |
| 119 | +- **Confounds.** Overnight-gap conventions (T4), selection of "exposed" | |
| 120 | + equities (must be pre-specified), regime dependence (crypto-equity beta | |
| 121 | + varies). | |
| 122 | +- **Decay.** Unknown — modern, underexplored on open data. | |
| 123 | +- **Correct test.** Does BTC's Friday-close→Monday-preopen return predict | |
| 124 | + the Monday opening gap of pre-specified crypto-exposed equities, vs a | |
| 125 | + placebo set and a permuted-weekend null? | |
| 126 | +- **MT exposure.** Low if the equity set and horizon are pre-registered. | |
| 127 | +- **Cost sensitivity.** Open-auction execution is costly; report the | |
| 128 | + frontier. | |
| 129 | +- **Impl.** Ours. ✅ | |
| 130 | +- **Limitation.** Short joint history (crypto-exposed equities mostly | |
| 131 | + 2018→); few independent weekends (~400). | |
| 132 | +- **Honest new test.** Exactly the above — one of the few places our data | |
| 133 | + can ask something not already answered. **Status: unknown/genuine gap.** | |
| 134 | + | |
| 135 | +## A6 — Weekend / Monday effect | |
| 136 | + | |
| 137 | +- **Claims.** Negative Monday returns (French 1980). | |
| 138 | +- **Granularity.** Daily. ✅ | |
| 139 | +- **Confounds.** Close conventions (T4); DST weeks (T7). | |
| 140 | +- **Decay.** The cleanest corpse: gone post-publication (Schwert 2003; | |
| 141 | + Marquering et al. 2006). | |
| 142 | +- **Correct test.** Day-of-week means with permuted-calendar null + SPA | |
| 143 | + against the full day-of-week universe (STW 2001 protocol). | |
| 144 | +- **MT exposure.** High by construction — the calendar space. | |
| 145 | +- **Cost sensitivity.** Any exploitation is high-turnover. | |
| 146 | +- **Impl.** Ours. ✅ | |
| 147 | +- **Honest new test.** Re-confirmation of absence on 2000–2026 open data, | |
| 148 | + published as a **negative control** for the calendar pipeline. | |
| 149 | + **Status: decayed.** | |
| 150 | + | |
| 151 | +## A7 — Turn-of-month | |
| 152 | + | |
| 153 | +- **Claims.** Returns concentrate around month boundaries (Ariel 1987; | |
| 154 | + Lakonishok–Smidt 1988). | |
| 155 | +- **Granularity.** Daily. ✅ | |
| 156 | +- **Confounds.** Month-boundary volume/flows are real mechanics | |
| 157 | + (pension/401k flows) — a *mechanism*, not an artifact; but overlap with | |
| 158 | + OpEx week and quarter-ends must be disentangled. | |
| 159 | +- **Decay.** The last survivor as of Marquering et al. 2006. Post-2006 | |
| 160 | + behavior on open data = open question. | |
| 161 | +- **Correct test.** Pre-specified window (−1..+3 trading days), permuted- | |
| 162 | + calendar null, SPA vs the full window universe, sub-period stability. | |
| 163 | +- **MT exposure.** Moderate — window choice is the researcher degree of | |
| 164 | + freedom; pre-register ONE window. | |
| 165 | +- **Cost sensitivity.** Low-frequency (12×/year) — the rare calendar effect | |
| 166 | + that could survive costs if real. | |
| 167 | +- **Impl.** Ours. ✅ | |
| 168 | +- **Honest new test.** Did the last survivor survive 2006–2026? | |
| 169 | + **Status: disputed — the most interesting calendar re-test.** | |
| 170 | + | |
| 171 | +## A8 — Intraday momentum (first → last half-hour) | |
| 172 | + | |
| 173 | +- **Claims.** First half-hour market return predicts last half-hour (Gao et | |
| 174 | + al. 2018); mechanism: gamma hedging (Baltussen et al. 2021). | |
| 175 | +- **Granularity.** 1min/30min SPY. ✅ perfect fit. | |
| 176 | +- **Confounds.** Overnight-gap inclusion choice; T4 close convention; spread | |
| 177 | + seasonality (U-shape) at both ends of the day. | |
| 178 | +- **Decay.** Published 2018 — post-publication window (2018–2026) is exactly | |
| 179 | + what open data can measure now. | |
| 180 | +- **Correct test.** Pre-registered replication (their exact spec) + OOS | |
| 181 | + post-2018 sample + gamma-state split using our options chains; DSR for the | |
| 182 | + spec search. | |
| 183 | +- **MT exposure.** Low if the published spec is frozen. | |
| 184 | +- **Cost sensitivity.** Two trades/day at the most liquid instrument's most | |
| 185 | + liquid hours — survivable in principle; measure. | |
| 186 | +- **Impl.** Ours. ✅ | |
| 187 | +- **Honest new test.** The cleanest possible *decay measurement*: published | |
| 188 | + effect, published spec, untouched post-publication data. | |
| 189 | + **Status: disputed (post-2018 fate unknown).** | |
| 190 | + | |
| 191 | +## A9 — Intraday U-shape (open/close vol & spread concentration) | |
| 192 | + | |
| 193 | +- **Claims.** Volatility, volume, spreads peak at open and close (Wood et | |
| 194 | + al. 1985). | |
| 195 | +- **Granularity.** 1min. ✅ | |
| 196 | +- **Confounds.** None — this one is *real microstructure*, and it is itself | |
| 197 | + a confounder for other intraday claims. | |
| 198 | +- **Decay.** Robust across decades. | |
| 199 | +- **Correct test.** Descriptive profile with bootstrap bands. | |
| 200 | +- **Cost sensitivity.** n/a (input to the cost model, not a strategy). | |
| 201 | +- **Honest contribution.** Measure the intraday profile of OUR bounce null | |
| 202 | + (taxonomy open item) so expE can subtract it. **Status: robust — use as | |
| 203 | + positive control + cost-model input.** | |
| 204 | + | |
| 205 | +## A10 — Overnight vs intraday return split | |
| 206 | + | |
| 207 | +- **Claims.** Equity returns accrue disproportionately overnight. | |
| 208 | +- **Granularity.** Daily open/close (+1min for convention checks). ✅ | |
| 209 | +- **Confounds.** T4 is *central*: auction close vs last bar changes overnight | |
| 210 | + returns mechanically; stale opens for illiquid names. | |
| 211 | +- **Decay.** Persistent in the literature but convention-sensitive — | |
| 212 | + disputed as economics vs plumbing. | |
| 213 | +- **Correct test.** Recompute under BOTH close conventions and both open | |
| 214 | + definitions (first 1min bar vs daily open field); effect must survive all | |
| 215 | + four. | |
| 216 | +- **MT exposure.** Low. | |
| 217 | +- **Cost sensitivity.** High (daily turnover). | |
| 218 | +- **Honest new test.** Quantify how much of the overnight premium is | |
| 219 | + convention-dependent on this dataset. **Status: disputed.** | |
| 220 | + | |
| 221 | +--- | |
| 222 | + | |
| 223 | +## Methods inventory (with macOS arm64 status) | |
| 224 | + | |
| 225 | +| Method | Use | Implementation | arm64 | | |
| 226 | +|---|---|---|---| | |
| 227 | +| Lo–MacKinlay VR + block bootstrap | Q1 scans | ours (§8.1-gated) + `arch.unitroot.VarianceRatio` cross-check | ✅ | | |
| 228 | +| Lo (1991) modified R/S | long-memory claims | to implement, gate on synthetic long-memory | ✅ | | |
| 229 | +| Lagged xcorr / Granger | Q2 | ours + `statsmodels grangercausalitytests` | ✅ | | |
| 230 | +| Roll / Corwin–Schultz / CHL / EDGE spreads | cost model, T1 null | ours (Roll); `bidask` package (EDGE, pure numpy) + own CS/CHL | ✅ | | |
| 231 | +| Moving-block / stationary bootstrap | all CIs | ours (Künsch); Politis–Romano to add for RC/SPA | ✅ | | |
| 232 | +| White RC / Hansen SPA / Romano–Wolf StepM | expF | no maintained OSS — implement ourselves, gate on synthetic | ✅ (numpy) | | |
| 233 | +| Benjamini–Hochberg FDR | scan triage | trivial; `statsmodels.stats.multitest` | ✅ | | |
| 234 | +| Deflated Sharpe / PBO-CSCV | expF/expH | implement from Bailey–López de Prado formulas | ✅ | | |
| 235 | +| Bai–Perron breaks | regime robustness | `statsmodels` (partial) / own dynamic-programming impl | ✅ | | |
| 236 | + | |
| 237 | +**Cross-cutting conclusion.** On modern liquid U.S. equities, the honest | |
| 238 | +prior for every *gross* short-horizon effect is decay toward zero, and for | |
| 239 | +every *net* effect, death by costs. The genuine opportunities on THIS data | |
| 240 | +are: (i) decay re-measurements with artifact shares reported (A1–A3, A8), | |
| 241 | +(ii) the structural questions our dataset uniquely reaches (A4 at 1min, A5 | |
| 242 | +cross-asset 24/7), (iii) the last-survivor calendar re-test (A7), and | |
| 243 | +(iv) methodological artifact quantifications (A2 Fisher share, A10 | |
| 244 | +convention share) — all publishable regardless of sign. | |
| 14 | 245 | |