qbuntuqbuntu
rejectedno_edge· equity· factor· momentum· time-series

時系列モメンタム(東証グロース)のバックテスト

Time-Series Momentum (JP Growth Stocks)

slug: ts-momentum-jp-growth

東証グロース(約495銘柄)で時系列モメンタムをバックテストした。120通りの中央値 Sharpe は -0.56。p-value は 0.23。Max DD は -14.7%。期間は 2022-03-01〜2026-09-01。最良 Sharpe +0.24 は代表値ではない。

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

何を検証したか

時系列モメンタムは、銘柄どうしの比較ではなく、その銘柄自身の過去リターンが正のときに同じ方向を取る方法です。横断モメンタムとは別のルールです。中央値がマイナスなら、上昇相場の一時期だけ当たった組み合わせを見出しにしてはいけません。

成績の中央値

Sharpe(中央値)
-0.56
Max DD
-14.7%
勝率
—
Alpha(年率)
—
p-value
0.23
期間: 2022-03-01 → 2026-09-01
120通りの Sharpe:中央値 -0.56最良 0.24 (代表値ではない)最悪 -1.70p25–p75 -0.94–-0.17

仮説

原文は英語。

Moskowitz, Ooi, Pedersen (2012): each stock's own past return predicts its future return (time-series momentum). If positive → LONG, if negative → SHORT. Equal weight across active positions.

採用しなかった理由

Across 120 grid combinations, median Sharpe=-0.56, best=0.24. Primary failure mode: no_edge.

検証ファクト (5)

Best grid Sharpe ratio is 0.24 (p=0.61).
period 2022-03-01–2026-09-01; cost=5bps
sharpe_ratio0.24
Median Sharpe across 120 grid runs is -0.56.
Full grid of 120 parameter combinations.
sharpe_ratio-0.56
Median Sharpe in DOWN regime is -1.40 across 120 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-1.40
Median Sharpe in FLAT regime is -0.45 across 120 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.45
Median Sharpe in UP regime is -0.45 across 120 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.45

検証ラン (30)

runparamssharpeUPFLATDOWN
formation_days=20, holding_days=1, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-growth-0000
cost_bps: 5
holding_days: 1
threshold_pct: 0
-1.06-0.30-1.37-1.37
formation_days=20, holding_days=1, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0001
cost_bps: 10
holding_days: 1
threshold_pct: 0
-1.70-0.83-2.04-2.31
formation_days=20, holding_days=1, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-growth-0002
cost_bps: 5
holding_days: 1
threshold_pct: 0.05
-0.98-0.44-1.21-0.74
formation_days=20, holding_days=1, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-growth-0004
cost_bps: 5
holding_days: 1
threshold_pct: 0.1
-0.94-0.53-1.09-0.76
formation_days=20, holding_days=5, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0007
cost_bps: 10
holding_days: 5
threshold_pct: 0
-1.12-1.41-0.85-2.73
formation_days=20, holding_days=5, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-growth-0011
cost_bps: 10
holding_days: 5
threshold_pct: 0.1
-0.89-1.10-0.75-1.33
formation_days=20, holding_days=10, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-growth-0015
cost_bps: 10
holding_days: 10
threshold_pct: 0.05
-0.22-0.07-0.29+0.12
formation_days=20, holding_days=20, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0019
cost_bps: 10
holding_days: 20
threshold_pct: 0
-1.09-0.21-1.41-1.28
formation_days=20, holding_days=20, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-growth-0023
cost_bps: 10
holding_days: 20
threshold_pct: 0.1
-0.47+0.11-0.72+1.57
formation_days=20, holding_days=60, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-growth-0024
cost_bps: 5
holding_days: 60
threshold_pct: 0
-0.10-0.05-0.14+0.54
formation_days=20, holding_days=60, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-growth-0028
cost_bps: 5
holding_days: 60
threshold_pct: 0.1
+0.08-0.44+0.24+0.22
formation_days=60, holding_days=1, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-growth-0032
cost_bps: 5
holding_days: 1
threshold_pct: 0.05
-1.05-0.79-1.05-10.42
formation_days=60, holding_days=5, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-growth-0036
cost_bps: 5
holding_days: 5
threshold_pct: 0
-0.27-0.43-0.11-1.10
formation_days=60, holding_days=5, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-growth-0040
cost_bps: 5
holding_days: 5
threshold_pct: 0.1
-0.19-0.78+0.13-1.25
formation_days=60, holding_days=10, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-growth-0044
cost_bps: 5
holding_days: 10
threshold_pct: 0.05
+0.17-0.48+0.47-0.15
formation_days=60, holding_days=20, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-growth-0048
cost_bps: 5
holding_days: 20
threshold_pct: 0
+0.24-0.19+0.53-0.62
formation_days=60, holding_days=20, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0049
cost_bps: 10
holding_days: 20
threshold_pct: 0
+0.02-0.36+0.29-0.86
formation_days=60, holding_days=20, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-growth-0053
cost_bps: 10
holding_days: 20
threshold_pct: 0.1
-0.23-0.55+0.00-1.02
formation_days=60, holding_days=60, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-growth-0057
cost_bps: 10
holding_days: 60
threshold_pct: 0.05
+0.10-0.31+0.43-2.12
formation_days=120, holding_days=1, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0061
cost_bps: 10
holding_days: 1
threshold_pct: 0
-1.27-1.32-1.05-17.10
formation_days=120, holding_days=1, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-growth-0065
cost_bps: 10
holding_days: 1
threshold_pct: 0.1
-1.11-1.00-0.96-8.51
formation_days=120, holding_days=5, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-growth-0069
cost_bps: 10
holding_days: 5
threshold_pct: 0.05
-0.51-0.21-0.49-1.57
formation_days=120, holding_days=10, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0073
cost_bps: 10
holding_days: 10
threshold_pct: 0
-0.49-1.08-0.30-0.39
formation_days=120, holding_days=10, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-growth-0077
cost_bps: 10
holding_days: 10
threshold_pct: 0.1
-0.50-0.60-0.36-1.20
formation_days=120, holding_days=20, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-growth-0081
cost_bps: 10
holding_days: 20
threshold_pct: 0.05
-0.77-0.45-0.70-3.07
formation_days=120, holding_days=60, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-growth-0085
cost_bps: 10
holding_days: 60
threshold_pct: 0
-0.38-0.80-0.13-0.73
formation_days=120, holding_days=60, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-growth-0089
cost_bps: 10
holding_days: 60
threshold_pct: 0.1
-0.44-0.82-0.25-0.56
formation_days=250, holding_days=1, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-growth-0090
cost_bps: 5
holding_days: 1
threshold_pct: 0
-0.98-0.15-1.22-3.29
formation_days=250, holding_days=1, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-growth-0094
cost_bps: 5
holding_days: 1
threshold_pct: 0.1
-0.96-0.41-1.18-1.39
formation_days=250, holding_days=5, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-growth-0098
cost_bps: 5
holding_days: 5
threshold_pct: 0.05
-0.27+0.40-0.36-1.34

対象ユニバース

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

関連する戦略