Files
signal-platform/reports/README.md
T

99 lines
4.7 KiB
Markdown

# Backtest report index
Reports dated 2026-07-11 or earlier are the historical production research
record and are intentionally left untouched.
The retained 2026-07-12/13 S/R reports mark a decision or provide the matching
control for one:
- The initial full-period clean-detector regression,
`backtest-20260712-sr-detector-rewrite.json`, remains a local-only report and
is intentionally not added to version control.
- `backtest-sr-v2-train-production_control.json`: pre-July-2024 production
control shared by the detector matrices.
- `backtest-sr-v2-train-rewrite.json` and
`backtest-sr-v2-train-rewrite_legacy_primary.json`: isolate detector geometry
from the primary-target selector.
- `backtest-sr-v2-train-rr_aligned_control.json` and
`backtest-sr-v2-validation-rr_aligned_control.json`: show why primary target
selection must not simply inherit the 2.0 activation floor.
- `backtest-sr-traffic-train-legacy_traffic_grid_only.json`: reproduces the
accidental legacy grid edge.
- `backtest-sr-traffic-train-legacy_range_grid_neutral.json`: proves that the
grid effect does not require volume or touch strength.
- `backtest-sr-v2-validation-production_control.json` and
`backtest-sr-v2-validation-legacy_range_grid_neutral.json`: the post-2024
control and failed range-grid replication. The compact paired result remains
in `sr-v2-validation-comparison.json` and `sr-v2-validation-cohorts.csv`.
- `backtest-sr-range-factor-train-production_range504.json` and
`backtest-sr-range-factor-train-rewrite_range504_legacy_primary.json`: isolate
the explicit 504-day multiplicative-range factor.
- `backtest-sr-range-residual-train-rewrite_range504_structural_legacy_primary.json`
and `backtest-sr-range-residual-train-rewrite_range504_structural_primary2.json`:
the final target-source and primary-floor decision.
The full-period production comparison writes:
- `backtest-sr-full-production_control.json`
- `backtest-sr-full-rewrite_range504_structural_legacy_primary.json`
- `sr-full-production-vs-candidate-comparison.json`
- `sr-full-production-vs-candidate-cohorts.csv`
Those outputs should be retained as the final decision point for this research
branch.
The follow-up breadth-preserving ranking experiment writes
`backtest-sr-overlay-full.json`. Retain it only as the decision point for the
pre-registered 5% clean-structure overlay; exploratory weight sweeps should not
be committed.
The Gate Target Ladder (the `explicit_target_ladder` research arm) parity run
writes:
- `backtest-sr-full-explicit_target_ladder.json`
- `sr-explicit-target-ladder-comparison.json`
- `sr-explicit-target-ladder-cohorts.csv`
These establish the final architectural decision: the volume-free explicit
ladder retains all 1,086 qualified setups and exactly reproduces the production
book (Sharpe 2.03, CAGR 50.0%, max drawdown 21.4%, 321 trades). The final rerun
after scanner integration passed: the regenerated report changed only its
`generated_at` timestamp, confirming that the shared helper preserves exact
parity. Nothing in this research branch deploys the change to production.
The next decision point is generated by the one-command GTL parameter run:
- `backtest-YYYYMMDD-gtl-tuning-matrix.json`
- `backtest-YYYYMMDD-gtl-tuning-matrix.md`
These two consolidated files are the reports worth retaining. The runner uses
a hidden temporary directory for its 20 full per-arm reports and removes it
after successful consolidation unless `--keep-arm-reports` is supplied.
The completed 2026-07-13 matrix found no single-parameter replacement that
passed all robustness checks. Retain its JSON and Markdown as that decision
point. The evidence-selected retained-versus-added decomposition writes:
- `backtest-YYYYMMDD-gtl-confirmation-matrix.json`
- `backtest-YYYYMMDD-gtl-confirmation-matrix.md`
Those become the next decision point; detailed per-arm reports remain temporary
unless explicitly retained.
The completed confirmation matrix found one near-hit but no formal winner:
strength-1000 intersection improved full/train/post-2024 Sharpe and CAGR, while
max drawdown worsened from 21.4% to 21.7%. Retain that matrix as the cohort-
decomposition decision point. The final stability check writes:
- `backtest-YYYYMMDD-gtl-strength-sensitivity.json`
- `backtest-YYYYMMDD-gtl-strength-sensitivity.md`
Its pre-registered decision requires at least two adjacent scales to pass all
six unchanged checks.
Final sensitivity result: exact control and strength-1000 replication passed.
Scale 1500 was the sole 6/6 arm, but no adjacent scale passed, so the stable-
plateau rule rejected it. Retain the consolidated JSON/Markdown as the closing
GTL decision point. No confirmation or tuned strength value should be promoted
from this snapshot.