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

時系列モメンタム(東証全銘柄)のバックテスト

Time-Series Momentum (JP All Stocks)

slug: ts-momentum-jp-all

東証全銘柄(約3,747銘柄)で時系列モメンタムをバックテストした。120通りの中央値 Sharpe は -0.31。p-value は 0.47。Max DD は -25.3%。期間は 2022-03-01〜2026-09-01。最良 Sharpe +0.46 は代表値ではない。

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

何を検証したか

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

成績の中央値

Sharpe(中央値)
-0.31
Max DD
-25.3%
勝率
—
Alpha(年率)
—
p-value
0.47
期間: 2022-03-01 → 2026-09-01
120通りの Sharpe:中央値 -0.31最良 0.46 (代表値ではない)最悪 -1.34p25–p75 -0.60–-0.06

仮説

原文は英語。

Moskowitz, Ooi, Pedersen (2012): each stock's own past return predicts its future return. Testing time-series momentum on the full Japanese stock universe.

採用しなかった理由

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

検証ファクト (5)

Best grid Sharpe ratio is 0.46 (p=0.32).
period 2022-03-01–2026-09-01; cost=5bps
sharpe_ratio0.46
Median Sharpe across 120 grid runs is -0.31.
Full grid of 120 parameter combinations.
sharpe_ratio-0.31
Median Sharpe in DOWN regime is 0.18 across 120 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio0.18
Median Sharpe in FLAT regime is -0.29 across 120 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.29
Median Sharpe in UP regime is -0.41 across 120 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.41

検証ラン (30)

runparamssharpeUPFLATDOWN
formation_days=20, holding_days=1, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-all-0000
cost_bps: 5
holding_days: 1
threshold_pct: 0
+0.17+1.01-0.14+0.41
formation_days=20, holding_days=1, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0001
cost_bps: 10
holding_days: 1
threshold_pct: 0
-0.14+0.71-0.46+0.12
formation_days=20, holding_days=1, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-all-0002
cost_bps: 5
holding_days: 1
threshold_pct: 0.05
+0.18+0.74+0.04-0.01
formation_days=20, holding_days=1, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-all-0004
cost_bps: 5
holding_days: 1
threshold_pct: 0.1
-0.05+0.53-0.14-1.35
formation_days=20, holding_days=5, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0007
cost_bps: 10
holding_days: 5
threshold_pct: 0
+0.26+1.01-0.14+1.03
formation_days=20, holding_days=5, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-all-0011
cost_bps: 10
holding_days: 5
threshold_pct: 0.1
-0.14+1.16-0.48-1.10
formation_days=20, holding_days=10, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-all-0015
cost_bps: 10
holding_days: 10
threshold_pct: 0.05
+0.33+1.06+0.01+0.31
formation_days=20, holding_days=20, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0019
cost_bps: 10
holding_days: 20
threshold_pct: 0
-0.27+2.21-0.97-0.21
formation_days=20, holding_days=20, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-all-0022
cost_bps: 5
holding_days: 20
threshold_pct: 0.1
+0.46+1.93-0.26+0.53
formation_days=20, holding_days=60, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-all-0024
cost_bps: 5
holding_days: 60
threshold_pct: 0
-0.06+0.34-0.26+0.22
formation_days=20, holding_days=60, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0025
cost_bps: 10
holding_days: 60
threshold_pct: 0
-0.09+0.32-0.29+0.20
formation_days=20, holding_days=60, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-all-0029
cost_bps: 10
holding_days: 60
threshold_pct: 0.1
+0.14+0.47-0.04+1.06
formation_days=60, holding_days=1, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-all-0033
cost_bps: 10
holding_days: 1
threshold_pct: 0.05
-0.68+1.39-1.39-1.33
formation_days=60, holding_days=5, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0037
cost_bps: 10
holding_days: 5
threshold_pct: 0
-0.17-0.14-0.22+0.68
formation_days=60, holding_days=5, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-all-0041
cost_bps: 10
holding_days: 5
threshold_pct: 0.1
+0.08+0.21+0.09-1.47
formation_days=60, holding_days=10, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-all-0045
cost_bps: 10
holding_days: 10
threshold_pct: 0.05
-0.39-0.50-0.47+2.46
formation_days=60, holding_days=20, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0049
cost_bps: 10
holding_days: 20
threshold_pct: 0
-0.18-0.34-0.23+6.57
formation_days=60, holding_days=20, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-all-0053
cost_bps: 10
holding_days: 20
threshold_pct: 0.1
+0.05+0.41-0.22+9.08
formation_days=60, holding_days=60, threshold_pct=0.05, cost_bps=10
r-ts-momentum-jp-all-0057
cost_bps: 10
holding_days: 60
threshold_pct: 0.05
-0.43-0.11-0.68+0.33
formation_days=120, holding_days=1, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0061
cost_bps: 10
holding_days: 1
threshold_pct: 0
-1.34-1.67-1.27-0.66
formation_days=120, holding_days=1, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-all-0062
cost_bps: 5
holding_days: 1
threshold_pct: 0.05
-0.94-1.29-0.88-0.47
formation_days=120, holding_days=5, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-all-0066
cost_bps: 5
holding_days: 5
threshold_pct: 0
-0.52-0.83-0.27-1.77
formation_days=120, holding_days=5, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-all-0070
cost_bps: 5
holding_days: 5
threshold_pct: 0.1
-0.26-0.44-0.05-1.21
formation_days=120, holding_days=10, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-all-0074
cost_bps: 5
holding_days: 10
threshold_pct: 0.05
-0.35-0.70-0.42+2.47
formation_days=120, holding_days=20, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-all-0078
cost_bps: 5
holding_days: 20
threshold_pct: 0
-0.84-0.63-1.22+6.76
formation_days=120, holding_days=20, threshold_pct=0.1, cost_bps=5
r-ts-momentum-jp-all-0082
cost_bps: 5
holding_days: 20
threshold_pct: 0.1
-0.72-0.94-1.01+5.17
formation_days=120, holding_days=60, threshold_pct=0.05, cost_bps=5
r-ts-momentum-jp-all-0086
cost_bps: 5
holding_days: 60
threshold_pct: 0.05
-0.69-0.80-0.83+0.41
formation_days=250, holding_days=1, threshold_pct=0, cost_bps=5
r-ts-momentum-jp-all-0090
cost_bps: 5
holding_days: 1
threshold_pct: 0
-0.59-1.23-0.43+0.20
formation_days=250, holding_days=1, threshold_pct=0, cost_bps=10
r-ts-momentum-jp-all-0091
cost_bps: 10
holding_days: 1
threshold_pct: 0
-0.93-1.63-0.74-0.11
formation_days=250, holding_days=1, threshold_pct=0.1, cost_bps=10
r-ts-momentum-jp-all-0095
cost_bps: 10
holding_days: 1
threshold_pct: 0.1
-1.08-2.38-0.64-0.06

対象ユニバース

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-24T02:22:16

関連する戦略