qbuntuqbuntu

回転率ファクター(東証全銘柄)のバックテスト

Turnover Factor (JP All Stocks)

slug: turnover-jp-all

東証全銘柄(約3,747銘柄)で回転率ファクターをバックテストした。320通りの中央値 Sharpe は -0.20。p-value は 0.43。Max DD は -27.6%。期間は 2022-05-02〜2026-09-01。最良 Sharpe +0.89 は代表値ではない。

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

成績の中央値

Sharpe(中央値)
-0.20
Max DD
-27.6%
勝率
—
Alpha(年率)
—
p-value
0.43
期間: 2022-05-02 → 2026-09-01
320通りの Sharpe:中央値 -0.20最良 0.89 (代表値ではない)最悪 -1.25p25–p75 -0.51–0.11

仮説

原文は英語。

Datar, Naik, Radcliffe (1998): low turnover stocks outperform. Testing on the full Japanese stock universe.

採用しなかった理由

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

検証ファクト (5)

Best grid Sharpe ratio is 0.89 (p=0.064).
period 2022-05-02–2026-09-01; cost=5bps
sharpe_ratio0.89
Median Sharpe across 320 grid runs is -0.20.
Full grid of 320 parameter combinations.
sharpe_ratio-0.20
Median Sharpe in DOWN regime is -0.11 across 320 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.11
Median Sharpe in FLAT regime is -0.44 across 320 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.44
Median Sharpe in UP regime is 0.02 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.02

検証ラン (30)

runparamssharpeUPFLATDOWN
formation_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.16+0.87+0.10-1.01
formation_days=10, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-turnover-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.23-0.16+0.10-1.01
formation_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-turnover-jp-all-0002
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.04+0.73-0.03-1.10
formation_days=10, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-turnover-jp-all-0003
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.34-0.29-0.03-1.10
formation_days=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-turnover-jp-all-0012
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.20-0.04-0.40-0.03
formation_days=10, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-turnover-jp-all-0018
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.10+1.88-0.50-0.98
formation_days=10, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-all-0032
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.02+1.07+0.17-2.29
formation_days=10, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-turnover-jp-all-0046
cost_bps: 10
n_stocks: 50
regime_gate: false
-0.89-0.47-1.30-0.33
formation_days=10, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False
r-turnover-jp-all-0060
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.32-0.14-0.77+0.70
formation_days=10, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-all-0064
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.09+0.05+0.32-0.54
formation_days=10, holding_days=60, n_stocks=20, cost_bps=10, regime_gate=True
r-turnover-jp-all-0075
cost_bps: 10
n_stocks: 20
regime_gate: true
-0.48-0.56-0.52+0.07
formation_days=20, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True
r-turnover-jp-all-0089
cost_bps: 5
n_stocks: 20
regime_gate: true
+0.09-0.02+0.22+0.05
formation_days=20, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-turnover-jp-all-0103
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.08+0.32-0.43+0.24
formation_days=20, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=True
r-turnover-jp-all-0117
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.57-0.39-0.72-0.53
formation_days=20, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=True
r-turnover-jp-all-0131
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.53-0.56-0.34-1.45
formation_days=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=True
r-turnover-jp-all-0145
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.49-0.34-0.64-0.34
formation_days=20, holding_days=60, n_stocks=50, cost_bps=10, regime_gate=True
r-turnover-jp-all-0159
cost_bps: 10
n_stocks: 50
regime_gate: true
-0.80-0.87-0.92-0.05
formation_days=40, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True
r-turnover-jp-all-0173
cost_bps: 5
n_stocks: 50
regime_gate: true
+0.08+0.17-0.03+0.10
formation_days=40, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False
r-turnover-jp-all-0184
cost_bps: 5
n_stocks: 20
regime_gate: false
+0.89+1.95+0.08+0.72
formation_days=40, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False
r-turnover-jp-all-0188
cost_bps: 5
n_stocks: 50
regime_gate: false
+0.43+1.30-0.39+0.35
formation_days=40, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=False
r-turnover-jp-all-0202
cost_bps: 10
n_stocks: 20
regime_gate: false
-0.26+0.87-0.90-1.32
formation_days=40, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=False
r-turnover-jp-all-0216
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.02+0.67-0.32-0.84
formation_days=40, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=False
r-turnover-jp-all-0230
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.42+0.12-0.70-0.43
formation_days=60, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-all-0240
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.41+0.59+0.06+0.85
formation_days=60, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=True
r-turnover-jp-all-0245
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.23-0.04+0.40+0.38
formation_days=60, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=True
r-turnover-jp-all-0259
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.35-0.38-0.64+0.61
formation_days=60, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True
r-turnover-jp-all-0273
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.47-0.00-0.95-0.27
formation_days=60, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=True
r-turnover-jp-all-0287
cost_bps: 10
n_stocks: 50
regime_gate: true
-1.25-0.45-2.53+0.20
formation_days=60, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-turnover-jp-all-0288
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.46+1.20-0.40+0.96
formation_days=60, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-turnover-jp-all-0302
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.00-0.51-1.95+0.31

対象ユニバース

Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks

関連する戦略

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-26T05:54:41

関連する戦略