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%
-
expH: validation ladder closes + first atlas entries + Publications tab
…
expH (validation 2016-2021, opened once; holdout stays sealed): - negative finding REPLICATES: 0 net survivors at full half-spread OOS - CKX fails pre-registered sub-period clause (kappa* 0.445->0.263) - ES->SPY flips sign OOS (+0.003, p=0.68) — regime-fragile - daily reversal family: VR30 excess -0.143 -> +0.023 (crisis-regime) - figure: alphas collapse OOS, the SPX staleness artifact persists Atlas (via new_finding.py, Level 2 each): - F001 nothing in the searched universe survives the full ladder - F002 SPX->SPY lead is index content staleness (Fisher), survives SPA Publications: new tab + P001 'The Artifact Frontier, Part I' — formal write-up of expA->expG with live {{figure:...}} tokens rendered from committed results.json Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> -
expG: cost frontier — the double-filtered pool dies at a fraction of the spread
…
- net = gross - kappa*(EDGE/2)*turnover swept over kappa in {0,.1,.25,.5,1,2} - median breakeven kappa* = 0.0114 (max 0.28): the median rule captures ~1% of one half-spread per trade; ES->SPY kappa*=0.0028 splice-invariant - survivors: 3 at kappa=0.1 (all sparse names), 1 at 0.25 (CKX 1day, skeptical prior), 0 at 0.5+; zero intraday at kappa=1 — pre-registered falsification did not trigger; three-layer doctrine closes - results sanitized (NaN -> null: Python json emits bare NaN, invalid for every other consumer); kappa* log-scale figure with cost reference lines Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> -
expF: survival battery — statistical correction is not artifact correction
…
- 372 signed rules from the full C/D/E searched space; funnel: 232 naive (62%) -> 226 FDR (61%) -> 68 SPA step-1 (18%), all GROSS - survivors carry absurd Sharpes (10-31 ann.): bounce harvesting + frictionless timing; the KNOWN SPX->SPY artifact passes SPA (canary) — artifact nulls, search correction and costs are all three required - expE calendar block: zero survivors (pipeline tripwire did not fire) - 12/14 artifact-adjusted expC triage cells + ES->SPY form the double-filtered pool for expG - new stats/spa.py (Politis-Romano bootstrap, White RC, Hansen SPA, StepM step-1, DSR) with 4-gate synthetic validation; funnel figure - 0 network requests: entire battery served by the frozen cache Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
fix: expE lint (semicolons) + duplicated Next-experiment block
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
expD: lead-lag scan — decay on synchronized pairs, splice-invariant ES-SPY, SPX content staleness
…
- 2006-07: real both-fresh diffusion (SPY->sectors +0.07..+0.148 FDR); 2014-15: collapse to tiny residuals (a few FDR survivors -> expF; H08 expected-negative clause formally falsified, recorded) - ES->SPY -0.032 both-fresh, identical across all 3 splice variants - SPX->SPY +0.132 both-fresh (fresh_frac .996): content staleness beats print synchronization — H11 confirmed at scan level - T3 amended: LOCF artifact non-monotone in staleness (inflates mid-stale, dilutes ultra-stale) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
expC: reversion scan — null mis-specification caught, corrected triage
…
- pre-specified EDGE+Roll intraday bounce null predicts impossible AC1 (-3..-27): discarded its positive-excess family as null artifact; variance-consistency rule adopted (taxonomy T1 amended) - corrected MA(1)-consistent VR triage: 14 Level-0 cells (JPM 1min -0.243, MSFT 5min 2000-07...) + daily 2008-15 mega-cap/index reversal family (XOM -0.133 FDR, SPY -0.055 FDR) - H01 confirmed (liquid intraday lag-1 reversion = 0 net of bounce); decay clause partially falsified — recorded as-is - new: stats/multiple_testing.py (BH-FDR, bootstrap p), EDGE wrapper, pre-specified splits in data/universe.py, 6 new gate tests Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
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>
-
Phase 1: literature sweep — 6 theme notes + 52-source verified bibliography
…
All citations verified against OpenAlex (DOI/venue/year, accessed 2026-08-12). Priors adopted: McLean-Pontiff decay base rate, STW calendar reality check, t>=3 hurdle, EDGE spread estimator for expG. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
expB: artifact baselines measured (after §8.1 synthetic gate)
…
- synthetic generators with known ground truth + 11-test gate; the gate caught a real VR estimator bug (double division by q) before real data - stats: reversion (VR/AC1/half-life), leadlag, block bootstrap; validation: Roll spread, excess reversion, staleness, LOCF - expB (pre-specified protocol): 31 tickers Q1 2024 RTH 1min — bounce AC1 -0.009/-0.051/-0.232 by staleness tercile, VR30 down to 0.55 with zero economics, SPY spuriously leads stale names (+0.047 at +1min, Spearman +0.43), SPX lags SPY by 1min (+0.065) - artifact_taxonomy.md: 7 entries T1-T7 with measured magnitudes Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Phase 0.5: Experiment A (data reality check) + hf_client implementation
…
- hf_client.py: cache-first single API client (throttle, 429/5xx back-off, 50k-row pagination, committed data-manifest index) + 5 offline unit tests - expA benchmark: 8 probe families, results with embedded hardware manifest - research/data_source_profile.md (reviewed): coverage, timestamps ET, session structure, daily-vs-1min semantics, adjustment re-basing, limits - LOG entry; expA hypothesis/analysis finalized Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Bootstrap: full research skeleton (CLAUDE.md §3, localvm-research layout) + web platform
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>