qbuntuqbuntu
rejectedregime_dependent· equity· divergence· technical· volume

VPT Divergence (JP All Stocks)

slug: vpt-divergence-jp-all
performance summary
Sharpe (median)
-0.06
Max DD
-13.2%
Win rate
Alpha (ann.)
p-value
0.48
backtest period: 2022-03-012026-02-02
Sharpe across 72 grid runs:median -0.06best 1.07 (not representative)worst -2.04p25–p75 -0.350.38

Hypothesis

Volume-Price-Trend (VPT) accumulates volume signed by returns; a divergence between the VPT path and the price path is read as hidden accumulation/distribution. Ranking on VPT-price divergence tests whether price subsequently closes the gap.

Why it didn't work

Across 72 grid combinations, median Sharpe=-0.06, best=1.07. Primary failure mode: regime_dependent.

Facts (5)

Best grid Sharpe ratio is 1.07 (p=0.039).
period 2022-03-01–2026-02-02; cost=5bps
sharpe_ratio1.07
Median Sharpe across 72 grid runs is -0.06.
Full grid of 72 parameter combinations.
sharpe_ratio-0.06
Median Sharpe in DOWN regime is -3.57 across 72 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-3.57
Median Sharpe in FLAT regime is -0.42 across 72 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.42
Median Sharpe in UP regime is 1.53 across 72 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio1.53

Runs (30)

runparamssharpeUPFLATDOWN
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.50+2.05-1.75+2.97
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-vpt-divergence-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.58+1.73+0.11-4.37
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0002
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.03+1.23-0.43-5.66
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1
r-vpt-divergence-jp-all-0003
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.71+2.12-1.75+2.97
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20
r-vpt-divergence-jp-all-0005
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.16+0.65-0.43-5.66
vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0006
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.74+1.84-2.03+2.48
vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0008
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.04+1.18-0.51-5.92
vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0010
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.48+1.80-0.04-4.70
vpt_lookback=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0012
cost_bps: 5
n_stocks: 10
regime_gate: false
-1.63+0.95-2.68+1.49
vpt_lookback=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=5
r-vpt-divergence-jp-all-0013
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.08+1.31-0.77-3.90
vpt_lookback=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1
r-vpt-divergence-jp-all-0015
cost_bps: 5
n_stocks: 10
regime_gate: true
-1.50+1.19-2.68+1.49
vpt_lookback=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=20
r-vpt-divergence-jp-all-0017
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.29+0.59-0.66-1.14
vpt_lookback=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0018
cost_bps: 10
n_stocks: 10
regime_gate: false
-2.04+0.47-3.12+0.78
vpt_lookback=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0020
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.28+0.85-0.78-1.28
vpt_lookback=20, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0022
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.18+1.81-1.00-4.38
vpt_lookback=40, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0048
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.35+2.06-0.99-4.32
vpt_lookback=40, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0050
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.20+1.63-0.10-3.17
vpt_lookback=40, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0052
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.42+2.15-0.10-2.73
vpt_lookback=40, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0054
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.58+1.84-1.22-4.96
vpt_lookback=40, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0056
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.12+1.57-0.19-3.25
vpt_lookback=40, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0058
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.33+2.11-0.22-2.88
vpt_lookback=40, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0060
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.80+1.41-1.82-0.83
vpt_lookback=40, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0062
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.21+0.73-0.50-2.22
vpt_lookback=40, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0064
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.33+2.26-0.22-1.79
vpt_lookback=40, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0066
cost_bps: 10
n_stocks: 10
regime_gate: false
-1.17+1.11-2.26-1.45
vpt_lookback=40, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-all-0068
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.33+0.64-0.63-2.37
vpt_lookback=40, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0070
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.18+2.18-0.42-1.98
vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-all-0096
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.84+1.57+0.73-1.24
vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-vpt-divergence-jp-all-0097
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.95+2.10+0.74-4.88
vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5
r-vpt-divergence-jp-all-0100
cost_bps: 5
n_stocks: 5
regime_gate: true
+1.07+2.57+0.74-4.88

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-08-02T16:26:06

Related strategies