qbuntuqbuntu

Momentum × Volume Interaction (JP All Stocks)

slug: momentum-volume-jp-all

Momentum × Volume Interaction (JP All Stocks) backtest. Median Sharpe across 320 parameter sets is -0.01. p-value is 0.48. Max DD is -18.7%. Period: 2022-05-02 to 2026-09-01. Best Sharpe +1.08 is not the representative figure.

Verdict: rejected. The median reaches neither promising (Sharpe > 0.5 and p-value < 0.05) nor marginal (Sharpe > 0.05 and best p-value < 0.10). Primary reason: no_edge. It is not regime, frequency, or cost, and the median does not clear the bar.

Performance summary

Sharpe (median)
-0.01
Max DD
-18.7%
Win rate
—
Alpha (ann.)
—
p-value
0.48
backtest period: 2022-05-02 → 2026-09-01
Sharpe across 320 grid runs:median -0.01best 1.08 (not representative)worst -1.38p25–p75 -0.30–0.33

Hypothesis

Lee & Swaminathan (2000): volume confirms momentum quality. Testing on the full Japanese stock universe.

Why it didn't work

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

Facts (5)

Best grid Sharpe ratio is 1.08 (p=0.03).
period 2022-05-02–2026-09-01; cost=5bps
sharpe_ratio1.08
Median Sharpe across 320 grid runs is -0.01.
Full grid of 320 parameter combinations.
sharpe_ratio-0.01
Median Sharpe in DOWN regime is 0.06 across 320 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio0.06
Median Sharpe in FLAT regime is -0.24 across 320 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.24
Median Sharpe in UP regime is 0.24 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.24

Runs (30)

runparamssharpeUPFLATDOWN
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.16+1.15-0.69+0.07
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-momentum-volume-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.11+0.36-0.69+0.07
formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0002
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.01+0.98-0.85-0.12
formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-momentum-volume-jp-all-0003
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.24+0.29-0.85-0.12
formation_days=20, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0012
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.11+0.54-0.15-1.21
formation_days=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0018
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.04+0.65-0.35+1.61
formation_days=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0032
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.11+1.04-0.37+1.37
formation_days=20, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0046
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.04-0.20-1.76-0.70
formation_days=20, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0060
cost_bps: 5
n_stocks: 50
regime_gate: false
-1.20-0.60-1.71-1.59
formation_days=20, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0062
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.38-0.77-1.88-1.84
formation_days=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0064
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.29+1.04-0.20+0.09
formation_days=20, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0076
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.74-0.66-0.90-0.19
formation_days=60, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0090
cost_bps: 10
n_stocks: 20
regime_gate: false
-0.28+0.01-0.57-0.46
formation_days=60, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0104
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.79-0.74-0.93-0.42
formation_days=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0118
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.24+1.40-2.18+1.09
formation_days=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0132
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.09+0.67-1.43+1.29
formation_days=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0146
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.62+0.14+0.79+1.91
formation_days=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0160
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.19+0.54-0.29+0.45
formation_days=120, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0174
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.87-0.51-0.81-2.63
formation_days=120, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0188
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.07-0.09+0.73-2.80
formation_days=120, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0202
cost_bps: 10
n_stocks: 20
regime_gate: false
+0.19+0.57-0.30+0.11
formation_days=120, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=True
r-momentum-volume-jp-all-0209
cost_bps: 5
n_stocks: 5
regime_gate: true
+1.08+0.68+1.16+1.85
formation_days=120, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=True
r-momentum-volume-jp-all-0217
cost_bps: 5
n_stocks: 20
regime_gate: true
+0.70+0.79+0.18+2.18
formation_days=120, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=True
r-momentum-volume-jp-all-0231
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.53+0.47+0.74-0.26
formation_days=250, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0240
cost_bps: 5
n_stocks: 5
regime_gate: false
0.00-0.38+0.09+1.75
formation_days=250, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0246
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.23-0.68-0.08+1.66
formation_days=250, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0260
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.08-0.38+0.23+1.59
formation_days=250, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0274
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.28+0.24-0.68+1.91
formation_days=250, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-all-0288
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.12+0.02-0.41+12.28
formation_days=250, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-all-0302
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.10+0.37-0.54-1.52

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-09-26T05:57:59

Related strategies