qbuntuqbuntu

Momentum × Volume Interaction (JP Growth Stocks)

slug: momentum-volume-jp-growth
performance summary
Sharpe (median)
-0.16
Max DD
-18.1%
Win rate
Alpha (ann.)
p-value
0.52
backtest period: 2022-05-022026-06-01
Sharpe across 320 grid runs:median -0.16best 0.79 (not representative)worst -1.77p25–p75 -0.500.12

Hypothesis

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.

Why it didn't work

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

Facts (7)

Average monthly return correlation with other strategies in DOWN regime: 0.11
Pairwise Pearson correlation of monthly returns across 42 strategies, filtered to DOWN regime months (N=3, N225 < SMA20 < SMA60)
correlation0.11
Average monthly return correlation with other strategies (full period): 0.07
Pairwise Pearson correlation of monthly returns across 42 strategies, full backtest period
correlation0.07
Best grid Sharpe ratio is 0.79 (p=0.12).
period 2022-05-02–2026-06-01; cost=5bps
sharpe_ratio0.79
Median Sharpe across 320 grid runs is -0.16.
Full grid of 320 parameter combinations.
sharpe_ratio-0.16
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.34 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.34

Runs (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.27+1.23-0.49+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.07+0.74-0.49+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.12+1.12-0.68+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.07+0.69-0.68+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.09+0.57-0.70+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.38+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.45+0.37-0.98-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.39-0.62-1.77+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.00-1.98+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.77-1.18-2.17+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.22+0.18+0.28-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.76-0.74-0.86+42.02
formation_days=60, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0090
cost_bps: 10
n_stocks: 20
regime_gate: false
+0.01+0.64-0.33+1.66
formation_days=60, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0104
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.10+0.19-0.23-0.02
formation_days=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0118
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.25-0.34-0.21-0.14
formation_days=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0132
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.22-0.38+0.44+3.74
formation_days=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0146
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.43+0.85+0.32+0.58
formation_days=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0160
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.55+1.32+0.15+0.77
formation_days=120, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0174
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.36+0.12-0.80+1.55
formation_days=120, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0188
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.21+1.34-0.64+0.02
formation_days=120, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=False
r-momentum-volume-jp-growth-0202
cost_bps: 10
n_stocks: 20
regime_gate: false
-0.30+0.36-0.84+1.05
formation_days=120, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-momentum-volume-jp-growth-0208
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.79+1.47+0.40+2.80
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.22+0.64-0.20+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.28-0.40-0.26-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.50+0.90+0.25+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.22+0.57+0.05+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.31+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.40+1.59-1.68+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.23+0.56-0.45-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.94-1.72-0.66-0.20

Target universe

Tokyo Stock Exchange Growth Market, ~495 stocks, tv >= 30M JPY
source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-07-30T01:21:10

Related strategies