qbuntuqbuntu

Skewness Anomaly (JP All Stocks)

slug: skewness-anomaly-jp-all

Skewness Anomaly (JP All Stocks) backtest. Median Sharpe across 160 parameter sets is -0.56. p-value is 0.22. Max DD is -32.5%. Period: 2022-02-01 to 2026-09-01. Best Sharpe +0.27 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). Primary reason: no_edge. It is not regime, frequency, or cost, and the median does not clear the bar.

Performance summary

Sharpe (median)
-0.56
Max DD
-32.5%
Win rate
—
Alpha (ann.)
—
p-value
0.22
backtest period: 2022-02-01 → 2026-09-01
Sharpe across 160 grid runs:median -0.56best 0.27 (not representative)worst -1.50p25–p75 -0.96–-0.17

Hypothesis

Boyer, Mitton, Vorkink (2010): stocks with high expected skewness earn lower returns. Testing on the full Japanese stock universe.

Why it didn't work

Across 160 grid combinations, median Sharpe=-0.56, best=0.27. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 0.27 (p=0.56).
period 2022-02-01–2026-09-01; cost=5bps
sharpe_ratio0.27
Median Sharpe across 160 grid runs is -0.56.
Full grid of 160 parameter combinations.
sharpe_ratio-0.56
Median Sharpe in DOWN regime is -0.44 across 160 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.44
Median Sharpe in FLAT regime is -0.47 across 160 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.47
Median Sharpe in UP regime is -0.94 across 160 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.94

Runs (30)

runparamssharpeUPFLATDOWN
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.49-1.46+0.03-1.24
formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.36-1.19+0.03-1.24
formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0002
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.75-1.65-0.27-1.54
formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0003
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.61-1.31-0.27-1.54
formation_days=20, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0004
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.31-0.90-0.25+2.33
formation_days=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0018
cost_bps: 10
n_stocks: 5
regime_gate: false
-1.17-1.97-0.86-0.42
formation_days=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0032
cost_bps: 5
n_stocks: 5
regime_gate: false
-1.24-2.42-0.72-2.51
formation_days=20, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0038
cost_bps: 10
n_stocks: 10
regime_gate: false
-1.08-2.35-0.61-1.26
formation_days=20, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0052
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.86-2.54-0.43-0.45
formation_days=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0064
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.13+0.10-0.47+1.17
formation_days=20, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0067
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.20-0.06-0.51+1.15
formation_days=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0081
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.68-1.25-0.71+8.92
formation_days=40, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0087
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.22-0.95+0.04+0.91
formation_days=40, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0101
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.43-0.55-0.56+1.34
formation_days=40, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0115
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.56-0.82-0.46-0.42
formation_days=40, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0129
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.04-0.95+0.17+1.17
formation_days=40, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0135
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.46-0.36-0.42-1.82
formation_days=40, holding_days=60, n_stocks=10, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0149
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.02+0.31-0.17-0.46
formation_days=60, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0163
cost_bps: 10
n_stocks: 5
regime_gate: true
-1.08-1.47-0.98-0.14
formation_days=60, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0177
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.49-0.38-0.49-0.70
formation_days=60, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0183
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.54-0.54-0.67+1.08
formation_days=60, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0193
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.27+0.15+0.56-2.28
formation_days=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0198
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.39-1.30+0.08-1.42
formation_days=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0212
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.32-1.24+0.10-0.74
formation_days=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0226
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.17-0.30-0.12-0.14
formation_days=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-skewness-anomaly-jp-all-0240
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.98-1.40-0.63-9.91
formation_days=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-skewness-anomaly-jp-all-0241
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.81-0.72-0.63-9.91
formation_days=120, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True
r-skewness-anomaly-jp-all-0247
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.76-0.63-0.88-0.10
formation_days=120, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0258
cost_bps: 10
n_stocks: 5
regime_gate: false
-1.50-1.48-1.65-2.93
formation_days=120, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=False
r-skewness-anomaly-jp-all-0262
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.99-1.40-0.94+0.42

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

Related strategies