SPB Git forge

spb/anomaly-atlas

Public License ★ Pinned

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

18commits 1branches 0releases
396.0 KBsize
maindefault branch
21 days agolast push
Python 61.4% JavaScript 28.7% CSS 8.6% Shell 0.7% Makefile 0.5%

page 1

  1. Fri, Sep 4, 2026 1

  2. Wed, Aug 12, 2026 17

    1. README: centered logo header
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +8 −2
    2. README: English rewrite with metric badges, headline results, author info
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +82 −38
    3. expH: validation ladder closes + first atlas entries + Publications tab
      …
      expH (validation 2016-2021, opened once; holdout stays sealed):
      - negative finding REPLICATES: 0 net survivors at full half-spread OOS
      - CKX fails pre-registered sub-period clause (kappa* 0.445->0.263)
      - ES->SPY flips sign OOS (+0.003, p=0.68) — regime-fragile
      - daily reversal family: VR30 excess -0.143 -> +0.023 (crisis-regime)
      - figure: alphas collapse OOS, the SPX staleness artifact persists
      
      Atlas (via new_finding.py, Level 2 each):
      - F001 nothing in the searched universe survives the full ladder
      - F002 SPX->SPY lead is index content staleness (Fisher), survives SPA
      
      Publications: new tab + P001 'The Artifact Frontier, Part I' — formal
      write-up of expA->expG with live {{figure:...}} tokens rendered from
      committed results.json
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 18 files +3,565 −28
    4. expG: cost frontier — the double-filtered pool dies at a fraction of the spread
      …
      - net = gross - kappa*(EDGE/2)*turnover swept over kappa in {0,.1,.25,.5,1,2}
      - median breakeven kappa* = 0.0114 (max 0.28): the median rule captures ~1%
        of one half-spread per trade; ES->SPY kappa*=0.0028 splice-invariant
      - survivors: 3 at kappa=0.1 (all sparse names), 1 at 0.25 (CKX 1day,
        skeptical prior), 0 at 0.5+; zero intraday at kappa=1 — pre-registered
        falsification did not trigger; three-layer doctrine closes
      - results sanitized (NaN -> null: Python json emits bare NaN, invalid for
        every other consumer); kappa* log-scale figure with cost reference lines
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 8 files +2,368 −28
    5. expF: survival battery — statistical correction is not artifact correction
      …
      - 372 signed rules from the full C/D/E searched space; funnel:
        232 naive (62%) -> 226 FDR (61%) -> 68 SPA step-1 (18%), all GROSS
      - survivors carry absurd Sharpes (10-31 ann.): bounce harvesting +
        frictionless timing; the KNOWN SPX->SPY artifact passes SPA (canary) —
        artifact nulls, search correction and costs are all three required
      - expE calendar block: zero survivors (pipeline tripwire did not fire)
      - 12/14 artifact-adjusted expC triage cells + ES->SPY form the
        double-filtered pool for expG
      - new stats/spa.py (Politis-Romano bootstrap, White RC, Hansen SPA,
        StepM step-1, DSR) with 4-gate synthetic validation; funnel figure
      - 0 network requests: entire battery served by the frozen cache
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 9 files +987 −27
    6. fix: expE lint (semicolons) + duplicated Next-experiment block
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 9 files +698 −32
    7. lint: wrap long line in expD benchmark
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +3 −2
    8. expD: lead-lag scan — decay on synchronized pairs, splice-invariant ES-SPY, SPX content staleness
      …
      - 2006-07: real both-fresh diffusion (SPY->sectors +0.07..+0.148 FDR);
        2014-15: collapse to tiny residuals (a few FDR survivors -> expF;
        H08 expected-negative clause formally falsified, recorded)
      - ES->SPY -0.032 both-fresh, identical across all 3 splice variants
      - SPX->SPY +0.132 both-fresh (fresh_frac .996): content staleness beats
        print synchronization — H11 confirmed at scan level
      - T3 amended: LOCF artifact non-monotone in staleness (inflates mid-stale,
        dilutes ultra-stale)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 6 files +2,085 −5
    9. Web: server-rendered SVG figures from results.json (dataviz-validated)
      …
      - web/lib/charts.js: expB staleness scatters, expC VR30-excess strip plot
        (FDR emphasis), expD raw-vs-fresh dumbbells; palette validated
        (validate_palette.js all-pairs PASS on card surface), native tooltips,
        ink-token text, selective direct labels
      - figures injected on experiment pages + latest figure on home
      - rendered and eyeballed (rsvg): fixed tick-label collision
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 7 files +771 −26
    10. expC: reversion scan — null mis-specification caught, corrected triage
      …
      - pre-specified EDGE+Roll intraday bounce null predicts impossible AC1
        (-3..-27): discarded its positive-excess family as null artifact;
        variance-consistency rule adopted (taxonomy T1 amended)
      - corrected MA(1)-consistent VR triage: 14 Level-0 cells (JPM 1min -0.243,
        MSFT 5min 2000-07...) + daily 2008-15 mega-cap/index reversal family
        (XOM -0.133 FDR, SPY -0.055 FDR)
      - H01 confirmed (liquid intraday lag-1 reversion = 0 net of bounce);
        decay clause partially falsified — recorded as-is
      - new: stats/multiple_testing.py (BH-FDR, bootstrap p), EDGE wrapper,
        pre-specified splits in data/universe.py, 6 new gate tests
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 12 files +4,674 −29
    11. Phases 2-4: state of the art, 22-hypothesis research gaps, candidate ranking
      …
      - state_of_the_art.md: 10 anomaly families (charter §5 template) with
        epistemic status; methods inventory with macOS arm64 availability
      - research_gaps.md: H01-H22, each with constructable artifact null;
        multiple-testing budget declared (22) for expF
      - candidate_ranking.md: 10-axis scoring; selected C01=H15 intraday momentum
        decay, C02=H13 turn-of-month, C03=H11+H03 index-artifact decomposition,
        C04=H10 crypto-weekend gap; reserve H09
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 7 files +540 −17
    12. Web platform v2: editorial redesign, mobile-first + CSS-only menu, comments, SVG logo
      …
      - style.css rewritten: Fraunces/Inter/JetBrains Mono, warm paper palette,
        responsive grids, overflow-safe tables/code, light hljs theme
      - CSS-only hamburger menu <=820px (opaque panel, no backdrop-filter)
      - /comments: public guestbook — honeypot + 30s/IP throttle + HTML escaping,
        storage in ~/.anomaly-atlas/comments.json (survives rsync --delete)
      - logo.svg: atlas graticule + data line + circled outlier; favicon + brand
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 4 files +513 −252
    13. Phase 1: literature sweep — 6 theme notes + 52-source verified bibliography
      …
      All citations verified against OpenAlex (DOI/venue/year, accessed
      2026-08-12). Priors adopted: McLean-Pontiff decay base rate, STW calendar
      reality check, t>=3 hurdle, EDGE spread estimator for expG.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 9 files +440 −3
    14. expB: artifact baselines measured (after §8.1 synthetic gate)
      …
      - synthetic generators with known ground truth + 11-test gate; the gate
        caught a real VR estimator bug (double division by q) before real data
      - stats: reversion (VR/AC1/half-life), leadlag, block bootstrap;
        validation: Roll spread, excess reversion, staleness, LOCF
      - expB (pre-specified protocol): 31 tickers Q1 2024 RTH 1min —
        bounce AC1 -0.009/-0.051/-0.232 by staleness tercile, VR30 down to 0.55
        with zero economics, SPY spuriously leads stale names (+0.047 at +1min,
        Spearman +0.43), SPX lags SPY by 1min (+0.065)
      - artifact_taxonomy.md: 7 entries T1-T7 with measured magnitudes
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 14 files +2,024 −42
    15. Phase 0.5: Experiment A (data reality check) + hf_client implementation
      …
      - hf_client.py: cache-first single API client (throttle, 429/5xx back-off,
        50k-row pagination, committed data-manifest index) + 5 offline unit tests
      - expA benchmark: 8 probe families, results with embedded hardware manifest
      - research/data_source_profile.md (reviewed): coverage, timestamps ET,
        session structure, daily-vs-1min semantics, adjustment re-basing, limits
      - LOG entry; expA hypothesis/analysis finalized
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 23 files +2,277 −62
    16. chmod +x web/sync-content.sh
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file
    17. Bootstrap: full research skeleton (CLAUDE.md §3, localvm-research layout) + web platform
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 90 files +4,088