Pin reference outputs of backtest/gpu_backtest.py (XAU/USD, window 2025-08-04..2026-08-04, 4 primary TFs x spread 0.30/0.65 = 8 runs) under baseline/da61cff/: trade books, stdout summaries, derived equity curves and metrics, plus a manifest with exact argv, input-parquet and output hashes, backend, and tool versions. scripts/capture_baseline.py captures (cache-warm only, aborts rather than fetch live); scripts/compare_baseline.py re-runs the identical commands and byte-diffs every output, PASS/FAIL per file. Verified 32/32 files PASS on full re-run at this commit; m5_s065 reproduces the pinned HEAD reference exactly (555 trades, +98.64R, PF 1.483). No signal, execution, or scanner logic touched; 359 tests green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J3mZCQRHnJKt7qXQFG3RhB
Backtest baseline — commit da61cff
Reference outputs of backtest/gpu_backtest.py for XAU/USD, window
2025-08-04 → 2026-08-04, 4 primary TFs × spreads 0.30/0.65.
Captured by scripts/capture_baseline.py; verify with
venv/bin/python scripts/compare_baseline.py (re-runs every command and
byte-diffs the outputs, PASS/FAIL per file).
Per run dir: trades.csv (full book), summary.txt (backtester stdout),
equity.csv + metrics.json (derived from the book). Those four are
byte-compared. run.log is the backtester's stderr — timestamped, kept
for provenance only, never compared.
manifest.json records the exact argv per run, sha256 of every input
parquet and output file, backend, tool versions, and the non-secret
config inputs that alter results. Input data must come from
backtest/cache/ — if those parquets change, comparisons are no longer
attributable to code changes and the compare script aborts.