LightGBM Factor Model (JP Growth Stocks)
LightGBM Factor Model (JP Growth Stocks) backtest. Median Sharpe across 72 parameter sets is +0.42. p-value is 0.20. Max DD is -16.2%. Period: 2024-07-01 to 2025-06-30. Best Sharpe +2.91 is not the representative figure.
Verdict: marginal. Some parameter set has a p-value under 0.10, but the median itself misses promising (Sharpe > 0.5 and p-value < 0.05). Primary reason: no_edge. It is not regime, frequency, or cost, and the median does not clear the bar.
Performance summary
Hypothesis
A LightGBM model trained on cross-sectional factor features (momentum, volatility, volume, mean-reversion signals) can predict next-period stock returns. Walk-forward validation ensures no lookahead bias. Tests multiple feature sets (9f-base, 15f-swing, 8f-no-volume, 7f-no-mrs) and hyperparameters.
Why it didn't work
Across 72 grid combinations, median Sharpe=0.42, best=2.91. Primary failure mode: no_edge.
Facts (5)
Runs (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
num_leaves=7, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0001 | num_leaves: 7 feature_set: "9f-base" | +1.26 | +1.83 | -0.28 | +3.25 |
num_leaves=7, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0002 | num_leaves: 7 feature_set: "9f-base" | +1.62 | +2.41 | -1.44 | +10.04 |
num_leaves=7, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0005 | num_leaves: 7 feature_set: "9f-base" | +1.28 | +1.81 | -1.25 | +13.37 |
num_leaves=7, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0008 | num_leaves: 7 feature_set: "9f-base" | +0.96 | +1.33 | -1.21 | +10.43 |
num_leaves=15, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0011 | num_leaves: 15 feature_set: "9f-base" | -0.49 | -0.01 | -2.79 | +13.20 |
num_leaves=15, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0014 | num_leaves: 15 feature_set: "9f-base" | -0.68 | -0.24 | -2.73 | +12.38 |
num_leaves=15, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0017 | num_leaves: 15 feature_set: "9f-base" | -0.95 | -0.54 | -2.98 | +10.02 |
num_leaves=31, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0019 | num_leaves: 31 feature_set: "9f-base" | +2.09 | +2.75 | +0.60 | +3.74 |
num_leaves=31, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0022 | num_leaves: 31 feature_set: "9f-base" | +1.20 | +2.83 | -1.17 | +3.20 |
num_leaves=31, feature_set=9f-base r-ml-factor-lgbm-9f-jp-growth-0025 | num_leaves: 31 feature_set: "9f-base" | +0.55 | +2.18 | -1.79 | +2.62 |
num_leaves=7, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0028 | num_leaves: 7 feature_set: "13f-financial" | -1.42 | -0.49 | -2.14 | -1.37 |
num_leaves=7, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0031 | num_leaves: 7 feature_set: "13f-financial" | -1.39 | +0.25 | -2.38 | -1.97 |
num_leaves=7, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0034 | num_leaves: 7 feature_set: "13f-financial" | -1.43 | +0.73 | -2.74 | -2.05 |
num_leaves=15, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0037 | num_leaves: 15 feature_set: "13f-financial" | -1.42 | -0.49 | -2.14 | -1.37 |
num_leaves=15, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0040 | num_leaves: 15 feature_set: "13f-financial" | -1.39 | +0.25 | -2.38 | -1.97 |
num_leaves=15, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0043 | num_leaves: 15 feature_set: "13f-financial" | -1.43 | +0.73 | -2.74 | -2.05 |
num_leaves=31, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0046 | num_leaves: 31 feature_set: "13f-financial" | -1.42 | -0.49 | -2.14 | -1.37 |
num_leaves=31, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0049 | num_leaves: 31 feature_set: "13f-financial" | -1.39 | +0.25 | -2.38 | -1.97 |
num_leaves=31, feature_set=13f-financial r-ml-factor-lgbm-9f-jp-growth-0052 | num_leaves: 31 feature_set: "13f-financial" | -1.43 | +0.73 | -2.74 | -2.05 |
num_leaves=7, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0055 | num_leaves: 7 feature_set: "12f-quality" | +2.04 | +1.52 | +1.73 | +3.53 |
num_leaves=7, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0056 | num_leaves: 7 feature_set: "12f-quality" | +1.66 | +1.74 | +0.81 | +12.70 |
num_leaves=7, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0059 | num_leaves: 7 feature_set: "12f-quality" | +1.15 | +1.04 | +0.91 | +16.71 |
num_leaves=7, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0062 | num_leaves: 7 feature_set: "12f-quality" | +0.74 | +0.43 | +1.14 | +14.10 |
num_leaves=15, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0065 | num_leaves: 15 feature_set: "12f-quality" | -0.04 | +0.56 | -2.65 | +10.77 |
num_leaves=15, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0068 | num_leaves: 15 feature_set: "12f-quality" | -0.47 | +0.09 | -2.84 | +8.26 |
num_leaves=15, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0071 | num_leaves: 15 feature_set: "12f-quality" | -0.96 | -0.51 | -2.94 | +7.24 |
num_leaves=31, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0073 | num_leaves: 31 feature_set: "12f-quality" | +2.91 | +1.40 | +3.80 | +3.92 |
num_leaves=31, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0076 | num_leaves: 31 feature_set: "12f-quality" | +1.89 | +0.84 | +2.57 | +2.41 |
num_leaves=31, feature_set=12f-quality r-ml-factor-lgbm-9f-jp-growth-0079 | num_leaves: 31 feature_set: "12f-quality" | +1.55 | +0.66 | +2.20 | +1.82 |
num_leaves=7, feature_set=16f-all r-ml-factor-lgbm-9f-jp-growth-0085 | num_leaves: 7 feature_set: "16f-all" | -1.61 | -0.14 | -3.21 | -0.54 |