Honesty doctrine. Every candidate anomaly is an artifact until proven otherwise; in-sample results are never findings; past statistical regularity does not imply future returns. This is research on statistical properties of market data — not investment advice, not a trading system.

Experiments / expH_oos_stability

expH_oos_stability

Out-of-sample stability: once-touched holdout and sub-period evaluation of survivors

View benchmark implementation (benchmark.py) →

Figures

Generated server-side from the latest committed results.json — never hand-typed.

train (2008–2015) validation (2016–2021)daily reversal family (median VR30 excess) candidate 'alpha' — collapses OOS daily reversal family (median VR30 excess) — train: -0.1431 daily reversal family (median VR30 excess) — validation: 0.0228 -0.1431 0.0228ES→SPY cross-serial corr (fresh, −1 min) candidate 'alpha' — collapses OOS ES→SPY cross-serial corr (fresh, −1 min) — train: -0.032 ES→SPY cross-serial corr (fresh, −1 min) — validation: 0.00289 -0.032 0.00289SPX→SPY staleness lead (+1 min) known artifact — persists OOS SPX→SPY staleness lead (+1 min) — train: 0.132 SPX→SPY staleness lead (+1 min) — validation: 0.08018 0.132 0.08018
expH — the validation split, opened once: every candidate "alpha" collapses toward zero out-of-sample while the known staleness artifact persists. Vertical tick = zero (each row has its own scale). Run 20260812T072518Z, regenerated from results.json.

Hypothesis

documentexpH_oos_stability/hypothesisauthorSimon-Pierre BouchercreatedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)modifiedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)statusfinal

Hypothesis — expH_oos_stability#

Pre-specified 2026-08-12 before any validation data was touched. The VALIDATION split (2016-01-01 → 2022-01-01, frozen in data/universe.py before the first scan) is opened HERE for the first time. The HOLDOUT (2022→) stays sealed — it is touched once, only to confirm whatever survives this experiment.

Hypothesis
  Four pre-registered questions on the untouched validation split:
  (Q-a) CKX 1day — the lone kappa=0.25 cost survivor — does NOT replicate
        (skeptical prior: sparse-name estimation artifact).
  (Q-b) The NEGATIVE finding replicates: zero intraday rules from the
        expG pool have positive net mean at kappa=0.25 on validation.
  (Q-c) ES->SPY basis effect (fresh corr(SPY_{t-1}, ES_t) = -0.032 in
        train) replicates in sign with a small day-block bootstrap p,
        and remains splice-invariant.
  (Q-d) The daily 2008-2015 mega-cap reversal family was crisis-regime:
        its VR30 excess and excess AC1 SHRINK toward zero on validation.

Falsification criterion
  (Q-a) falsified (CKX real) if net@0.25 > 0 with bootstrap CI excluding
  0 on validation AND in both validation sub-periods. (Q-b) falsified if
  ANY intraday rule has net@0.25 CI above 0. (Q-c) falsified if the sign
  flips or splices disagree. (Q-d) falsified if the family's median VR30
  excess is as negative or more negative than 2008-2015 (regime story
  wrong -> persistent structure, escalate to holdout).

Artifact null(s)
  Inherited from the scans: EDGE-based costs (expG model), MA(1)-consistent
  VR null (expC), both-fresh synchronization (expD). No new nulls.

Method (pre-declared)
  Window: VALIDATION 2016-2021; sub-periods 2016-2018 / 2019-2021.
  (a,b) The expG pool (31 rules, rebuilt mechanically) re-evaluated with
  identical machinery: gross, kappa*, net@{0.25, 1.0} with 21-day-block
  bootstrap CIs (n=300, seed 42).
  (c) expD machinery on 2016-2021: ES(3 splices)->SPY and SPX->SPY fresh
  xcorr +/-3, day-block bootstrap p (n=200, seed 42).
  (d) Liquid-12 daily cells on validation: AC1, VR30, MA(1) excess, EDGE
  excess AC1 — side by side with their 2008-2015 train values.
  Everything through the cached client; results sanitized JSON.

Result
  Run 20260812T072518Z (418 requests, 18.8M rows — the validation window's
  first and only download). (Q-b) REPLICATES: zero rules net-positive with
  CI>0 at kappa=1.0; at kappa=0.25 only CKX. (Q-a) CKX fails its
  pre-registered robustness clause: validation overall net@0.25 = +16.3
  bp/day CI [1.4, 26.5], BUT 2019-2021 sub-period CI covers zero
  ([-19.5, +22.0]) and kappa* decays 0.445 -> 0.263 within validation —
  NOT confirmed, NOT escalated to the holdout. (Q-c) ES->SPY FAILS to
  replicate: fresh corr = +0.003 (p=0.68), sign flipped, all three splices
  agree. (Q-d) regime story CONFIRMED: the daily family's median VR30
  excess goes -0.143 (train 2008-15) -> +0.023 (validation); the crisis
  reversal vanished OOS (a few single names retain small negative excess
  AC1: MSFT, NVDA, QQQ — noted for the record, not promoted).

Interpretation
  The full ladder closes with the charter's anticipated honest outcome:
  NOTHING in the searched universe survives artifact nulls + search
  correction + costs + out-of-sample validation. The negative finding
  ("short-horizon anomalies in open bar data do not survive costs, and the
  gross survivors do not replicate") is itself corrected, OOS-confirmed
  and robust -> Level 2; it becomes the atlas's first entry, together with
  the SPX->SPY artifact demonstration (present in train +0.132 AND
  validation +0.080 — the artifact replicates even though the "anomalies"
  do not, which is exactly the point). The sealed holdout (2022->) is NOT
  spent on a dead pool; it remains sealed for any future Level-2 claim.

Next experiment
  Atlas entries (via tools/new_finding.py) for whatever this settles;
  anything that PASSES here goes to the sealed holdout exactly once.

Analysis

documentexpH_oos_stability/analysisauthorSimon-Pierre BouchercreatedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)modifiedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)statusreviewed

Analysis — expH_oos_stability#

Run: results/expH_oos_stability/20260812T072518Z/results.json. The validation split (2016-2021), frozen before the first scan, was opened here for the first time (418 requests, 18.8M rows). The holdout (2022→) remains sealed. All four pre-registered questions resolved:

Question Train Validation Verdict
Q-b nothing survives κ=1 0 survivors 0 survivors negative finding replicates
Q-a CKX 1day net@0.25 κ*=0.28 +16.3 bp/d CI [1.4, 26.5], but 2019-21 CI [−19.5, +22.0] fails robustness clause — not confirmed
Q-c ES→SPY fresh corr −0.032 (FDR, splice-invariant) +0.003 (p=0.68) does not replicate
Q-d daily reversal family VR30 excess −0.143 +0.023 crisis-regime story confirmed

Reading#

  1. The ladder closes on the honest outcome. Artifact nulls → search correction → costs → OOS: nothing survives all four. This is the charter's anticipated result ("a well-documented 'it's all artifacts' is a success"), now demonstrated rather than assumed — and it becomes the atlas's first Level-2 entry.
  2. CKX was exactly what it looked like. The lone cost survivor decays within validation (κ* 0.445 → 0.263), fails its pre-registered two-sub-period clause, and lives in a name whose capacity rounds to zero. Not escalated; the sealed holdout is not spent on it.
  3. ES→SPY is a lesson in regime-fragility: a splice-invariant, FDR-significant train effect that flips sign OOS. Splice-invariance guards against one artifact — it says nothing about stationarity.
  4. The artifact replicates even though the anomalies do not. SPY still leads SPX on validation (+0.080 vs +0.132 in train) — content staleness is structural. That contrast (artifacts stable, "alphas" not) is the project's cleanest single sentence.

Hand-off#

Two atlas entries created via tools/new_finding.py (F001 negative finding, Level 2; F002 SPX artifact demonstration, Level 2). Candidate 02 (turn-of-month) and candidate 01 (intraday momentum) keep their protocols for future work; the holdout stays sealed until a claim earns it.

README

documentexpH_oos_stability/READMEauthorSimon-Pierre BouchercreatedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)statusdraft

expH_oos_stability#

Out-of-sample stability: once-touched holdout and sub-period evaluation of survivors

Status: completed 2026-08-12 — validation split opened once: negative finding replicates (0 net survivors at kappa=1), CKX fails robustness, ES->SPY does not replicate, daily reversal was crisis-regime. First atlas entries issued.

Result runs