qbuntuqbuntu

Multi-Factor Composite (US S&P 500)

slug: multi-factor-us-sp500
performance summary
Sharpe (median)
-0.85
Max DD
-39.1%
Win rate
Alpha (ann.)
p-value
0.07
backtest period: 2022-02-012026-06-01
Sharpe across 240 grid runs:median -0.85best 0.25 (not representative)worst -2.07p25–p75 -1.16-0.52

Hypothesis

Combines signals from marginal/promising single factors into a z-scored composite. Applied to S&P 500 constituents.

Why it didn't work

Across 240 grid combinations, median Sharpe=-0.85, best=0.25. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 0.25 (p=0.39).
period 2022-02-01–2026-06-01; cost=5bps
sharpe_ratio0.25
Median Sharpe across 240 grid runs is -0.85.
Full grid of 240 parameter combinations.
sharpe_ratio-0.85
Median Sharpe in DOWN regime is -0.34 across 240 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.34
Median Sharpe in FLAT regime is -1.30 across 240 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-1.30
Median Sharpe in UP regime is -0.82 across 240 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.82

Runs (30)

runparamssharpeUPFLATDOWN
n_factors=2, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0000
cost_bps: 5
n_stocks: 5
n_factors: 2
-0.62-1.11-0.69+0.84
n_factors=2, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-multi-factor-us-sp500-0001
cost_bps: 5
n_stocks: 5
n_factors: 2
-0.26-0.59-0.69+0.84
n_factors=2, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0002
cost_bps: 10
n_stocks: 5
n_factors: 2
-0.87-1.35-0.95+0.58
n_factors=2, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-multi-factor-us-sp500-0003
cost_bps: 10
n_stocks: 5
n_factors: 2
-0.50-0.85-0.95+0.58
n_factors=2, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0012
cost_bps: 5
n_stocks: 50
n_factors: 2
-1.16-1.51-2.11+0.13
n_factors=2, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0014
cost_bps: 10
n_stocks: 50
n_factors: 2
-1.60-2.06-2.61-0.16
n_factors=2, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0024
cost_bps: 5
n_stocks: 20
n_factors: 2
-0.69-0.45-1.53-0.35
n_factors=2, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0034
cost_bps: 10
n_stocks: 5
n_factors: 2
-0.92-1.20-1.24+0.91
n_factors=2, holding_days=10, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0044
cost_bps: 5
n_stocks: 50
n_factors: 2
-0.87-1.49-0.65+0.06
n_factors=2, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0054
cost_bps: 10
n_stocks: 10
n_factors: 2
-0.71-0.82-1.27+0.93
n_factors=2, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0064
cost_bps: 5
n_stocks: 5
n_factors: 2
-0.31-0.46-0.56+1.02
n_factors=2, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=True
r-multi-factor-us-sp500-0065
cost_bps: 5
n_stocks: 5
n_factors: 2
+0.25+0.49-0.56+1.02
n_factors=2, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0066
cost_bps: 10
n_stocks: 5
n_factors: 2
-0.32-0.47-0.59+0.99
n_factors=2, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0076
cost_bps: 5
n_stocks: 50
n_factors: 2
-0.82-1.21-1.01+0.88
n_factors=3, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0086
cost_bps: 10
n_stocks: 10
n_factors: 3
-1.32-1.80-1.85+0.19
n_factors=3, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0096
cost_bps: 5
n_stocks: 5
n_factors: 3
-0.90-0.78-1.08-0.77
n_factors=3, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0106
cost_bps: 10
n_stocks: 20
n_factors: 3
-1.34-1.12-1.93-0.96
n_factors=3, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0116
cost_bps: 5
n_stocks: 10
n_factors: 3
-1.42-1.40-1.55-1.15
n_factors=3, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0126
cost_bps: 10
n_stocks: 50
n_factors: 3
-1.49-1.52-1.49-1.36
n_factors=3, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0136
cost_bps: 5
n_stocks: 20
n_factors: 3
-1.28-1.27-1.13-1.42
n_factors=3, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0146
cost_bps: 10
n_stocks: 5
n_factors: 3
-0.80-1.30-0.93+0.50
n_factors=3, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0156
cost_bps: 5
n_stocks: 50
n_factors: 3
-1.26-1.68-1.25-0.35
n_factors=4, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0160
cost_bps: 5
n_stocks: 5
n_factors: 4
-0.88-1.25-1.37+0.37
n_factors=4, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-multi-factor-us-sp500-0167
cost_bps: 10
n_stocks: 10
n_factors: 4
-1.24-1.12-2.44-0.33
n_factors=4, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0174
cost_bps: 10
n_stocks: 50
n_factors: 4
-2.07-2.33-3.47-0.57
n_factors=4, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0178
cost_bps: 10
n_stocks: 5
n_factors: 4
-1.21-0.94-1.61-1.36
n_factors=4, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0188
cost_bps: 5
n_stocks: 50
n_factors: 4
-1.16-1.03-1.55-0.89
n_factors=4, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0198
cost_bps: 10
n_stocks: 10
n_factors: 4
-1.25-1.35-1.58-0.50
n_factors=4, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-multi-factor-us-sp500-0208
cost_bps: 5
n_stocks: 5
n_factors: 4
-0.85-1.06-0.80-0.31
n_factors=4, holding_days=20, n_stocks=20, cost_bps=10, regime_gate=False
r-multi-factor-us-sp500-0218
cost_bps: 10
n_stocks: 20
n_factors: 4
-1.13-1.25-0.91-1.11

Target universe

S&P 500 constituents, ~503 stocks

Related strategies

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-29T01:08:35

Related strategies