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%
1---2project: anomaly-atlas3document: README4author: Simon-Pierre Boucher5contact: contact@spboucher.ai6data_source: hfmarketdata.io7created: 2026-08-128modified: 2026-08-129status: reviewed10---1112<p align="center">13 <a href="https://www.anomaly-atlas.io"><img src="web/public/logo.svg" alt="anomaly-atlas logo — atlas graticule with a circled outlier" width="96" height="96"></a>14</p>1516<h1 align="center">anomaly-atlas</h1>1718<p align="center"><em>An honest atlas of what is real, what is artifact, and what is merely wishful<br>in open high-frequency market data.</em></p>1920<p align="center">21 <a href="https://www.anomaly-atlas.io"><img alt="Live atlas" src="https://img.shields.io/badge/atlas-anomaly--atlas.io-2456c4"></a>22 <img alt="Experiments" src="https://img.shields.io/badge/micro--experiments-8%2F8%20complete-1e7a4d">23 <img alt="Synthetic gate" src="https://img.shields.io/badge/synthetic%20gate-29%20tests%20passing-1e7a4d">24 <img alt="Findings" src="https://img.shields.io/badge/atlas%20findings-2%20%C3%97%20Level%202-2456c4">25 <img alt="Hypothesis budget" src="https://img.shields.io/badge/hypothesis%20budget-22%20(declared)-8a5a1e">26 <img alt="Data" src="https://img.shields.io/badge/data-hfmarketdata.io%20(sole%20source)-4a3aa7">27 <img alt="Rows analyzed" src="https://img.shields.io/badge/bars%20analyzed-~68M-5d6167">28 <img alt="Platform" src="https://img.shields.io/badge/platform-macOS%20%2F%20Apple%20Silicon-1a1c20">29 <img alt="License" src="https://img.shields.io/badge/license-all%20rights%20reserved-8b1e1e">30</p>3132**Which statistical regularities in open high-frequency market data are real —33and which are artifacts?** A systematic, pre-registered, fully reproducible34research project that scans 1-minute-to-daily bars (equities, ETFs, futures,35indices, FX, crypto, options chains) for mean-reversion, lead-lag, and36calendar anomalies, then pushes every candidate through a three-layer37validation ladder: **measured artifact nulls → multiple-testing correction →38transaction costs → out-of-sample confirmation**.3940> **Honesty doctrine.** Every candidate anomaly is an artifact until proven41> otherwise. In-sample results are never findings. Negative results are42> first-class. Nothing here is investment advice or a trading system.4344## Headline results (train 2000–2016 → validation 2016–2021)4546| Validation layer | Survivors |47|---|---|48| Searched rule universe (2 signs × every scanned cell/pair/class) | 372 |49| Naive \|t\| > 1.96 | 232 (62 %) |50| Benjamini–Hochberg FDR 5 % | 226 (61 %) |51| Hansen SPA (data-snooping correction) | 68 (18 %) — *gross, artifact-laden* |52| EDGE cost model, full half-spread per trade | **0** |53| Out-of-sample (validation split, opened once) | **0** — the negative replicates |5455The SPA survivors carried paper Sharpes of 10–31 — bounce harvesting, not56economics — and a deliberately included known artifact (the SPX→SPY "lead")57passed statistical correction unharmed: **statistical correction corrects58for search, not for mechanism.** Median breakeven cost: the surviving rules59capture ~1 % of one half-spread per trade. Meanwhile the artifacts60themselves replicate out-of-sample perfectly.6162**First atlas entries (Level 2 — corrected, OOS-confirmed, robust):**6364- **F001** — *Nothing in the searched universe survives the full ladder* (negative finding, the project's headline).65- **F002** — *The SPX→SPY minute-scale "lead" is index content staleness* (Fisher 1966, measured live; survives print synchronization AND SPA).6667Full write-up: [**P001 — The Artifact Frontier, Part I**](https://www.anomaly-atlas.io/publications/P001_artifact_frontier_part1)68(every figure regenerates live from committed `results.json`).6970## What's in the box7172| Path | Contents |73|---|---|74| `research/` | Pre-registered charter artifacts: [data-source profile](research/data_source_profile.md), [artifact taxonomy T1–T7 with measured magnitudes](research/artifact_taxonomy.md), [52-source verified bibliography](research/bibliography.md), [22-hypothesis budget](research/research_gaps.md), append-only [LOG](research/LOG.md), [publications](research/publications/) |75| `src/anomaly_atlas/` | The library: single cache-first API client (never silently refetches; committed data manifest), gated statistics (VR, AC1, lead-lag, block/stationary bootstrap, BH-FDR, White RC, Hansen SPA, DSR), artifact detectors (Roll, EDGE, staleness, LOCF) |76| `benchmarks/synthetic/` | **The §8.1 gate** — 29 tests on series with known properties; no detector touches real data before passing (it caught 2 real bugs) |77| `experiments/micro/` | expA–expH, each with pre-registered `hypothesis.md` (falsification criterion + artifact nulls) and `analysis.md` |78| `atlas/` | Confidence-labeled findings (Level 0–3) with full provenance, created only via `tools/new_finding.py` |79| `web/` | The public platform (Node/Express, server-rendered SVG figures from results JSON, mobile-first, comments) |8081## Methodology in one paragraph8283Universes, time splits (train / validation / **sealed holdout 2022→**), and84the 22-hypothesis budget were frozen in writing before any scan. Every85detector passes a synthetic gate first (random walk → nothing; planted86effects → recovered; pure bounce → flagged artifact). Scans report effects87*net of measured artifact nulls* (variance-consistent bounce null, both-fresh88synchronization, permuted calendar). Survivors face White RC / Hansen SPA89over the full searched universe, then an EDGE-spread cost sweep, then the90validation split — opened exactly once. All data flows through one frozen91cache indexed by a committed manifest; two experiments ran with **zero92network requests**.9394## Reproduce9596```bash97make setup # venv + deps (macOS / Apple Silicon)98make test # 29 synthetic-gate + unit tests99make headers # author-header compliance100python experiments/micro/expA_data_reality/benchmark.py # then B..H in order101```102103Every result JSON embeds the hardware manifest, client instrumentation, and104attribution; every finding cites its commits and the SHA-256 of the data105manifest.106107## Author108109**Simon-Pierre Boucher** — <contact@spboucher.ai>110Data source: [hfmarketdata.io](https://www.hfmarketdata.io) (sole source) ·111Live atlas: [www.anomaly-atlas.io](https://www.anomaly-atlas.io)112113*Research on statistical properties of market data. Not investment advice,114not a trading system; past statistical regularity does not imply future115returns. All rights reserved.*116