Time-Series Momentum (JP All Stocks)
slug: ts-momentum-jp-all
performance summary
Sharpe (median)
-0.19
Max DD
-25.3%
Win rate
—
Alpha (ann.)
—
p-value
0.51
backtest period: 2022-03-01 → 2026-02-02
Sharpe across 120 grid runs:median -0.19best 1.09 (not representative)worst -1.45p25–p75 -0.50–0.13
Hypothesis
Moskowitz, Ooi, Pedersen (2012): each stock's own past return predicts its future return. Testing time-series momentum on the full Japanese stock universe.
Why it didn't work
Across 120 grid combinations, median Sharpe=-0.19, best=1.09. Primary failure mode: no_edge.
Facts (5)
Best grid Sharpe ratio is 1.09 (p=0.032).
period 2022-03-01–2026-02-02; cost=5bps
cite ↗ /cite/ts-momentum-jp-all-fact-best-sharpevia r-ts-momentum-jp-all-0006
Median Sharpe across 120 grid runs is -0.19.
Full grid of 120 parameter combinations.
Median Sharpe in DOWN regime is 0.18 across 120 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
Median Sharpe in FLAT regime is -0.28 across 120 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
Median Sharpe in UP regime is 0.16 across 120 runs.
Regime=UP, N225 SMA20/SMA60 classification.
Runs (30)
| run | params | sharpe | UP | FLAT | DOWN |
|---|---|---|---|---|---|
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.57 | +1.74 | +0.21 | +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.25 | +1.44 | -0.11 | +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.49 | +1.10 | +0.36 | -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.04 | +0.71 | -0.01 | -1.35 |
formation_days=20, holding_days=5, threshold_pct=0, cost_bps=5 r-ts-momentum-jp-all-0006 | cost_bps: 5 holding_days: 5 threshold_pct: 0 | +1.09 | +2.39 | +0.61 | +1.18 |
formation_days=20, holding_days=5, threshold_pct=0.05, cost_bps=5 r-ts-momentum-jp-all-0008 | cost_bps: 5 holding_days: 5 threshold_pct: 0.05 | +0.66 | +1.96 | +0.22 | -0.01 |
formation_days=20, holding_days=10, threshold_pct=0, cost_bps=5 r-ts-momentum-jp-all-0012 | cost_bps: 5 holding_days: 10 threshold_pct: 0 | +0.44 | +2.73 | -0.10 | +0.35 |
formation_days=20, holding_days=10, threshold_pct=0.1, cost_bps=5 r-ts-momentum-jp-all-0016 | cost_bps: 5 holding_days: 10 threshold_pct: 0.1 | +0.32 | +2.17 | -0.23 | +0.75 |
formation_days=20, holding_days=20, threshold_pct=0.05, cost_bps=5 r-ts-momentum-jp-all-0020 | cost_bps: 5 holding_days: 20 threshold_pct: 0.05 | +0.23 | +2.38 | -0.72 | +0.04 |
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.03 | +2.13 | -0.43 | +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.06 | +2.08 | -0.46 | +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.06 | +1.80 | -0.28 | +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.64 | +2.12 | -1.21 | -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.14 | +0.34 | +0.05 | +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.31 | +0.43 | +0.35 | -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.02 | +0.67 | -0.26 | +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.00 | +0.89 | -0.43 | +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.17 | +1.44 | -0.27 | +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.49 | +0.31 | -0.79 | +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.45 | -2.04 | -1.39 | -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 | -1.01 | -1.39 | -1.00 | -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.56 | -1.02 | -0.28 | -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.24 | -0.65 | +0.04 | -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.16 | -0.30 | -0.30 | +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.75 | +0.02 | -1.38 | +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.51 | -0.31 | -1.10 | +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.79 | -0.70 | -1.10 | +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.64 | -0.73 | -0.70 | +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.98 | -1.15 | -1.01 | -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.19 | -2.21 | -0.92 | -0.06 |
Target universe
Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks
Related strategies
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-28T01:10:24