Files
signal-platform/reports
dennisthiessenandClaude Opus 5.5 231372fb3a
Deploy / lint (push) Successful in 14s
Deploy / test (push) Successful in 2m0s
Deploy / deploy (push) Successful in 48s
fix(backtest): address the second review of the breakeven and book-config work
- The breakeven study grades at the shadow book's capacity AND risk per
  trade, and labels each with where it came from. A missing setting row
  now reads "shadow_book default" instead of crediting the setting; the
  committed report said shadow_book_capacity though the snapshot has no
  such row.
- _production_book_config reads strategies through the same
  _portfolio_monitor_strategies() hook as the monitor.
- breakeven_gate_reset is rejected when there is no post-stop episode or
  cooldown for it to start, and the study skips its diagnostic arm for a
  book without one, so a production config change cannot abort the run.
- identical_to_control is renamed ties_control_on_graded_metrics and needs
  real values: be_2r ties on every graded metric but still changed 2 trades.
- _BookConfig drops an unused field and hashes by identity; the min-R:R
  sweep swaps its gate in with dataclasses.replace instead of passing it.
- New tests cover the parity guard's success path, the no-config fallback
  and the gate-reset check.

The breakeven report is regenerated: every row, diagnostic row and the
parity check are identical; only the labels, the risk fields and the
renamed flag changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 21:41:44 +02:00
..
2026-07-18 15:29:10 +02:00
2026-07-13 14:07:42 +02:00
2026-07-13 14:07:42 +02:00
2026-07-17 15:22:58 +02:00
2026-07-17 17:42:13 +02:00
2026-07-18 16:57:19 +02:00
2026-07-18 16:57:19 +02:00
2026-07-19 10:40:19 +02:00
2026-07-18 15:29:10 +02:00
2026-07-18 15:29:10 +02:00
2026-07-13 10:58:40 +02:00
2026-07-13 10:58:40 +02:00
2026-07-13 08:18:40 +02:00
2026-07-13 08:18:40 +02:00

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.

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.

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.

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.
  • 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.