← all research
  • 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
VariantSegRetSharpeMaxDDdays
baseIS+220.4%0.72-66.0%2363
baseOOS+1272.3%1.47-34.4%2667
base x RLIS+0.0%0.000.0%2363
base x RLOOS+2276.8%1.52-36.0%2667
base x TSFMIS+220.4%0.72-66.0%2363
base x TSFMOOS+1197.5%1.45-34.1%2667
base x RL x TSFMIS+0.0%0.000.0%2363
base x RL x TSFMOOS+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.