As of 2026-07-25. Sources of record: bot/runs/registry.db (execution-level runs),
bot/runs/experiments.db (scans/measurements, 137/2000 hypotheses), preregistrations in
bot/preregistrations/, scan declarations in engine/scans/.
Grid-searched on in-sample windows, evaluated only on stitched out-of-sample windows
(walkforward.py). Used whenever a spec has tunable parameters.
| Run | Strategy | Instrument | Verdict |
|---|---|---|---|
| 1 | donchian_external | GBPUSD | FAIL |
| 2 | london_breakout | GBPUSD | FAIL |
| 3 | dual_thrust | EURUSD | FAIL |
| 5 | expansion (mentor v1) | GBPUSD | FAIL |
| 8 | expansion_v2 | GBPUSD | FAIL |
| 9 | expansion_v2 | EURUSD | FAIL |
| 16 | fable_mentor_internal | XAUUSD | FAIL (net; gross signal held) |
| 18 | fable_mentor_internal_btc | BTCUSD (normalized index) | FAIL (signal inverted) |
Every constant inherited from a prior declared scan and frozen in a prereg BEFORE the run; sequential simulation with stops/costs; coin-flip control on identical events. Walk-forward exists to stop fitted parameters leaking; with zero fitted parameters there is nothing to leak — the residual risk is hypothesis selection, handled by Kind 4.
| Run | Strategy | Split | Verdict |
|---|---|---|---|
| 17 | mentor_btc_v1 (screenshot-derived arms) | Research | FAIL (H1 refuted, n=11,836) |
| 19 | disp_follow_btc_v1 | Research | BAR MET (+0.28R net A2) |
| 21 | streak_follow_btc_v1 | Research | BAR MET (+0.107R net) |
Frozen spec, never-scanned data, pre-registered criteria, machinery guard (bit-exact reproduction of the research run first), one shot, fail-is-final.
| Run | Strategy | Split | Verdict |
|---|---|---|---|
| 20 | disp_follow_btc_v1 | Validation 2023-01→2025-06 (look 1/10) | VALIDATION FAIL |
Declared-then-run through Edge Lab (or its bespoke predecessor). No fills, stops, or costs — pure "does the market move after X" with unconditional, frequency-matched-random, label-shuffle, and ISO-week block-bootstrap nulls. All on the Research split.
| Ledger | Scan | Instrument | Verdict |
|---|---|---|---|
| 2 | displacement continuation | BTCUSD | STRONG (later Validation-failed at execution) |
| 3 | displacement replication | XAUUSD 2.5y | underpowered |
| 4 | displacement replication | GBPUSD | not comparable |
| 5 | displacement replication | XAUUSD 10y | REFUTED (sign inverts) |
| 6 | displacement replication | ETHUSDT | CONFIRMED (crypto-class) |
| 8 | level-reaction (R7) | BTCUSD | NULL all 16 cells |
| 9 | H4-open ignition (R3) | BTCUSD | FAIL (anchored moves reverse) |
| 10 | rhythm falsification (R4) | BTCUSD | survived narrowly (up-streak≥8 only) |
| 11 | session structure | BTCUSD | Europe vol-elevated; window NOT an amplifier |
| 12 | up-streak replication | ETHUSDT | REPLICATED (all 4 criteria) |
| Ledger | Test | Verdict |
|---|---|---|
| 7 | B4 fit: mentor's stops vs R7 levels (n=20, 10k-permutation null) | NOT CONFIRMED |
| Artifact | Test | Result |
|---|---|---|
| reports/montecarlo/trades-A2-mc.* | Block-bootstrap MC on run 19 trades | machinery demo |
| reports/montecarlo/trades-A1-mc.* | Block-bootstrap MC on run 21 trades | p95 DD 68R; median path 40% under water |
Protections in force: pre-registration before every run (constants frozen, one run per registration); zero-free-parameter execution specs; every hypothesis logged (137/2000) with project-wide BH-FDR; four-null batteries; coin-flip controls on identical events; dose-response/neighborhood checks instead of single-point thresholds; two-instrument replication requirements; the ex-ante cost kill rule; and the Research/Validation/Vault split with a 10-look lifetime budget enforced in code.
Residual risk, stated plainly: research-split results are still selected — the streak finding emerged from scanning that same data, so its +0.107R is best read as an upper bound. That selection effect is exactly what the Validation split exists to catch — and run 20 proves the catch works: displacement looked at least as good on research and failed the holdout decisively. Nothing in this project is called an edge until it survives a Validation look, and nothing is called deployable until Vault + paper. By design, the honest answer to "did we overfit?" is: the research numbers probably flatter; the process assumes so; the holdout decides.