1 Commits (f1782f5fd338872a43bc130ae9a03cbedf396d2f)

Author SHA1 Message Date
I Luk Kim f1782f5fd3 Add xsmom disk cache + promote v9.3.2b as champion, retire v9 sweep configs
- New: libs/backtest/xsmom_cache.py — disk cache for xsmom ranked-universe
  per rebalance date; keyed by snapshot fingerprint + param hash; top_n is
  NOT in key so v9.3.1 (top20) and v9.3.2c (top10) share one cache file
- libs/backtest/cross_sectional_momentum.py — add cache= param to
  build_candidates(); hit path skips 900-symbol scan; miss path writes ranked
  rows post-quality-gate to cache buffer
- libs/backtest/snapshot_store.py — expose snapshot_dir attribute; propagate
  through slice_by_date_range() so runner always has the path
- apps/backtester/run.py — wire up XsmomRankCache per engine (lazy init,
  flush after simulation loop); cache is no-op when snapshot_dir is None
- configs: add return_max_long_v9.3.2b_fc.json (SQS 93.5 champion,
  ER days[2,8]); remove all other v9 sweep variants from .index.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago