qbuntuqbuntu

LightGBM Factor Model (JP Growth Stocks)

slug: ml-factor-lgbm-9f-jp-growth

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

Sharpe (median)
+0.42
Max DD
-16.2%
Win rate
—
Alpha (ann.)
—
p-value
0.20
backtest period: 2024-07-01 → 2025-06-30
Sharpe across 72 grid runs:median 0.42best 2.91 (not representative)worst -1.61p25–p75 -0.97–1.46

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)

Best grid Sharpe ratio is 2.91 (p=0.004).
period 2024-07-01–2025-06-30; cost=5.0bps
sharpe_ratio2.91
Median Sharpe across 72 grid runs is 0.42.
Full grid of 72 parameter combinations.
sharpe_ratio0.42
Median Sharpe in DOWN regime is 3.83 across 72 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio3.83
Median Sharpe in FLAT regime is -2.21 across 72 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-2.21
Median Sharpe in UP regime is 0.94 across 72 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.94

Runs (30)

runparamssharpeUPFLATDOWN
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

Target universe

Tokyo Stock Exchange Growth Market, ~495 stocks, tv >= 30M JPY
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-24T02:22:15

Related strategies