Lab notebook · chapter 3 of 7 · page 3 of 3

Choosing strategies continued

Walk-forward on 112 names

Full output in results/. Primary configuration was pre-registered as rolling/return before running, precisely so the anchored variant could not be cherry-picked afterwards.

rolling (primary) anchored (check)
walk-forward selection +100.2% +283.3%
average candidate +114.5% +117.6%
always mom-k20-20d +287.0% +298.0%
always mom-k20-60d +282.3% +303.5%
buy-and-hold SPY +185.4% +185.4%
perfect hindsight +605.0% +638.9%
selection hit rate 36% 71%
rank correlation +0.11 +0.39
churn 54% 15%

Primary result: selection failed again, harder. At 36% it did worse than a coin flip and worse than simply averaging every candidate. Committing to one momentum variant beat adaptive selection by 187 points. This is the second independent reproduction, now on a universe five times larger.

In 0 of 14 folds did selection pick the actual best candidate. In the last three folds it had rotated into trend-monthly — which had won folds 8, 9 and 10 — exactly as momentum won the next three by +13.9%, +12.1% and +24.8%. Plain performance chasing.

Anchored disagrees, and there is a mechanism. Training on all history rather than a rolling two years produces a more stable ranking (churn 15% vs 54%) and never chases into trend-monthly. That is a plausible hypothesis, not a result: p=0.09 on its own, ~0.17 across two configurations, and adopting it because it scored better is the cherry-pick this section exists to prevent.

The robust finding is about momentum, not about selecting. A momentum variant was the best candidate in 10 of 14 out-of-sample folds (p=0.004 against a 2-in-6 null), in both configurations, at both a 20-day and a 60-day lookback. Two different parameterisations landing within 5 points of each other (+287% / +282%) is weak evidence the effect is not a fitted artifact.

Caveat that walk-forward does not address: momentum turns over ~29x NAV/year and ExecutionModel charges no spread on limit orders. At that turnover a 1-2bps effective spread is roughly 0.5-0.9%/yr compounding against these numbers.