qbuntuqbuntu
rejectedregime_dependent· equity· anomaly· factor· liquidity· turnover

回転率ファクター(東証グロース)のバックテスト

Turnover Factor (JP Growth Stocks)

slug: turnover-jp-growth

東証グロース(約495銘柄)で回転率ファクターをバックテストした。320通りの中央値 Sharpe は -0.01。p-value は 0.41。Max DD は -26.2%。期間は 2022-05-02〜2026-09-01。最良 Sharpe +1.29 は代表値ではない。

判定は rejected。中央値は promising(Sharpe > 0.5 かつ p-value < 0.05)にも marginal(Sharpe > 0.05 かつ最良 p-value < 0.10)にも届いていない。上昇・横ばい・下落で結果が割れ、中央値としては安定しない。

成績の中央値

Sharpe(中央値)
-0.01
Max DD
-26.2%
勝率
—
Alpha(年率)
—
p-value
0.41
期間: 2022-05-02 → 2026-09-01
320通りの Sharpe:中央値 -0.01最良 1.29 (代表値ではない)最悪 -1.05p25–p75 -0.29–0.42

仮説

原文は英語。

Datar, Naik, Radcliffe (1998): low turnover stocks outperform. Turnover (volume/avg_volume) proxies investor attention and liquidity. LONG lowest turnover, SHORT highest turnover.

採用しなかった理由

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

検証ファクト (5)

Best grid Sharpe ratio is 1.29 (p=0.0083).
period 2022-05-02–2026-09-01; cost=5bps
sharpe_ratio1.29
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 2.85 across 320 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio2.85
Median Sharpe in FLAT regime is -0.21 across 320 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.21
Median Sharpe in UP regime is 0.18 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.18

検証ラン (30)

runparamssharpeUPFLATDOWN
formation_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.83+2.28+0.37+8.34
formation_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-turnover-jp-growth-0001
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.46+0.39+0.37+8.34
formation_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0002
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.70+2.12+0.26+7.77
formation_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-turnover-jp-growth-0003
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.35+0.29+0.26+7.77
formation_days=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0012
cost_bps: 5
n_stocks: 50
regime_gate: false
+0.63+1.29+0.18+7.49
formation_days=10, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0018
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.58+1.04+0.33+4.25
formation_days=10, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0032
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.05+0.32-0.25+0.73
formation_days=10, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0046
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.01-0.63-1.17+0.06
formation_days=10, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0060
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.25-0.01-0.45+2.44
formation_days=10, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0064
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.01+1.00-0.30+0.39
formation_days=10, holding_days=60, n_stocks=20, cost_bps=10, regime_gate=True
r-turnover-jp-growth-0075
cost_bps: 10
n_stocks: 20
regime_gate: true
-0.55-0.71-0.63+2.89
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0080
cost_bps: 5
n_stocks: 5
regime_gate: false
+1.29+2.20+0.80+4.85
formation_days=20, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0090
cost_bps: 10
n_stocks: 20
regime_gate: false
+0.72+1.55+0.22+23.07
formation_days=20, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0104
cost_bps: 5
n_stocks: 20
regime_gate: false
+0.79+1.78+0.19+4.60
formation_days=20, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0118
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.13-0.49-0.08+1.31
formation_days=20, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0126
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.05-1.16-1.13+2.82
formation_days=20, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True
r-turnover-jp-growth-0133
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.32-1.23+0.69+5.39
formation_days=20, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=True
r-turnover-jp-growth-0147
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.39-0.17-0.53+0.12
formation_days=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-turnover-jp-growth-0161
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.46+0.09+0.45+5.88
formation_days=40, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True
r-turnover-jp-growth-0175
cost_bps: 10
n_stocks: 50
regime_gate: true
-0.04-0.31-0.11+5.11
formation_days=40, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True
r-turnover-jp-growth-0189
cost_bps: 5
n_stocks: 50
regime_gate: true
+0.21+0.36-0.13+2.91
formation_days=40, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=True
r-turnover-jp-growth-0203
cost_bps: 10
n_stocks: 20
regime_gate: true
-0.06+0.16-0.18+0.30
formation_days=40, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=True
r-turnover-jp-growth-0217
cost_bps: 5
n_stocks: 20
regime_gate: true
+0.50-0.04+0.59+2.07
formation_days=40, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=True
r-turnover-jp-growth-0231
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.27-0.66-0.34+6.77
formation_days=60, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0240
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.69+1.31+0.30+5.64
formation_days=60, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0246
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.75+1.41+0.31+9.47
formation_days=60, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0260
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.55+1.99-0.11+2.67
formation_days=60, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0274
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.15+0.84-0.37-1.13
formation_days=60, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-growth-0288
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.19+1.22-0.25+0.31
formation_days=60, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-turnover-jp-growth-0302
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.56-0.62-0.75+1.72

対象ユニバース

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-24T21:54:27

関連する戦略