diff --git a/.gitignore b/.gitignore index 2d776d9..0d70f55 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ backtest_snapshots/ # Rebuildable pickle caches are local accelerators, not decision evidence. reports/*.pkl reports/*.pk1 +reports/.cache/ diff --git a/docs/research/prod-book-universe-horizon.md b/docs/research/prod-book-universe-horizon.md index b7110b0..8cef4a1 100644 --- a/docs/research/prod-book-universe-horizon.md +++ b/docs/research/prod-book-universe-horizon.md @@ -71,18 +71,57 @@ or depth changes the risk story. ## Results -Generated: `2026-07-19T14:07:37.458454` +Generated: `2026-07-19T14:07:37` · artifact +`reports/prod-book-universe-horizon-20260719-140737.json` +Snapshot: MacBook deep `research.sqlite` (506 prod + breadth prices; 2.39M raw +GTL candidates). Strategy knobs = live production (residual 80, 80/20 high-vol +rank, ATR trail 3×, hold 30, gate-reset, `fill_mode=close`). -| arm | universe | entry start | Sharpe | SE | CAGR % | max DD % | trades | -|---|---|---|---:|---:|---:|---:|---:| -| A_prod_4y_505 | prod_505 | 2022-07-01 | 1.32 | 0.49 | 31.8 | 18.9 | 374 | -| B_prod_4y_505_liquid | prod_plus_liquid | 2022-07-01 | 0.14 | 0.499 | -1.8 | 55.3 | 706 | -| C_prod_2016_505 | prod_505 | 2016-07-01 | 0.88 | 0.314 | 16.7 | 24.4 | 763 | -| D_prod_2016_505_liquid | prod_plus_liquid | 2016-07-01 | -0.06 | 0.316 | -7.0 | 73.9 | 1567 | +> Survivorship: today's constituents backfilled. **Compare arms relatively.** +> Absolute deep CAGR/Sharpe are not deployable forecasts. -Full report: `reports/prod-book-universe-horizon-20260719-140737.json` +| arm | universe | entries from | Sharpe | SE | CAGR % | max DD % | total ret % | trades | win % | vs SPY | +|---|---|---|---:|---:|---:|---:|---:|---:|---:|---:| +| **A** | 505 only | 2022-07-01 | **1.32** | 0.49 | **31.8** | **18.9** | +205 | 374 | 35.6 | +96.5 | +| **B** | 505 + liquid 1500 | 2022-07-01 | 0.14 | 0.50 | −1.8 | 55.3 | −7 | 706 | 29.3 | +95.0 | +| **C** | 505 only | 2016-07-01 | **0.88** | 0.31 | **16.7** | **24.4** | +369 | 763 | 36.7 | +257 | +| **D** | 505 + liquid 1500 | 2016-07-01 | −0.06 | 0.32 | −7.0 | 73.9 | −52 | 1567 | 28.0 | +254 | + +Qualified longs: A 1 448 · B 6 587 · C 2 450 · D 11 551. + +### Read (relative only) + +1. **Same strategy, broader liquid universe kills the book** (A→B and C→D). + Sharpe collapses; DD roughly triples; win rate drops ~6–8pp; trade count + ~doubles. This matches earlier breadth IC work: the production residual + + high-vol package is a **large-cap / prod-universe** edge, not a + “more names = better” edge. + +2. **Longer history on 505 stays positive but softer** (A→C). Sharpe 1.32 → 0.88, + CAGR 32% → 17%, DD 19% → 24%. Still well above the liquid-breadth arms. + Levels are optimistic (survivorship); the useful message is “edge does not + vanish when 2018/2020 are included,” not “expect 17% CAGR forever.” + +3. **Arm A vs older Phase‑A / short-window controls** (~Sharpe 1.7–2.1): this + matrix re-ranked on deep research.sqlite with a fixed entry start; numbers + need not match prior reports row-for-row. Use **this table for A–D + comparisons**, not for rewriting the production baseline number. + +4. **No production change implied.** Keep the live ~505 universe. Do not broaden + the tradable set to liquid Nasdaq under current knobs without a new + pre-registered design (and almost certainly a different rank/tilt package). ## Verdict -**PENDING_HUMAN** — descriptive only; production knobs unchanged. +**Descriptive matrix complete.** + +| question | answer from this matrix | +|---|---| +| Prod book @ ~4y / 505 | Positive (arm A) | +| Same + liquid Nasdaq | **No** — large degradation (arm B) | +| Prod book since 2016 / 505 | Still positive, milder (arm C) | +| Same + liquid Nasdaq deep | **No** — worst arm (arm D) | + +**PENDING_HUMAN** only for whether to log “universe broaden under current knobs” +as rejected in the main research index. Strategy knobs unchanged either way.