qbuntuqbuntu
rejectedregime_dependent· equity· anomaly· factor· volume

Volume Anomaly (JP Growth Stocks)

slug: volume-anomaly-jp-growth

Volume Anomaly (JP Growth Stocks) backtest. Median Sharpe across 685 parameter sets is +0.00. p-value is 0.63. Max DD is -45.2%. Period: 2022-02-01 to 2026-09-01. Best Sharpe +0.75 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). Results split across up, flat, and down markets, so the median is not stable.

Performance summary

Sharpe (median)
+0.00
Max DD
-45.2%
Win rate
—
Alpha (ann.)
—
p-value
0.63
backtest period: 2022-02-01 → 2026-09-01
Sharpe across 685 grid runs:median 0.00best 0.75 (not representative)worst -1.15p25–p75 -0.25–0.19

Hypothesis

Campbell, Grossman, Wang (1993): abnormal volume spikes predict subsequent price drift or reversal. High volume + positive return signals momentum continuation; high volume + negative return signals overreaction. Tests momentum, reversal, and volume-only directions.

Why it didn't work

Across 685 grid combinations, median Sharpe=0.00, best=0.75. Primary failure mode: regime_dependent.

Facts (5)

Best grid Sharpe ratio is 0.75 (p=0.13).
period 2022-02-01–2026-09-01; cost=5bps
sharpe_ratio0.75
Median Sharpe across 685 grid runs is 0.00.
Full grid of 685 parameter combinations.
sharpe_ratio0
Median Sharpe in DOWN regime is -0.86 across 685 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.86
Median Sharpe in FLAT regime is -0.10 across 685 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.10
Median Sharpe in UP regime is 0.21 across 685 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.21

Runs (30)

runparamssharpeUPFLATDOWN
volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=False
r-volume-anomaly-jp-growth-0000
cost_bps: 5
direction: "momentum"
regime_gate: false
-0.43-0.68-0.34-1.19
volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0001
cost_bps: 5
direction: "momentum"
regime_gate: true
-0.59-1.06-0.34-1.19
volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0002
cost_bps: 10
direction: "momentum"
regime_gate: false
-0.62-0.89-0.52-1.64
volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=10, regime_gate=True
r-volume-anomaly-jp-growth-0003
cost_bps: 10
direction: "momentum"
regime_gate: true
-0.73-1.16-0.52-1.64
volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=vol_only, cost_bps=5, regime_gate=False
r-volume-anomaly-jp-growth-0008
cost_bps: 5
direction: "vol_only"
regime_gate: false
-0.92-1.45-0.78-2.13
volume_lookback=5, volume_threshold=1.5, holding_days=20, direction=momentum, cost_bps=5, regime_gate=False
r-volume-anomaly-jp-growth-0036
cost_bps: 5
direction: "momentum"
regime_gate: false
+0.40+0.10+0.58-0.77
volume_lookback=5, volume_threshold=1.5, holding_days=20, direction=momentum, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0037
cost_bps: 5
direction: "momentum"
regime_gate: true
+0.29-0.03+0.58-0.77
volume_lookback=5, volume_threshold=2, holding_days=5, direction=vol_only, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0069
cost_bps: 5
direction: "vol_only"
regime_gate: true
0.00+0.86-0.04-2.51
volume_lookback=5, volume_threshold=3, holding_days=1, direction=reversal, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0101
cost_bps: 5
direction: "reversal"
regime_gate: true
-0.38-0.98-0.13-2.79
volume_lookback=5, volume_threshold=3, holding_days=20, direction=momentum, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0133
cost_bps: 5
direction: "momentum"
regime_gate: true
+0.29+0.87-0.05-0.86
volume_lookback=5, volume_threshold=5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=False
r-volume-anomaly-jp-growth-0144
cost_bps: 5
direction: "momentum"
regime_gate: false
-0.18-0.28-0.18+0.25
volume_lookback=5, volume_threshold=5, holding_days=10, direction=momentum, cost_bps=10, regime_gate=True
r-volume-anomaly-jp-growth-0171
cost_bps: 10
direction: "momentum"
regime_gate: true
+0.06+0.80-0.56-1.16
volume_lookback=10, volume_threshold=1.5, holding_days=5, direction=momentum, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0205
cost_bps: 5
direction: "momentum"
regime_gate: true
+0.26+1.16-0.25-2.36
volume_lookback=10, volume_threshold=1.5, holding_days=20, direction=vol_only, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0237
cost_bps: 5
direction: "vol_only"
regime_gate: true
-0.22+0.12-0.25-2.11
volume_lookback=10, volume_threshold=2, holding_days=10, direction=reversal, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0269
cost_bps: 5
direction: "reversal"
regime_gate: true
+0.15-0.07+0.31-1.02
volume_lookback=10, volume_threshold=3, holding_days=5, direction=reversal, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0305
cost_bps: 5
direction: "reversal"
regime_gate: true
+0.19+0.55+0.10-1.33
volume_lookback=10, volume_threshold=5, holding_days=1, direction=reversal, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0341
cost_bps: 5
direction: "reversal"
regime_gate: true
+0.44+0.42+0.47-0.16
volume_lookback=10, volume_threshold=5, holding_days=10, direction=reversal, cost_bps=5, regime_gate=True
r-volume-anomaly-jp-growth-0365
cost_bps: 5
direction: "reversal"
regime_gate: true
+0.75+0.89+0.93-0.90
volume_lookback=20, volume_threshold=1.5, holding_days=1, direction=reversal, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0390
cost_bps: 10
direction: "reversal"
regime_gate: false
+0.27-0.23+0.41+0.09
volume_lookback=20, volume_threshold=1.5, holding_days=20, direction=momentum, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0422
cost_bps: 10
direction: "momentum"
regime_gate: false
+0.29+0.62+0.29-3.46
volume_lookback=20, volume_threshold=2, holding_days=5, direction=vol_only, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0454
cost_bps: 10
direction: "vol_only"
regime_gate: false
-0.48+0.60-0.56-3.96
volume_lookback=20, volume_threshold=3, holding_days=1, direction=reversal, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0486
cost_bps: 10
direction: "reversal"
regime_gate: false
+0.11-0.50+0.34+0.24
volume_lookback=20, volume_threshold=3, holding_days=20, direction=vol_only, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0526
cost_bps: 10
direction: "vol_only"
regime_gate: false
-0.21-0.15-0.02-5.33
volume_lookback=60, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=False
r-volume-anomaly-jp-growth-0576
cost_bps: 5
direction: "momentum"
regime_gate: false
-0.64+0.05-0.86+0.13
volume_lookback=60, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0578
cost_bps: 10
direction: "momentum"
regime_gate: false
-0.83-0.16-1.05-0.49
volume_lookback=60, volume_threshold=1.5, holding_days=1, direction=vol_only, cost_bps=10, regime_gate=False
r-volume-anomaly-jp-growth-0586
cost_bps: 10
direction: "vol_only"
regime_gate: false
-1.15-0.69-1.19-1.92
volume_lookback=60, volume_threshold=1.5, holding_days=10, direction=vol_only, cost_bps=10, regime_gate=True
r-volume-anomaly-jp-growth-0611
cost_bps: 10
direction: "vol_only"
regime_gate: true
-0.25+0.13-0.29-3.27
volume_lookback=60, volume_threshold=2, holding_days=5, direction=vol_only, cost_bps=10, regime_gate=True
r-volume-anomaly-jp-growth-0647
cost_bps: 10
direction: "vol_only"
regime_gate: true
-0.54+0.53-0.68-3.05
volume_lookback=60, volume_threshold=3, holding_days=1, direction=reversal, cost_bps=10, regime_gate=True
r-volume-anomaly-jp-growth-0679
cost_bps: 10
direction: "reversal"
regime_gate: true
+0.13-1.01+0.49-1.17
volume_lookback=60, volume_threshold=5, holding_days=1, direction=reversal, cost_bps=5, regime_gate=False
r-volume-anomaly-jp-growth-0724
cost_bps: 5
direction: "reversal"
regime_gate: false
+0.72+0.05+0.94+0.10

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

Related strategies