ঢ — Duke of Dhaka← All work

Case study · FINA 695

Walk-Forward Alpha

ML models for cross-sectional stock-return prediction

0.948Sharpe — vs 0.633 for SPY excess

The question

Which model family — linear, tree-based or neural — best predicts the cross-section of stock returns, judged by the long-short portfolio it builds?

Linear, tree-based and neural models compared walk-forward over 84 out-of-sample months (2017–2023), each driving a monthly long-short portfolio. Elastic Net delivered a 14.83% annualized long-short return and 17.41% alpha relative to SPY excess returns.

How it works

  1. 01

    147 firm characteristics, median-imputed and rank-scaled across stocks every month.

  2. 02

    Six model families: Lasso, Ridge, Elastic Net, Random Forest, gradient-boosted trees and a two-hidden-layer neural network.

  3. 03

    Walk-forward: each test year trains on an expanding window, validates on the two years before it, then tests on the untouched year — 84 out-of-sample months, January 2017 to December 2023.

  4. 04

    Predictions drive monthly value-weighted long-short portfolios with at least 50 names per side.

  5. 05

    Scored against a zero-return OOS R² benchmark and SPY excess returns; the repo's tests recompute the headline metrics from the saved monthly series.

Results

0.948

Elastic Net Sharpe — vs 0.633 for SPY excess

14.83%

annualized long-short return

17.41%

annualized alpha vs SPY excess returns

−22.37%

max drawdown — vs −25.22% for SPY excess

0.733%

best OOS R² (Lasso), 42,342 predictions

From the repo

Growth of $1 — Elastic Net vs the SPY excess benchmark, 2017–2023

Known limits

  • —Elastic Net is highlighted after the fact for having the best Sharpe — a descriptive choice with selection bias, not a second untouched test.
  • —Historical academic data: no live trading, market impact or borrow constraints.
  • —Alpha is the intercept of a single-factor regression on SPY excess returns — not a causal estimate.
Elastic NetGradient boostingTensorFlowWalk-forward CV
View the repo ↗Next case studyResidual CNN + Grad-CAM →