リスクパリティ(東証全銘柄)のバックテスト
Risk Parity / Volatility Targeting Overlay (JP All Stocks)
slug: risk-parity-jp-all
東証全銘柄(約3,747銘柄)でリスクパリティをバックテストした。384通りの中央値 Sharpe は -0.32。p-value は 0.43。Max DD は -40.3%。期間は 2022-05-02〜2026-09-01。最良 Sharpe +0.11 は代表値ではない。
判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。主因は no_edge。レジーム・取引回数・コストには分類されず、中央値が採用ラインに届いていない。
成績の中央値
Sharpe(中央値)
-0.32
Max DD
-40.3%
勝率
—
Alpha(年率)
—
p-value
0.43
期間: 2022-05-02 → 2026-09-01
384通りの Sharpe:中央値 -0.32最良 0.11 (代表値ではない)最悪 -0.83p25–p75 -0.49–-0.19
仮説
原文は英語。
Sizing positions inversely proportional to their recent volatility. Testing on the full Japanese stock universe.
採用しなかった理由
Across 384 grid combinations, median Sharpe=-0.32, best=0.11. Primary failure mode: no_edge.
検証ファクト (5)
Best grid Sharpe ratio is 0.11 (p=0.71).
period 2022-05-02–2026-09-01; cost=5bps
cite ↗ /cite/risk-parity-jp-all-fact-best-sharpevia r-risk-parity-jp-all-0382
Median Sharpe across 384 grid runs is -0.32.
Full grid of 384 parameter combinations.
Median Sharpe in DOWN regime is -1.01 across 384 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
Median Sharpe in FLAT regime is -0.34 across 384 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
Median Sharpe in UP regime is -0.21 across 384 runs.
Regime=UP, N225 SMA20/SMA60 classification.
検証ラン (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
target_vol=0.1, vol_lookback=10, holding_days=5, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0000 | cost_bps: 5 target_vol: 0.1 base_signal: "momentum_60" | -0.39 | -0.41 | -0.04 | -1.52 |
target_vol=0.1, vol_lookback=10, holding_days=5, base_signal=momentum_60, cost_bps=10 r-risk-parity-jp-all-0001 | cost_bps: 10 target_vol: 0.1 base_signal: "momentum_60" | -0.46 | -0.49 | -0.11 | -1.60 |
target_vol=0.1, vol_lookback=10, holding_days=5, base_signal=momentum_120, cost_bps=5 r-risk-parity-jp-all-0002 | cost_bps: 5 target_vol: 0.1 base_signal: "momentum_120" | -0.33 | -0.20 | -0.05 | -2.05 |
target_vol=0.1, vol_lookback=10, holding_days=5, base_signal=mean_reversion, cost_bps=5 r-risk-parity-jp-all-0004 | cost_bps: 5 target_vol: 0.1 base_signal: "mean_reversion" | -0.27 | +0.12 | -0.49 | -0.85 |
target_vol=0.1, vol_lookback=10, holding_days=20, base_signal=momentum_120, cost_bps=10 r-risk-parity-jp-all-0015 | cost_bps: 10 target_vol: 0.1 base_signal: "momentum_120" | -0.83 | -0.62 | -0.46 | -3.45 |
target_vol=0.1, vol_lookback=10, holding_days=60, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0018 | cost_bps: 5 target_vol: 0.1 base_signal: "momentum_60" | -0.29 | -0.28 | -0.23 | -0.58 |
target_vol=0.1, vol_lookback=10, holding_days=60, base_signal=mean_reversion, cost_bps=5 r-risk-parity-jp-all-0022 | cost_bps: 5 target_vol: 0.1 base_signal: "mean_reversion" | +0.04 | +0.14 | -0.23 | +0.50 |
target_vol=0.1, vol_lookback=20, holding_days=20, base_signal=momentum_120, cost_bps=10 r-risk-parity-jp-all-0039 | cost_bps: 10 target_vol: 0.1 base_signal: "momentum_120" | -0.80 | -0.53 | -0.51 | -3.19 |
target_vol=0.1, vol_lookback=40, holding_days=10, base_signal=momentum_120, cost_bps=5 r-risk-parity-jp-all-0056 | cost_bps: 5 target_vol: 0.1 base_signal: "momentum_120" | -0.64 | -0.65 | -0.39 | -1.23 |
target_vol=0.1, vol_lookback=60, holding_days=5, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0072 | cost_bps: 5 target_vol: 0.1 base_signal: "momentum_60" | -0.49 | -0.77 | +0.19 | -2.16 |
target_vol=0.1, vol_lookback=60, holding_days=5, base_signal=momentum_120, cost_bps=5 r-risk-parity-jp-all-0074 | cost_bps: 5 target_vol: 0.1 base_signal: "momentum_120" | -0.15 | -0.15 | +0.36 | -2.24 |
target_vol=0.1, vol_lookback=60, holding_days=60, base_signal=momentum_60, cost_bps=10 r-risk-parity-jp-all-0091 | cost_bps: 10 target_vol: 0.1 base_signal: "momentum_60" | -0.22 | -0.43 | -0.03 | -0.30 |
target_vol=0.15, vol_lookback=10, holding_days=20, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0108 | cost_bps: 5 target_vol: 0.15 base_signal: "momentum_60" | -0.49 | -0.32 | -0.62 | -1.13 |
target_vol=0.15, vol_lookback=20, holding_days=5, base_signal=mean_reversion, cost_bps=10 r-risk-parity-jp-all-0125 | cost_bps: 10 target_vol: 0.15 base_signal: "mean_reversion" | -0.45 | +0.01 | -0.77 | -0.98 |
target_vol=0.15, vol_lookback=20, holding_days=60, base_signal=mean_reversion, cost_bps=5 r-risk-parity-jp-all-0142 | cost_bps: 5 target_vol: 0.15 base_signal: "mean_reversion" | +0.02 | +0.15 | -0.27 | +0.33 |
target_vol=0.15, vol_lookback=40, holding_days=20, base_signal=momentum_120, cost_bps=10 r-risk-parity-jp-all-0159 | cost_bps: 10 target_vol: 0.15 base_signal: "momentum_120" | -0.76 | -0.31 | -0.68 | -2.83 |
target_vol=0.15, vol_lookback=60, holding_days=10, base_signal=momentum_120, cost_bps=5 r-risk-parity-jp-all-0176 | cost_bps: 5 target_vol: 0.15 base_signal: "momentum_120" | -0.67 | -0.70 | -0.43 | -1.48 |
target_vol=0.2, vol_lookback=10, holding_days=5, base_signal=momentum_60, cost_bps=10 r-risk-parity-jp-all-0193 | cost_bps: 10 target_vol: 0.2 base_signal: "momentum_60" | -0.46 | -0.49 | -0.11 | -1.60 |
target_vol=0.2, vol_lookback=10, holding_days=60, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0210 | cost_bps: 5 target_vol: 0.2 base_signal: "momentum_60" | -0.29 | -0.28 | -0.23 | -0.58 |
target_vol=0.2, vol_lookback=20, holding_days=10, base_signal=mean_reversion, cost_bps=10 r-risk-parity-jp-all-0227 | cost_bps: 10 target_vol: 0.2 base_signal: "mean_reversion" | -0.50 | +0.00 | -0.83 | -1.10 |
target_vol=0.2, vol_lookback=40, holding_days=5, base_signal=mean_reversion, cost_bps=5 r-risk-parity-jp-all-0244 | cost_bps: 5 target_vol: 0.2 base_signal: "mean_reversion" | -0.25 | +0.27 | -0.71 | -0.74 |
target_vol=0.2, vol_lookback=40, holding_days=60, base_signal=momentum_120, cost_bps=10 r-risk-parity-jp-all-0261 | cost_bps: 10 target_vol: 0.2 base_signal: "momentum_120" | -0.28 | -0.32 | -0.21 | -0.41 |
target_vol=0.2, vol_lookback=60, holding_days=20, base_signal=momentum_120, cost_bps=5 r-risk-parity-jp-all-0278 | cost_bps: 5 target_vol: 0.2 base_signal: "momentum_120" | -0.65 | -0.28 | -0.52 | -2.96 |
target_vol=0.3, vol_lookback=10, holding_days=5, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0288 | cost_bps: 5 target_vol: 0.3 base_signal: "momentum_60" | -0.38 | -0.41 | -0.04 | -1.52 |
target_vol=0.3, vol_lookback=10, holding_days=10, base_signal=momentum_120, cost_bps=5 r-risk-parity-jp-all-0296 | cost_bps: 5 target_vol: 0.3 base_signal: "momentum_120" | -0.70 | -0.78 | -0.22 | -1.74 |
target_vol=0.3, vol_lookback=20, holding_days=5, base_signal=momentum_60, cost_bps=10 r-risk-parity-jp-all-0313 | cost_bps: 10 target_vol: 0.3 base_signal: "momentum_60" | -0.41 | -0.75 | +0.19 | -1.74 |
target_vol=0.3, vol_lookback=20, holding_days=60, base_signal=momentum_60, cost_bps=5 r-risk-parity-jp-all-0330 | cost_bps: 5 target_vol: 0.3 base_signal: "momentum_60" | -0.22 | -0.35 | -0.11 | -0.24 |
target_vol=0.3, vol_lookback=40, holding_days=10, base_signal=mean_reversion, cost_bps=10 r-risk-parity-jp-all-0347 | cost_bps: 10 target_vol: 0.3 base_signal: "mean_reversion" | -0.45 | +0.09 | -0.86 | -1.01 |
target_vol=0.3, vol_lookback=60, holding_days=5, base_signal=mean_reversion, cost_bps=5 r-risk-parity-jp-all-0364 | cost_bps: 5 target_vol: 0.3 base_signal: "mean_reversion" | -0.18 | +0.33 | -0.69 | -0.49 |
target_vol=0.3, vol_lookback=60, holding_days=60, base_signal=mean_reversion, cost_bps=5 r-risk-parity-jp-all-0382 | cost_bps: 5 target_vol: 0.3 base_signal: "mean_reversion" | +0.11 | +0.29 | -0.27 | +0.47 |
対象ユニバース
Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks
関連する戦略
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-26T05:46:56