That's not a typo. I put every market anomaly, folk strategy and named factor people swear by through the same brutal protocol, and publish the verdict: edge or mirage.
1012 tested · 10 survive · 116 real signals · 799 mirages
Most are mirages. The honest write-up of why is the point. The nine survivors don't forecast anything — three manage risk, three harvest a premium or a mechanical identity, and three are simply costs you stop paying.
Built by someone who ran the real thing — a fully systematic global-macro book scaled from sub-$100M to $9B+ in monthly traded notional — so every idea is judged on the two questions most repos skip: is the signal real? and does it survive real execution and scale?
Every idea goes through the same protocol and earns two stamps, so results are comparable:
| Signal — is the effect statistically real? | |
| Tradability — does it survive costs, capacity & scale? |
Robust inference (Newey-West / Lo SEs, bootstrap CIs, White Reality Check for data-snooping), an honest alpha-vs-beta split, and a square-root market-impact capacity test — the full house style is written up in METHODOLOGY.md.
The whole bench on one grid — every study is a numbered chip, sorted by its two stamps. Almost everything ends up bottom-right; six chips are green — and not one of them is a forecaster.
▶ Explore the live map — the same grid, but zoomable: click any chip to open its study, search by name or claim, and filter the whole bench by verdict. (The static image above never gets less readable; the interactive page is where it scales.)
The counts, the mortality by family of idea, and the five lessons the bench keeps teaching are in What 962 teardowns taught us.
python -m venv .venv
# Windows: .venv\Scripts\Activate.ps1 | *nix: source .venv/bin/activate
pip install -r requirements.txt
pytest -q # the engine's test-suite
python studies/01-overnight-anomaly/examples/run_synthetic_demo.py # offline, no networkThen open studies/01-overnight-anomaly/ — start with the notebook for the curious, or read the working paper.
To verify the published numbers byte-for-byte (data caches, fingerprints, release bundle), see docs/reproducibility.md.
The engine — quantlab/ (a small, tested, reusable toolkit that powers every study)
| Module | Role |
|---|---|
decompose.py |
Exact overnight/intraday/close-close return decomposition + Sharpe summary. |
data.py |
Yahoo fetch + parquet cache; split/total-return/raw adjustment modes. |
diagnostics.py |
Critique layer (offline): compounding, split-artefact injector/detector, synthetic markets. |
backtest.py |
Cost-aware backtest, break-even cost, cost sweep. |
stats.py |
Bootstrap Sharpe CIs, alpha-vs-beta (gap-risk) decomposition. |
analytics.py |
HAC & Lo (2002) inference, calendar-time normalization, rolling-Sharpe decay, market-impact capacity. |
universe.py |
Firm-level cross-section across an index (S&P 500 breadth). |
simulate.py |
Adversarial steelman of a strategy/manipulator P&L vs capital. |
bayes.py |
Bayesian hypothesis posteriors + White (2000) Reality Check. |
plots.py |
Decomposition / grid plots. |
repro.py |
Reproducibility stamp: pin an as-of date + content fingerprint so headline numbers reproduce. |
brokers/ |
Swappable BrokerBase + MT5 template (dry_run=True). |
Open-Alpha-Lab/
├── quantlab/ # the reusable research engine
├── tests/ # deterministic test-suite (CI on 3.10–3.12)
├── studies/ # one folder per study: notebooks, code, data, docs
└── pyproject.toml · CITATION.cff · LICENSE
A CITATION.cff is provided — use GitHub's "Cite this repository" button.
Built by Guillain d'Erceville — production systems, trading & market-data plumbing, and a habit of publishing the dead-ends, not just the wins.
Not investment advice. Research & education only. See LICENSE.
