Chronological tuningAt least 36 completed training targets. Inner validation requires at least 24 completed targets at each validation decision. Scalers, imputation and clipping are refit inside each fold.
Fixed compact gridsRidge α: 0.01, 0.1, 1, 10 on standardized targets and mean squared-error loss. Elastic Net α: 0.01, 0.1, 1; L1 ratio: 0.2 or 0.8. Parameters are selected per asset using past validation errors.
One portfolio pipelineStart 45/35/20; SPY 20–70%, IEF 15–60%, LQD 10–40%. Monthly covariance, BL τ 0.05 and risk aversion 2.5. Costs: 5 bp per dollar traded from drifted holdings.
Reserved test excludedOnly holding months through December 2022. The January 3, 2023 exit quote closes December's position. It is not a January strategy evaluation.
Forecast sample, optional BVAR and limitations
The small one-lag Bayesian VAR is optional and not implemented here. It requires a separately specified small variable system and a comparison with Dynamic Ridge using matched information. SVAR, neural networks and broad tree searches are deferred.
Training targets are standardized separately per asset and converted back to decimal total returns before metrics and BL. Targets are never clipped. There is no supplied cash-return series. OOS R² uses the actual historical-mean forecast error as its denominator. These choices were recorded after earlier research was seen; this is exploratory evidence, not a frozen production model or an independent confirmation.