← all research

Cache: data/cache/phase1_transfer_seed42.pkl (slim bundle from the original training run) Train: 51 flagship names | Test: 20 seed-42 unseen names | 20y | region-A (0.50 breaker)

UniverseModelTotalCAGRMaxDDPFTrades2023-26
Test (unseen)pooled zero-shot+561.4%+10.04%46.0%1.331,414+83.2%
Test (unseen)per-symbol ref+396.9%+8.46%39.3%1.241,527+91.5%
Train (flagship)pooled+280.6%+7.00%41.0%1.251,400+16.6%
Train (flagship)per-symbol ref+2161.8%+17.10%36.7%1.461,621+111.9%

Verdict

MIXED

Transfer to unseen names works, BUT the pooled model dilutes the flagship train performance below 10%/yr CAGR.

Promotion bar (from the study design):

  • Zero-shot unseen PF >= 1.30 (beats the per-symbol 1.24 reference)
  • Zero-shot 2023-26 > 0 (positive recent-year alpha)
  • Train (flagship) CAGR >= 10% (pooled doesn't dilute below threshold)

Actual: unseen PF = 1.33, unseen 2023-26 = +83.2%, train CAGR = +7.00%.

Implications

Transfer learning is structural alpha independent of the per-symbol walk-forward ceiling. A model trained on the combined history of MANY stocks should generalize to names it has never seen, because the features (returns, momentum, volatility, calendar) are themselves comparable across stocks.

If PASS, the next action is to integrate pooled scoring into the per-symbol model selection: a stock with thin history (< 300 bars) can fall back to the pooled model instead of being skipped. If REJECT, the pooled model dilutes per-symbol edge and should be parked. Per-symbol models remain the canonical path.

elapsed: 14.7s