- Base: residual-momentum top-50/H21, next-open, 10bps
- RL: per-name bandit on DEMEANED fwd return, trained IS < 2016-01-01
- RL keep: top-25 by long-prob; TSFM: drop negative 21d outlook
| Variant | Seg | Ret | Sharpe | MaxDD | days |
|---|---|---|---|---|---|
| base | IS | +220.4% | 0.72 | -66.0% | 2363 |
| base | OOS | +1272.3% | 1.47 | -34.4% | 2667 |
| base x RL | IS | +0.0% | 0.00 | 0.0% | 2363 |
| base x RL | OOS | +2276.8% | 1.52 | -36.0% | 2667 |
| base x TSFM | IS | +220.4% | 0.72 | -66.0% | 2363 |
| base x TSFM | OOS | +1197.5% | 1.45 | -34.1% | 2667 |
| base x RL x TSFM | IS | +0.0% | 0.00 | 0.0% | 2363 |
| base x RL x TSFM | OOS | +2305.1% | 1.54 | -34.5% | 2667 |
Stress
- Paired bootstrap OOS (base x RL - base): p = 0.006
- Random-25-of-base-50 placebo: mean OOS SR 1.44, p(SR >= RL 1.52) = 0.150
- corr(RL long-prob, residual-momentum score) = -0.450
Read: if the placebo sits at the RL Sharpe, the 'lift' is just holding fewer, higher-momentum names, not RL skill.
Verdict: REJECT (near-miss)
The cross-sectional formulation is strictly more promising than the book-level one — the RL gate no longer degenerates, and it tilts to a different part of the book (corr with momentum -0.45). But it does not beat the honest control: randomly keeping 25 of the base-50 already averages OOS SR 1.44, and the RL's 1.52 is only the 85th percentile of that distribution (p=0.15). The paired p=0.006 against base only proves 25 names differ from 50, not that the RL selects the right 25.
TimesFM as a cross-sectional tilt is neutral (1.45 vs 1.47) — same null as the repo's ~8000-prediction TimesFM study.
So: the base (residual momentum, OOS 1.47) carries the return; neither ML layer adds identifiable value on top of it. No live wiring justified. If revisited, the trigger is a stronger RL objective (e.g. rank-weighted long exposure or a longer label horizon) that clears the random-subset placebo — not a re-grid of the current gate.