Every model in our "zoo" gets the same features, the same label (stock minus S&P 500 over the next 20 trading days) and the same walk-forward schedule: refit every 63 trading days on the trailing 756, with a 20-day gap so no label leaks into training.

The leaderboard (development period, mean daily rank IC)

Model IC t-stat
Trend rule (price vs 100-day average + 12-1 momentum) +0.0149 0.64
GRU +0.0101 0.50
Ridge regression +0.0091 0.50
LightGBM +0.0086 0.53
LSTM −0.0018 −0.09
MLP −0.0090 −0.49
Low-volatility rule −0.0251 −0.98

Twelve families in total. The best Deflated Sharpe probability, which accounts for how many we tried, was 0.16.

Three observations

  1. Nothing is significant. A t-stat of 0.64 is well inside the noise. "Top of the table" here means "least bad".
  2. The year-by-year numbers swing. LSTM's IC was −0.07 in 2022 and +0.14 in 2025. A model that looks brilliant in one year and broken in the next has not found structure; it has found that year.
  3. Complexity added nothing. With roughly 100 stocks and a noisy one-month label, there isn't enough structure for a sequence model to learn what a moving average can't.

We also run a LightGBM on shuffled labels as a control. Its IC was −0.004, about where the real models sit.

The full leaderboard, including each model's code idea and yearly numbers, is public on the models page.

From Quantooo Lab, the makers of quantooo.com, a free, open and educational quant lab: every formula, every test and every failure is public. See it here: https://quantooo.com/models

Educational, not investment advice.