qbuntuqbuntu
rejectedno_edge· equity· divergence· technical· volume

VPTダイバージェンス(東証グロース)のバックテスト

VPT Divergence (JP Growth Stocks)

slug: vpt-divergence-jp-growth

東証グロース(約495銘柄)でVPTダイバージェンスをバックテストした。144通りの中央値 Sharpe は -0.79。p-value は 0.10。Max DD は -27.2%。期間は 2022-03-01〜2026-09-01。最良 Sharpe +0.31 は代表値ではない。

判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。主因は no_edge。レジーム・取引回数・コストには分類されず、中央値が採用ラインに届いていない。

成績の中央値

Sharpe(中央値)
-0.79
Max DD
-27.2%
勝率
—
Alpha(年率)
—
p-value
0.10
期間: 2022-03-01 → 2026-09-01
144通りの Sharpe:中央値 -0.79最良 0.31 (代表値ではない)最悪 -2.25p25–p75 -1.21–-0.37

仮説

原文は英語。

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.

採用しなかった理由

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

検証ファクト (5)

Best grid Sharpe ratio is 0.31 (p=0.52).
period 2022-03-01–2026-09-01; cost=5bps
sharpe_ratio0.31
Median Sharpe across 144 grid runs is -0.79.
Full grid of 144 parameter combinations.
sharpe_ratio-0.79
Median Sharpe in DOWN regime is -1.63 across 144 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-1.63
Median Sharpe in FLAT regime is -0.87 across 144 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.87
Median Sharpe in UP regime is -0.63 across 144 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.63

検証ラン (30)

runparamssharpeUPFLATDOWN
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-growth-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
-1.07-0.20-1.29-2.35
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-vpt-divergence-jp-growth-0001
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.74-1.16-0.53-1.62
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0002
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.49-0.54-0.39-1.84
vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1
r-vpt-divergence-jp-growth-0003
cost_bps: 5
n_stocks: 5
regime_gate: true
-1.14-0.29-1.29-2.35
vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-vpt-divergence-jp-growth-0006
cost_bps: 10
n_stocks: 5
regime_gate: false
-1.20-0.32-1.43-2.49
vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-growth-0010
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.71-0.62-0.62-1.68
vpt_lookback=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-vpt-divergence-jp-growth-0016
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.51+0.56-0.71-2.05
vpt_lookback=20, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-growth-0022
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.65+0.46-0.86-2.32
vpt_lookback=20, n_stocks=20, cost_bps=5, regime_gate=True, holding_days=5
r-vpt-divergence-jp-growth-0028
cost_bps: 5
n_stocks: 20
regime_gate: true
-0.25-0.12-0.15-2.81
vpt_lookback=20, n_stocks=20, cost_bps=10, regime_gate=True, holding_days=5
r-vpt-divergence-jp-growth-0034
cost_bps: 10
n_stocks: 20
regime_gate: true
-0.43-0.22-0.36-3.10
vpt_lookback=20, n_stocks=50, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-growth-0036
cost_bps: 5
n_stocks: 50
regime_gate: false
-1.21-1.03-1.11-3.04
vpt_lookback=20, n_stocks=50, cost_bps=5, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0041
cost_bps: 5
n_stocks: 50
regime_gate: true
-0.36+0.30-0.66-1.13
vpt_lookback=20, n_stocks=50, cost_bps=10, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0047
cost_bps: 10
n_stocks: 50
regime_gate: true
-0.50+0.24-0.84-1.27
vpt_lookback=40, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0053
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.04-2.61+0.70-2.08
vpt_lookback=40, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0059
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.01-2.65+0.65-2.20
vpt_lookback=40, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0065
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.29-1.21+0.85-6.13
vpt_lookback=40, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0071
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.23-1.25+0.78-6.33
vpt_lookback=40, n_stocks=20, cost_bps=5, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0077
cost_bps: 5
n_stocks: 20
regime_gate: true
+0.14-0.65+0.55-1.26
vpt_lookback=40, n_stocks=20, cost_bps=10, regime_gate=True, holding_days=20
r-vpt-divergence-jp-growth-0083
cost_bps: 10
n_stocks: 20
regime_gate: true
+0.04-0.70+0.43-1.44
vpt_lookback=40, n_stocks=50, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0086
cost_bps: 5
n_stocks: 50
regime_gate: false
+0.31+1.67-0.04-0.36
vpt_lookback=40, n_stocks=50, cost_bps=10, regime_gate=False, holding_days=1
r-vpt-divergence-jp-growth-0090
cost_bps: 10
n_stocks: 50
regime_gate: false
-2.25-1.92-2.26-3.12
vpt_lookback=40, n_stocks=50, cost_bps=10, regime_gate=False, holding_days=5
r-vpt-divergence-jp-growth-0091
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.72-0.02-1.06-0.55
vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-vpt-divergence-jp-growth-0096
cost_bps: 5
n_stocks: 5
regime_gate: false
-1.69-2.99-1.34-1.20
vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0098
cost_bps: 5
n_stocks: 5
regime_gate: false
-1.21-2.59-0.99-0.76
vpt_lookback=60, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0104
cost_bps: 10
n_stocks: 5
regime_gate: false
-1.27-2.68-1.04-0.82
vpt_lookback=60, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0110
cost_bps: 5
n_stocks: 10
regime_gate: false
-1.03-2.67-0.76-1.50
vpt_lookback=60, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0116
cost_bps: 10
n_stocks: 10
regime_gate: false
-1.10-2.79-0.82-1.65
vpt_lookback=60, n_stocks=20, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0122
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.93-0.67-0.88-29.89
vpt_lookback=60, n_stocks=20, cost_bps=10, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0128
cost_bps: 10
n_stocks: 20
regime_gate: false
-1.02-0.79-0.97-31.23
vpt_lookback=60, n_stocks=50, cost_bps=5, regime_gate=False, holding_days=20
r-vpt-divergence-jp-growth-0134
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.25+1.38-0.61-1.91

対象ユニバース

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:21

関連する戦略