12 · Walk-Forward Backtest
Generated: 2026-05-15T11:41:09.289Z
Out-of-sample validation of the Sigma scoring strategy. Each fold: train priors on 24 months, score and pick top-10/week on the next 12 months, hold 90 days.
Folds
| Test window | Train n | Test n | Picks | Mean 90d % | σ | SR_cs | Win % |
|---|---|---|---|---|---|---|---|
| 2023-12-08 → 2024-12-08 | 7852 | 3437 | 530 | 3.2 | 17.01 | 0.188 | 55.3 |
| 2024-12-08 → 2025-12-08 | 6209 | 3512 | 530 | 5.08 | 28.73 | 0.177 | 46.6 |
Pooled out-of-sample
| Raw | Winsorized 5/95 | |
|---|---|---|
| n picks | 1060 | 1060 |
| Mean 90d return % | 4.14 | 4.19 |
| σ | 23.62 | 22.04 |
| Sharpe cross-sectional | 0.175 | 0.19 |
| Sharpe annualized (folds) | 0.858 | 0.858 |
| Win rate % | 50.9 | 50.9 |
| Mean 90d CI95 | [2.76, 5.53] | [2.9, 5.5] |
| Max DD on yearly fold returns % | 0 | 0 |
Reproducibility
Seed = 42, bootstrap iterations = 1000.
Run: node --env-file=.env.local scripts/walk-forward-backtest.mjs
Raw output: /tmp/walk-forward-results.json