qbuntuqbuntu

モメンタム×出来高(東証グロース)のバックテスト

Momentum × Volume Interaction (JP Growth Stocks)

slug: momentum-volume-jp-growth

東証グロース(約495銘柄)でモメンタム×出来高をバックテストした。320通りの中央値 Sharpe は -0.21。p-value は 0.50。Max DD は -21.3%。期間は 2022-05-02〜2026-09-01。最良 Sharpe +0.59 は代表値ではない。

判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。主因は no_edge。レジーム・取引回数・コストには分類されず、中央値が採用ラインに届いていない。

成績の中央値

Sharpe(中央値)
-0.21
Max DD
-21.3%
勝率
—
Alpha(年率)
—
p-value
0.50
期間: 2022-05-02 → 2026-09-01
320通りの Sharpe:中央値 -0.21最良 0.59 (代表値ではない)最悪 -1.78p25–p75 -0.53–0.06

仮説

原文は英語。

Lee & Swaminathan (2000): volume confirms momentum quality. High-volume winners underperform (overreaction), low-volume winners continue (underreaction). LONG low-volume winners, SHORT high-volume losers.

採用しなかった理由

Across 320 grid combinations, median Sharpe=-0.21, best=0.59. Primary failure mode: no_edge.

検証ファクト (5)

Best grid Sharpe ratio is 0.59 (p=0.22).
period 2022-05-02–2026-09-01; cost=5bps
sharpe_ratio0.59
Median Sharpe across 320 grid runs is -0.21.
Full grid of 320 parameter combinations.
sharpe_ratio-0.21
Median Sharpe in DOWN regime is 0.37 across 320 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio0.37
Median Sharpe in FLAT regime is -0.45 across 320 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.45
Median Sharpe in UP regime is 0.20 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.20

検証ラン (30)

runparamssharpeUPFLATDOWN
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.07+1.23-0.71+4.54
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-momentum-volume-jp-growth-0001
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.12+0.74-0.71+4.54
formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0002
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.07+1.12-0.88+4.07
formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0003
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.25+0.69-0.88+4.07
formation_days=20, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0012
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.26+0.57-0.93+1.97
formation_days=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0018
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.43+0.68-1.14+1.74
formation_days=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0032
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.37+0.54-0.92-0.85
formation_days=20, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0046
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.24-0.81-1.46+0.21
formation_days=20, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0060
cost_bps: 5
n_stocks: 50
regime_gate: false
-1.59-1.17-1.90+0.58
formation_days=20, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0062
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.78-1.35-2.09+0.36
formation_days=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0064
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.30+0.58+0.29-0.94
formation_days=20, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0076
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.78-0.85-0.85+42.02
formation_days=60, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0084
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.59+1.52+0.13+16.08
formation_days=60, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0091
cost_bps: 10
n_stocks: 20
regime_gate: true
-0.11+0.48-0.52+1.66
formation_days=60, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True
r-momentum-volume-jp-growth-0105
cost_bps: 5
n_stocks: 20
regime_gate: true
+0.12+1.01-0.24-0.02
formation_days=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0119
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.08+0.19+0.05-0.14
formation_days=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-momentum-volume-jp-growth-0133
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.22-0.23+0.34+3.74
formation_days=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0147
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.22-0.35+0.33+0.58
formation_days=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-momentum-volume-jp-growth-0161
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.28+1.14-0.11+0.77
formation_days=120, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0175
cost_bps: 10
n_stocks: 50
regime_gate: true
-0.33+0.08-0.94+1.55
formation_days=120, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True
r-momentum-volume-jp-growth-0189
cost_bps: 5
n_stocks: 50
regime_gate: true
-0.17+0.84-0.77+0.02
formation_days=120, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0203
cost_bps: 10
n_stocks: 20
regime_gate: true
-0.14+0.65-0.67+1.05
formation_days=120, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=True
r-momentum-volume-jp-growth-0217
cost_bps: 5
n_stocks: 20
regime_gate: true
-0.04+0.29-0.44+1.58
formation_days=120, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=True
r-momentum-volume-jp-growth-0231
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.33-0.65-0.27-0.07
formation_days=250, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0240
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.20+0.90-0.14+0.89
formation_days=250, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0246
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.05+0.57-0.16+0.98
formation_days=250, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0260
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.30+0.33+0.21+1.53
formation_days=250, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0274
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.19+1.37-1.05+0.96
formation_days=250, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0288
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.33+0.10-0.48-0.02
formation_days=250, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0302
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.95-1.65-0.70-0.20

対象ユニバース

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-24T21:54:28

関連する戦略