Files
momentum-system/judge/PAPER_TRIAL.md
T
momentum devandClaude Opus 5.5 b38edd4ca9 feat: daily after-close report and the judge paper-trial criteria
research/daily_report.py, run by Task Scheduler "Momentum\DailyReport" at 16:25 ET
on weekdays, writes data/reports/daily_<date>.md with ALERTS on top:
- the live opening-range bot's frozen 80-trade test: verdict, mean R with CI,
  P&L, equity headroom over the floor, today's trades, open deviations, settings
  drift;
- the judge v2 paper trial: judge.review for every counted day, cumulative
  paper-vs-sim execution parity, today's flagged trades, trader errors and
  restarts;
- the old-vs-new exit A/B (alerts at 50 pairs);
- stack health: down at the open, silent gaps of 10+ min, the press-release
  recorder.
Read-only everywhere (PG_SKIP_SCHEMA=1, SELECTs only). Replayed on 2026-09-30 it
flags that day's real problems: the judge error loop, the paper stack down until
13:51, and a 25-min gap.

judge/PAPER_TRIAL.md, written before any counted trade: trades count from
2026-10-02. At 60 trades the paper trial must show execution parity with the
simulator (paper minus sim >= -0.15R) before a 150-trade performance read. Real
money is only considered after that, and only with the owner's go-ahead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B3PXXn2tHBzdv6rYtGPz86
2026-10-01 14:37:18 -05:00

1.6 KiB

Judge v2 paper trial: what it has to show (pre-registered 2026-10-01, before any counted trade)

The v2 model passed its pre-registered out-of-sample SIMULATION test (data/ticksim/PREREG_v2.md: regular-hours top 20%, +1.11%/trade after spread, day-block lo +0.54%, n=332). The paper trial's job is not to re-prove that edge. At this sample size it cannot: the backtest is fat-tailed, with median trade about -0.1% and the top 5 trades about 40% of R. Its job is to show that REAL execution matches the simulation, so that the simulated edge can be trusted to transfer.

Counted trades: completed paper round trips from 2026-10-02 on, the first session with the software stop and the replaced-stop fix (8dc97a5, f3c8be1). 2026-09-29 to 2026-10-01 were shakedown days and are not counted. Measured per trade by judge.review: paper R vs the simulator's R from the same fill on the same recorded ticks.

Checkpoint at 60 counted trades: PRIMARY (execution parity): mean(paper R - sim R) >= -0.15R, with the bootstrap 90% CI upper bound >= 0. A gap explained by a single bug that has since been fixed is re-measured on later trades. Reported: fill rate (unfilled orders and the sim R they would have made), entry slippage, exit-reason mismatches, paper P&L and mean R (for information only; n=60 cannot separate this edge from zero).

Decision: parity holds: continue paper trading to 150 counted trades for a performance read (mean return > 0 required). Only after that is a small real-money pilot considered, and only with the owner's go-ahead. parity fails: find and fix the execution gap before anything else. The backtest edge is irrelevant until the fills match.