qbuntuqbuntu

Betting Against Beta (JP Growth Stocks)

slug: betting-against-beta-jp-growth

Betting Against Beta (JP Growth Stocks) backtest. Median Sharpe across 320 parameter sets is -0.68. p-value is 0.23. Max DD is -26.6%. Period: 2023-08-01 to 2026-06-01. Best Sharpe +0.24 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.68
Max DD
-26.6%
Win rate
—
Alpha (ann.)
—
p-value
0.23
backtest period: 2023-08-01 → 2026-06-01
Sharpe across 320 grid runs:median -0.68best 0.24 (not representative)worst -2.11p25–p75 -0.96–-0.40

Hypothesis

Frazzini & Pedersen (2014): low-beta stocks outperform on a risk-adjusted basis. LONG lowest beta, SHORT highest beta. Beta estimated via rolling OLS against N225.

Why it didn't work

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

Facts (5)

Best grid Sharpe ratio is 0.24 (p=0.74).
period 2023-08-01–2026-06-01; cost=5bps
sharpe_ratio0.24
Median Sharpe across 320 grid runs is -0.68.
Full grid of 320 parameter combinations.
sharpe_ratio-0.68
Median Sharpe in DOWN regime is -1.37 across 320 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-1.37
Median Sharpe in FLAT regime is -0.45 across 320 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.45
Median Sharpe in UP regime is -0.89 across 320 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.89

Runs (30)

runparamssharpeUPFLATDOWN
beta_window=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0000
cost_bps: 5
n_stocks: 5
beta_window: 40
-0.22-0.42+0.29-4.48
beta_window=40, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0001
cost_bps: 5
n_stocks: 5
beta_window: 40
-0.30-0.64+0.29-4.48
beta_window=40, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False
r-betting-against-beta-jp-growth-0002
cost_bps: 10
n_stocks: 5
beta_window: 40
-0.34-0.55+0.19-4.66
beta_window=40, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0003
cost_bps: 10
n_stocks: 5
beta_window: 40
-0.39-0.70+0.19-4.66
beta_window=40, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0012
cost_bps: 5
n_stocks: 50
beta_window: 40
-1.23-1.96-0.63-0.92
beta_window=40, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False
r-betting-against-beta-jp-growth-0018
cost_bps: 10
n_stocks: 5
beta_window: 40
-0.68-2.35+0.29-15.64
beta_window=40, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0032
cost_bps: 5
n_stocks: 5
beta_window: 40
-1.17-1.57-0.57-5.40
beta_window=40, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False
r-betting-against-beta-jp-growth-0046
cost_bps: 10
n_stocks: 50
beta_window: 40
-1.07-1.74-0.33-7.46
beta_window=40, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0060
cost_bps: 5
n_stocks: 50
beta_window: 40
-0.74-1.07-0.46-0.86
beta_window=40, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0064
cost_bps: 5
n_stocks: 5
beta_window: 40
-0.44-1.21-0.11+0.55
beta_window=40, holding_days=60, n_stocks=20, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0075
cost_bps: 10
n_stocks: 20
beta_window: 40
-0.56-1.68-0.13+0.06
beta_window=60, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0089
cost_bps: 5
n_stocks: 20
beta_window: 60
-0.99-0.95-0.87-1.99
beta_window=60, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0103
cost_bps: 10
n_stocks: 10
beta_window: 60
-0.80-1.47-0.30-3.23
beta_window=60, holding_days=10, n_stocks=10, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0117
cost_bps: 5
n_stocks: 10
beta_window: 60
-0.52-0.62-0.23-1.60
beta_window=60, holding_days=20, n_stocks=5, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0131
cost_bps: 10
n_stocks: 5
beta_window: 60
-0.79-0.44-1.21+0.16
beta_window=60, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0145
cost_bps: 5
n_stocks: 5
beta_window: 60
-0.38-1.21-0.18+1.16
beta_window=60, holding_days=60, n_stocks=50, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0159
cost_bps: 10
n_stocks: 50
beta_window: 60
-0.42-1.14-0.00-0.84
beta_window=120, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0173
cost_bps: 5
n_stocks: 50
beta_window: 120
-0.44-0.84+0.64-1.96
beta_window=120, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0187
cost_bps: 10
n_stocks: 20
beta_window: 120
-0.96-1.22-0.56-4.17
beta_window=120, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0201
cost_bps: 5
n_stocks: 20
beta_window: 120
-0.72-1.12-0.40-8.46
beta_window=120, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0215
cost_bps: 10
n_stocks: 10
beta_window: 120
-1.22-1.28-0.96-2.76
beta_window=120, holding_days=60, n_stocks=10, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0229
cost_bps: 5
n_stocks: 10
beta_window: 120
-0.08-0.70+0.08+1.38
beta_window=250, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0240
cost_bps: 5
n_stocks: 5
beta_window: 250
-0.10-1.29+0.30+16.97
beta_window=250, holding_days=1, n_stocks=10, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0244
cost_bps: 5
n_stocks: 10
beta_window: 250
-0.07+0.05-0.32+4.12
beta_window=250, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True
r-betting-against-beta-jp-growth-0257
cost_bps: 5
n_stocks: 5
beta_window: 250
+0.24-1.52+0.23+5.03
beta_window=250, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=True
r-betting-against-beta-jp-growth-0259
cost_bps: 10
n_stocks: 5
beta_window: 250
+0.13-1.66+0.12+4.87
beta_window=250, holding_days=5, n_stocks=50, cost_bps=10, regime_gate=False
r-betting-against-beta-jp-growth-0270
cost_bps: 10
n_stocks: 50
beta_window: 250
-2.11-3.04-1.80+0.50
beta_window=250, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False
r-betting-against-beta-jp-growth-0274
cost_bps: 10
n_stocks: 5
beta_window: 250
-1.56-2.02-1.46+2.49
beta_window=250, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False
r-betting-against-beta-jp-growth-0288
cost_bps: 5
n_stocks: 5
beta_window: 250
-0.76-0.30-0.95-1.30
beta_window=250, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False
r-betting-against-beta-jp-growth-0302
cost_bps: 10
n_stocks: 50
beta_window: 250
-1.45-0.66-2.08-20.10

Target universe

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

Related strategies