qbuntuqbuntu
marginalregime_dependent· equity· composite· cross-sectional· multi-factor

Multi-Factor Composite (JP Growth Stocks)

slug: multi-factor-jp-growth

Multi-Factor Composite (JP Growth Stocks) backtest. Median Sharpe across 240 parameter sets is +0.22. p-value is 0.50. Max DD is -23.0%. Period: 2022-02-01 to 2026-09-01. Best Sharpe +1.95 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). Results split across up, flat, and down markets, so the median is not stable.

Performance summary

Sharpe (median)
+0.22
Max DD
-23.0%
Win rate
—
Alpha (ann.)
—
p-value
0.50
backtest period: 2022-02-01 → 2026-09-01
Sharpe across 240 grid runs:median 0.22best 1.95 (not representative)worst -0.53p25–p75 -0.03–0.55

Hypothesis

Combines signals from marginal/promising single factors (short-term reversal, low volatility, max return, mean reversion) into a z-scored composite. Tests whether combining weak signals produces a stronger overall signal.

Why it didn't work

Across 240 grid combinations, median Sharpe=0.22, best=1.95. Primary failure mode: regime_dependent.

Facts (5)

Best grid Sharpe ratio is 1.95 (p=8e-05).
period 2022-02-01–2026-09-01; cost=5bps
sharpe_ratio1.95
Median Sharpe across 240 grid runs is 0.22.
Full grid of 240 parameter combinations.
sharpe_ratio0.22
Median Sharpe in DOWN regime is 3.07 across 240 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio3.07
Median Sharpe in FLAT regime is 0.26 across 240 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio0.26
Median Sharpe in UP regime is -0.29 across 240 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.29

Runs (30)

runparamssharpeUPFLATDOWN
n_factors=2, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0000
cost_bps: 5
n_stocks: 5
n_factors: 2
+1.46+2.50+1.05+15.95
n_factors=2, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-multi-factor-jp-growth-0001
cost_bps: 5
n_stocks: 5
n_factors: 2
+1.10+0.30+1.05+15.95
n_factors=2, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0002
cost_bps: 10
n_stocks: 5
n_factors: 2
+1.33+2.31+0.93+15.48
n_factors=2, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-multi-factor-jp-growth-0003
cost_bps: 10
n_stocks: 5
n_factors: 2
+0.99+0.19+0.93+15.48
n_factors=2, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0012
cost_bps: 5
n_stocks: 50
n_factors: 2
+0.24-0.46+0.44+3.06
n_factors=2, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0014
cost_bps: 10
n_stocks: 50
n_factors: 2
-0.21-0.84-0.03+1.97
n_factors=2, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0024
cost_bps: 5
n_stocks: 20
n_factors: 2
+0.03-0.32+0.10+3.49
n_factors=2, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0034
cost_bps: 10
n_stocks: 5
n_factors: 2
+0.19-0.59+0.39+6.04
n_factors=2, holding_days=10, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0044
cost_bps: 5
n_stocks: 50
n_factors: 2
-0.23-1.73+0.19-0.99
n_factors=2, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0054
cost_bps: 10
n_stocks: 10
n_factors: 2
+0.08-0.55+0.17+1.80
n_factors=2, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0064
cost_bps: 5
n_stocks: 5
n_factors: 2
+0.38+0.69+0.27+0.54
n_factors=2, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=True
r-multi-factor-jp-growth-0065
cost_bps: 5
n_stocks: 5
n_factors: 2
+0.21-0.13+0.27+0.54
n_factors=2, holding_days=60, n_stocks=20, cost_bps=10, regime_gate=True
r-multi-factor-jp-growth-0075
cost_bps: 10
n_stocks: 20
n_factors: 2
-0.36-1.42-0.14-2.09
n_factors=3, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0080
cost_bps: 5
n_stocks: 5
n_factors: 3
+1.95+1.97+1.68+7.44
n_factors=3, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0086
cost_bps: 10
n_stocks: 10
n_factors: 3
+1.34+0.96+1.24+12.58
n_factors=3, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0096
cost_bps: 5
n_stocks: 5
n_factors: 3
+0.69+0.35+0.53+19.79
n_factors=3, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0106
cost_bps: 10
n_stocks: 20
n_factors: 3
+0.45+0.06+0.48+6.22
n_factors=3, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0116
cost_bps: 5
n_stocks: 10
n_factors: 3
-0.02-0.97+0.11+6.25
n_factors=3, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0126
cost_bps: 10
n_stocks: 50
n_factors: 3
-0.53-1.62-0.03-3.47
n_factors=3, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=True
r-multi-factor-jp-growth-0127
cost_bps: 10
n_stocks: 50
n_factors: 3
-0.33-0.77-0.03-3.47
n_factors=3, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=True
r-multi-factor-jp-growth-0137
cost_bps: 5
n_stocks: 20
n_factors: 3
+0.63-0.14+0.75+1.85
n_factors=3, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=True
r-multi-factor-jp-growth-0147
cost_bps: 10
n_stocks: 5
n_factors: 3
+0.35-0.97+0.52+1.09
n_factors=3, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=True
r-multi-factor-jp-growth-0157
cost_bps: 5
n_stocks: 50
n_factors: 3
-0.26-0.73-0.09-1.31
n_factors=4, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0160
cost_bps: 5
n_stocks: 5
n_factors: 4
+1.80+1.99+1.52+8.76
n_factors=4, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0168
cost_bps: 5
n_stocks: 20
n_factors: 4
+0.75+0.63+0.60+9.32
n_factors=4, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0178
cost_bps: 10
n_stocks: 5
n_factors: 4
+0.62+0.26+0.54+48.00
n_factors=4, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0188
cost_bps: 5
n_stocks: 50
n_factors: 4
+0.18-0.28+0.26+1.78
n_factors=4, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0198
cost_bps: 10
n_stocks: 10
n_factors: 4
-0.12-0.80-0.02+6.03
n_factors=4, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-jp-growth-0208
cost_bps: 5
n_stocks: 5
n_factors: 4
+0.66-0.17+0.82+6.34
n_factors=4, holding_days=20, n_stocks=20, cost_bps=10, regime_gate=False
r-multi-factor-jp-growth-0218
cost_bps: 10
n_stocks: 20
n_factors: 4
+0.21-0.91+0.53+1.65

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:17

Related strategies