Strategy review (2026-09-08) and a frozen, paired signal screen of residual 12-1 momentum divided by its formation-window residual volatility. Across 73 non-overlapping windows the normalized signal's IC is 0.0128 against 0.0145 for the matched control, below the frozen 0.03 floor, so the conditional portfolio replay was not run and nothing in production changes. Code-review fixes to the runner, before first commit: a missing OHLC price stops the run instead of reading as 0; the snapshot connection is closed explicitly (on Windows it otherwise kept the file locked); the paired-coverage check raises instead of asserting, so python -O cannot strip it; and source files are recorded as git blob ids with line endings normalized, so the report can be checked against history. The report was regenerated with the fixed runner; its screen section is byte-identical to the original run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
79 lines
4.2 KiB
Markdown
79 lines
4.2 KiB
Markdown
# Backtest report index
|
||
|
||
The 2026-09-08 residual-normalization signal experiment is preserved in
|
||
`residual-normalization-20260908.json` and its generated Markdown table.
|
||
The JSON includes every retained window, coverage, paired uncertainty, the
|
||
mechanical verdict, the snapshot hash, and the git blob ids of the source it
|
||
ran. The screen failed its frozen IC floor, so no portfolio replay was run. Interpretation:
|
||
[`residual-normalization-findings.md`](../docs/research/residual-normalization-findings.md).
|
||
|
||
The 2026-10-09 breakeven-stop exit test is preserved in
|
||
`backtest-20261009-breakeven-stop.json` (regenerated 2026-10-10 after a code
|
||
review, with no graded number changed). Its `breakeven_stop_study` section holds
|
||
the parity guard, the graded rows and verdicts for `control`, `be_1r` and
|
||
`be_2r`, and the ungraded `be_1r_gated` diagnostic rows. No arm passed with a
|
||
real difference from control, so the production exit is unchanged.
|
||
Interpretation: [`breakeven-stop.md`](../docs/research/breakeven-stop.md).
|
||
|
||
Reports dated 2026-07-11 or earlier are the historical production research
|
||
record and remain untouched.
|
||
|
||
The completed 2026-07-12/13 S/R and Gate Target Ladder research is preserved as
|
||
compact decision evidence instead of full per-arm replay output:
|
||
|
||
- `sr-v2-validation-comparison.json` and `sr-v2-validation-cohorts.csv` record
|
||
the held-out detector comparison.
|
||
- `sr-full-production-vs-candidate-comparison.json` and its cohort CSV record
|
||
the full-period clean-structure replacement decision.
|
||
- `sr-explicit-target-ladder-comparison.json` and its cohort CSV record exact
|
||
GTL parity: 202,765 candidates, 1,086 qualified setups, 321 book trades,
|
||
Sharpe 2.03, CAGR 50.0%, and max drawdown 21.4% in both arms.
|
||
- The three `backtest-20260713-gtl-*.json/.md` pairs record the tuning,
|
||
confirmation, and strength-sensitivity decisions. No stable improvement was
|
||
found, so the production GTL stayed frozen.
|
||
|
||
The large `backtest-sr-*.json` replay files were removed after consolidation.
|
||
They duplicated hundreds of thousands of candidate rows while adding no
|
||
decision information beyond the compact comparisons and the narrative in
|
||
`docs/research/sr-levels-and-exits.md`. The original raw files remain available
|
||
in Git history if a forensic reconstruction is ever necessary.
|
||
|
||
The initial untracked `backtest-20260712-sr-detector-rewrite.json` is local-only
|
||
and is intentionally not part of the repository.
|
||
|
||
The 2026-07-17 post-stop re-entry decision is preserved in
|
||
`daily_reentry_matrix.json`. It is the canonical source for the nine-policy
|
||
daily replay, production-like full-universe ranking, the disjoint 2025+ book,
|
||
and the cost/capacity sensitivity matrix. The interpretation and production
|
||
decision live in
|
||
[`docs/research/post-stop-reentry.md`](../docs/research/post-stop-reentry.md).
|
||
|
||
The earlier `post-stop-reentry-20260717.json`,
|
||
`post-stop-cooldown-sweep-20260717.json`, and
|
||
`gate-protected-stop-20260717.json` reports were removed as superseded
|
||
intermediate experiments. They used weekly/hybrid entry cadence or tested the
|
||
rejected stop-adjustment path, and add no decision evidence beyond the final
|
||
daily matrix and narrative. Their matching one-off runners were removed too.
|
||
All remain recoverable from Git history. Rebuildable candidate pickle caches
|
||
are intentionally ignored and must not be committed.
|
||
|
||
### Phase B fip breadth IC (2026-07-18/19) — compact evidence
|
||
|
||
Canonical artifacts:
|
||
|
||
- `fip-reconcile-20260719-000520.json` — single-sourced authoritative ICs
|
||
(unconditional liquid fip, tiers, prod-subset, mom-conditional, context
|
||
signals). Membership symbol dumps stripped after the decision; narrative in
|
||
[`docs/research/fip-breadth-ic.md`](../docs/research/fip-breadth-ic.md).
|
||
- `fip-breadth-20260718-211440-fingerprint.json` — prod-snapshot fingerprint
|
||
pass (fip IC −0.045 / t −2.91).
|
||
|
||
Removed as superseded / dangerous intermediate noise (recoverable from Git):
|
||
|
||
- `fip-breadth-20260718-211440-breadth.json` (+ wrapper) — **orphaned** +0.0575
|
||
/ t +5.12 from racing a partial `research.sqlite`. Kept out of the tree so it
|
||
cannot be re-mythologized.
|
||
- `fip-breadth-20260718-194828*.json` — fingerprint-only partial run.
|
||
- `fip-breadth-diagnostics-20260718-213705.json` and `…-213908.json` — dual-path
|
||
diagnostics superseded by the single-sourced reconcile.
|