Anomaly Atlas
What is real, what is artifact, and what is merely wishful
A systematic, pre-registered, fully reproducible scan of open high-frequency market data for mean-reversion, lead-lag, and calendar anomalies — every candidate pushed through artifact nulls, data-snooping corrections, transaction costs, and out-of-sample confirmation.
~68M
bars analyzed
372 → 0
rules searched → cost-ladder survivors
8/8
micro-experiments complete
29
synthetic-gate tests passing
22
hypotheses in the declared budget
2
Level-2 atlas findings
Overview
Anomaly Atlas asks which statistical regularities in open high-frequency market data are real — and which are artifacts. It scans 1-minute-to-daily bars across equities, ETFs, futures, indices, FX, crypto, and options chains from hfmarketdata.io (the sole data source, ~68M bars analyzed), then pushes every candidate through a three-layer validation ladder: measured artifact nulls → multiple-testing correction → transaction costs → out-of-sample confirmation.
The honesty doctrine is absolute: every candidate anomaly is an artifact until proven otherwise, in-sample results are never findings, and negative results are first-class. Universes, time splits (train / validation / sealed holdout), and a 22-hypothesis budget were frozen in writing before any scan; every detector must first pass a 29-test synthetic gate on series with known properties — a gate that caught two real bugs before they touched data.
The headline result is the negative: of 372 searched rules, 68 survive Hansen SPA data-snooping correction with paper Sharpes of 10–31 — and zero survive the EDGE transaction-cost model, a zero that replicates perfectly out-of-sample. A deliberately included known artifact (the SPX→SPY minute-scale "lead", actually index content staleness per Fisher 1966) sailed through statistical correction unharmed: statistical correction corrects for search, not for mechanism. Full write-up in P001 — The Artifact Frontier, Part I, where every figure regenerates live from committed results.
Key Features
Pre-registered everything
Universes, train/validation/sealed-holdout splits, and the 22-hypothesis budget were frozen in writing before any scan ran; the LOG is append-only.
Artifact nulls, measured
Effects are reported net of a variance-consistent bounce null, both-fresh print synchronization, and permuted calendars — a taxonomy T1–T7 with measured magnitudes.
Data-snooping corrections
Survivors face Benjamini–Hochberg FDR, White Reality Check, and Hansen SPA over the full searched universe — plus the Deflated Sharpe Ratio.
Costs kill what stats can't
The EDGE cost model at full half-spread per trade takes the 68 SPA survivors — paper Sharpes of 10–31, bounce harvesting — to exactly zero.
The synthetic gate
No detector touches real data before passing 29 tests on series with known properties: random walk → nothing, planted effects → recovered, pure bounce → flagged. It caught 2 real bugs.
One frozen cache
All data flows through a single cache-first API client indexed by a committed, SHA-256-checksummed manifest — it never silently refetches; two experiments ran with zero network requests.
How It Works
Freeze the search space
Universes, time splits, and the hypothesis budget are written down before any scan — the sealed holdout (2022→) stays closed.
Gate every detector
29 synthetic tests on series with known properties must pass before a detector sees real data — random walks yield nothing, planted effects are recovered, bounce is flagged.
Scan net of artifacts
Mean-reversion, lead-lag, and calendar scans report effects net of measured artifact nulls: bounce, staleness, synchronization, and calendar permutation.
Correct for the search
Everything that survives faces FDR, White RC, and Hansen SPA over the full 372-rule searched universe, then the EDGE cost sweep.
Open validation exactly once
The validation split is opened one time; findings enter the atlas only via tools/new_finding.py, with confidence levels and full provenance.
Tech Stack
Analysis
Data
Platform
Highlights
- F001 — nothing in the searched universe survives the full ladder: the negative finding is the project's headline, and it replicates out-of-sample
- F002 — the SPX→SPY minute-scale "lead" is index content staleness (Fisher 1966), measured live; it survives print synchronization AND SPA
- Statistical correction corrects for search, not for mechanism — a deliberately planted artifact passed SPA unharmed
- Median breakeven: surviving rules capture ~1% of one half-spread per trade — bounce harvesting, not economics
- Every result JSON embeds the hardware manifest, client instrumentation, and the SHA-256 of the data manifest
- Built on hfmarketdata.io, the author's own 26.5-billion-row open market-data platform
Explore Anomaly Atlas
What's real in HF market data — the full source is on GitHub.