qbuntuqbuntu

Pairs Trading / Statistical Arbitrage (US S&P 500)のバックテスト

slug: pair-trading-us-sp500

Pairs Trading / Statistical Arbitrage (US S&P 500)をバックテストした。288通りの中央値 Sharpe は +1.67。p-value は 0.000003。Max DD は -1.5%。期間は 2022-03-09〜2026-09-17。最良 Sharpe +3.11 は代表値ではない。

判定は promising。中央値の Sharpe が 0.5 を超え、その中央値の p-value が 0.05 未満。ベストランではない。

成績の中央値

Sharpe(中央値)
+1.67
Max DD
-1.5%
勝率
—
Alpha(年率)
—
p-value
0.00
期間: 2022-03-09 → 2026-09-17
288通りの Sharpe:中央値 1.67最良 3.11 (代表値ではない)最悪 0.41p25–p75 0.97–2.15

仮説

原文は英語。

Engle-Granger cointegration: identify stock pairs with mean-reverting spreads. Applied to S&P 500 constituents.

検証ファクト (5)

Best grid Sharpe ratio is 3.11 (p=9e-08).
period 2022-03-09–2026-09-17; cost=5bps
sharpe_ratio3.11
Median Sharpe across 288 grid runs is 1.67.
Full grid of 288 parameter combinations.
sharpe_ratio1.67
Median Sharpe in DOWN regime is 2.96 across 288 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio2.96
Median Sharpe in FLAT regime is 2.18 across 288 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio2.18
Median Sharpe in UP regime is 1.66 across 288 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio1.66

検証ラン (30)

runparamssharpeUPFLATDOWN
entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0000
cost_bps: 5
lookback: 60
max_pairs: 5
+1.21+0.81+1.86+2.09
entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=5, cost_bps=10
r-pair-trading-us-sp500-0001
cost_bps: 10
lookback: 60
max_pairs: 5
+1.15+0.77+1.78+2.01
entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=10, cost_bps=5
r-pair-trading-us-sp500-0002
cost_bps: 5
lookback: 60
max_pairs: 10
+0.68+1.11+0.69+2.38
entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=20, cost_bps=5
r-pair-trading-us-sp500-0004
cost_bps: 5
lookback: 60
max_pairs: 20
+0.58+1.40+0.67+2.26
entry_zscore=1.5, exit_zscore=0, lookback=250, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0012
cost_bps: 5
lookback: 250
max_pairs: 5
+3.11+3.94+2.55+5.00
entry_zscore=1.5, exit_zscore=0, lookback=250, max_pairs=20, cost_bps=5
r-pair-trading-us-sp500-0016
cost_bps: 5
lookback: 250
max_pairs: 20
+2.50+2.26+2.93+3.81
entry_zscore=1.5, exit_zscore=0.25, lookback=120, max_pairs=20, cost_bps=5
r-pair-trading-us-sp500-0028
cost_bps: 5
lookback: 120
max_pairs: 20
+2.16+2.26+2.03+3.01
entry_zscore=1.5, exit_zscore=0.5, lookback=60, max_pairs=20, cost_bps=5
r-pair-trading-us-sp500-0040
cost_bps: 5
lookback: 60
max_pairs: 20
+0.57+1.77+0.66+1.65
entry_zscore=1.5, exit_zscore=0.5, lookback=250, max_pairs=20, cost_bps=5
r-pair-trading-us-sp500-0052
cost_bps: 5
lookback: 250
max_pairs: 20
+2.61+3.25+2.32+5.21
entry_zscore=1.5, exit_zscore=1, lookback=60, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0054
cost_bps: 5
lookback: 60
max_pairs: 5
+1.22+1.27+1.05+2.23
entry_zscore=1.5, exit_zscore=1, lookback=120, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0065
cost_bps: 10
lookback: 120
max_pairs: 20
+0.94+0.94+2.45+3.65
entry_zscore=2, exit_zscore=0, lookback=60, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0077
cost_bps: 10
lookback: 60
max_pairs: 20
+0.57+1.34+0.67+2.18
entry_zscore=2, exit_zscore=0, lookback=250, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0089
cost_bps: 10
lookback: 250
max_pairs: 20
+2.47+2.23+2.90+3.76
entry_zscore=2, exit_zscore=0.25, lookback=120, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0101
cost_bps: 10
lookback: 120
max_pairs: 20
+2.11+2.20+1.98+2.96
entry_zscore=2, exit_zscore=0.5, lookback=60, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0113
cost_bps: 10
lookback: 60
max_pairs: 20
+0.54+1.64+0.64+1.50
entry_zscore=2, exit_zscore=0.5, lookback=250, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0125
cost_bps: 10
lookback: 250
max_pairs: 20
+2.58+3.21+2.29+5.18
entry_zscore=2, exit_zscore=1, lookback=120, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0137
cost_bps: 10
lookback: 120
max_pairs: 20
+0.94+0.94+2.45+3.65
entry_zscore=2.5, exit_zscore=0, lookback=60, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0149
cost_bps: 10
lookback: 60
max_pairs: 20
+0.57+1.34+0.67+2.18
entry_zscore=2.5, exit_zscore=0, lookback=250, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0161
cost_bps: 10
lookback: 250
max_pairs: 20
+2.47+2.23+2.90+3.76
entry_zscore=2.5, exit_zscore=0.25, lookback=120, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0173
cost_bps: 10
lookback: 120
max_pairs: 20
+2.11+2.20+1.98+2.96
entry_zscore=2.5, exit_zscore=0.5, lookback=60, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0185
cost_bps: 10
lookback: 60
max_pairs: 20
+0.54+1.64+0.64+1.50
entry_zscore=2.5, exit_zscore=0.5, lookback=250, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0197
cost_bps: 10
lookback: 250
max_pairs: 20
+2.58+3.21+2.29+5.18
entry_zscore=2.5, exit_zscore=1, lookback=120, max_pairs=20, cost_bps=10
r-pair-trading-us-sp500-0209
cost_bps: 10
lookback: 120
max_pairs: 20
+0.94+0.94+2.45+3.65
entry_zscore=3, exit_zscore=0, lookback=60, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0216
cost_bps: 5
lookback: 60
max_pairs: 5
+1.26+0.89+1.86+2.19
entry_zscore=3, exit_zscore=0, lookback=120, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0222
cost_bps: 5
lookback: 120
max_pairs: 5
+2.01+2.17+1.81+1.86
entry_zscore=3, exit_zscore=0.25, lookback=60, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0234
cost_bps: 5
lookback: 60
max_pairs: 5
+2.09+2.24+2.30+1.28
entry_zscore=3, exit_zscore=0.25, lookback=250, max_pairs=5, cost_bps=5
r-pair-trading-us-sp500-0246
cost_bps: 5
lookback: 250
max_pairs: 5
+2.14+1.76+5.30+8.88
entry_zscore=3, exit_zscore=0.5, lookback=60, max_pairs=10, cost_bps=10
r-pair-trading-us-sp500-0255
cost_bps: 10
lookback: 60
max_pairs: 10
+0.41+1.59+0.55+1.16
entry_zscore=3, exit_zscore=0.5, lookback=120, max_pairs=5, cost_bps=10
r-pair-trading-us-sp500-0259
cost_bps: 10
lookback: 120
max_pairs: 5
+1.59+1.30+1.85+1.95
entry_zscore=3, exit_zscore=1, lookback=60, max_pairs=5, cost_bps=10
r-pair-trading-us-sp500-0271
cost_bps: 10
lookback: 60
max_pairs: 5
+1.18+1.17+0.97+2.18

対象ユニバース

S&P 500 constituents, ~503 stocks

関連する戦略

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-24T02:22:18

関連する戦略