SPB Git

spb/anomaly-atlas Public License

Systematic discovery & rigorous validation of statistical anomalies in open HF market data (hfmarketdata.io) — pre-registered, artifact-null-driven, fully reproducible. Live atlas: www.anomaly-atlas.io

Python 61.4% JavaScript 28.7% CSS 8.6% Shell 0.7% Makefile 0.5%
2.8 KB · 65 lines markdown
Rendered Raw Blame History
1---2project: anomaly-atlas3document: expC_reversion_scan/analysis4author: Simon-Pierre Boucher5contact: contact@spboucher.ai6data_source: hfmarketdata.io7created: 2026-08-128modified: 2026-08-129status: reviewed10---1112# Analysis — expC_reversion_scan1314Run: `results/expC_reversion_scan/20260812T062408Z/results.json` (35415requests, 10.5M rows, manifest embedded; protocol pre-specified; detectors16§8.1-gated). All conclusions Level 0.1718## 1. The scan's most valuable output is about the NULL1920The pre-specified bounce null (EDGE daily spread, pure Roll alternation,21`-s²/4/Var(r)`) predicts intraday AC1 of −3 to −27 — outside [−1, 1],22mathematically impossible. Diagnosis: the daily *effective* spread implies23far more bounce variance than 1–5min bar closes contain, because consecutive24intraday closes rarely flip bid/ask side (order-flow persistence). Lesson25(now taxonomy T1, methodology rule): **a spread-based bounce null must be26variance-consistent with the return series it is applied to** — otherwise27"excess" statistics are artifacts of the null itself. The 90 positive-excess28"survivors" are exactly that and are discarded.2930## 2. Corrected triage — MA(1)-consistent VR null3132Bounce (any lag-1-only process) implies VR(q) = 1 + 2·AC1·(1−1/q). Negative33`VR30 − VR30_MA1` = multi-lag reversion beyond ALL lag-1 effects — a34conservative null (it also absorbs any real lag-1 reversion). This35correction is a documented post-hoc null fix (LOG §12 entry), computed from36the same saved cells.3738**14 triage cells** pass FDR(vr30) with excess < −0.05:3940* **Daily 2008–2015 mega-cap/index reversal** — the broadest pattern:41  XOM AC1 −0.148 (excess_AC1 −0.133, FDR), JPM −0.104, SPY −0.079 (−0.055,42  FDR); median 1day VR30 excess −0.12/−0.16 across all cells. Consistent43  with crisis-regime multi-day reversal; likely regime-bound.44* **1min multi-lag reversion in 2014–2015 liquid names**: JPM (−0.243),45  XOM (−0.075), NVDA (−0.061) — 30-minute-horizon reversion visible in 1min46  bars, *not* explained by lag-1 bounce.47* Scattered 5min/30min cells (MSFT 2000–07 −0.108; illiquid names where48  staleness (T2) remains a live confound).4950## 3. Verdicts on the pre-registered clauses5152* **H01 (liquid intraday lag-1 reversion = 0 net of bounce): CONFIRMED**53  zero liquid negative-excess survivors in 2008–2015 intraday. The54  expected-negative held.55* **Decay clause: PARTIALLY FALSIFIED** — median VR30 excess is flat at 5min56  across sub-periods and only mildly shrinking at 1day. Recorded as-is; the57  clean monotone decay narrative does not hold inside train.5859## 4. Hand-off6061The 14 triage cells + the daily-reversal family go to expF (SPA vs62artifact-null benchmark, DSR with the 22-hypothesis budget) and expH63(validation split). Nothing here enters the atlas. expD should reuse the64MA(1)-consistency lesson for its cross-correlation nulls.65