qbuntuqbuntu
rejectedregime_dependent· equity· factor· fundamental· value

Earnings Yield (JP Growth Stocks)

slug: earnings-yield-jp-growth

Earnings Yield (JP Growth Stocks) backtest. Median Sharpe across 48 parameter sets is -0.27. p-value is 0.51. Max DD is -12.5%. Period: 2024-01-04 to 2026-09-01. Best Sharpe +1.20 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). Results split across up, flat, and down markets, so the median is not stable.

Performance summary

Sharpe (median)
-0.27
Max DD
-12.5%
Win rate
—
Alpha (ann.)
—
p-value
0.51
backtest period: 2024-01-04 → 2026-09-01
Sharpe across 48 grid runs:median -0.27best 1.20 (not representative)worst -1.21p25–p75 -0.58–0.02

Hypothesis

The oldest value signal: high earnings yield (E/P) portfolios outperform low ones (Basu 1977). Ranking on trailing E/P from J-Quants statements tests whether plain value pays in this universe after costs.

Why it didn't work

Across 48 grid combinations, median Sharpe=-0.27, best=1.20. Primary failure mode: regime_dependent.

Facts (5)

Best grid Sharpe ratio is 1.20 (p=0.07).
period 2024-01-04–2026-09-01; cost=5bps
sharpe_ratio1.20
Median Sharpe across 48 grid runs is -0.27.
Full grid of 48 parameter combinations.
sharpe_ratio-0.27
Median Sharpe in DOWN regime is 2.69 across 48 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio2.69
Median Sharpe in FLAT regime is -0.74 across 48 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.74
Median Sharpe in UP regime is 0.15 across 48 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.15

Runs (30)

runparamssharpeUPFLATDOWN
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.90-0.55-1.49+12.21
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-jp-growth-0001
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.38+0.09-0.77+3.36
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-jp-growth-0002
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.01+1.59-1.07+2.76
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1
r-earnings-yield-jp-growth-0003
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.86-0.44-1.49+12.21
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-jp-growth-0004
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.34+0.31-0.77+3.36
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20
r-earnings-yield-jp-growth-0005
cost_bps: 5
n_stocks: 5
regime_gate: true
0.00+1.77-1.07+2.76
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0006
cost_bps: 10
n_stocks: 5
regime_gate: false
-1.13-0.85-1.69+10.80
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=5
r-earnings-yield-jp-growth-0007
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.48-0.09-0.85+3.11
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-jp-growth-0008
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.05+1.53-1.12+2.58
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=1
r-earnings-yield-jp-growth-0009
cost_bps: 10
n_stocks: 5
regime_gate: true
-1.04-0.57-1.69+10.80
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-jp-growth-0010
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.43+0.21-0.85+3.11
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=20
r-earnings-yield-jp-growth-0011
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.04+1.74-1.12+2.58
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0012
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.21-0.99-0.35+11.35
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-jp-growth-0013
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.68-0.79-0.91+7.25
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-jp-growth-0014
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.06+1.22-0.75+1.25
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1
r-earnings-yield-jp-growth-0015
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.09-0.59-0.35+11.35
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-jp-growth-0016
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.39+1.00-0.91+7.25
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=20
r-earnings-yield-jp-growth-0017
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.06+1.15-0.75+1.25
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0018
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.46-1.33-0.58+10.36
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=5
r-earnings-yield-jp-growth-0019
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.79-0.95-1.01+6.66
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-jp-growth-0020
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.02+1.14-0.82+1.12
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=1
r-earnings-yield-jp-growth-0021
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.31-0.77-0.58+10.36
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-jp-growth-0022
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.48+0.84-1.01+6.66
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=20
r-earnings-yield-jp-growth-0023
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.13+1.10-0.82+1.12
n_stocks=20, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0024
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.23-0.83-0.38+2.62
n_stocks=20, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-jp-growth-0025
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.64-1.04-0.74+3.35
n_stocks=20, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-jp-growth-0026
cost_bps: 5
n_stocks: 20
regime_gate: false
+0.47+2.16-0.34+1.30
n_stocks=50, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0036
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.70-1.18-0.54+0.02
n_stocks=50, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-jp-growth-0038
cost_bps: 5
n_stocks: 50
regime_gate: false
+1.20+3.38+0.37+1.51
n_stocks=50, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-jp-growth-0042
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.21-1.72-1.01-0.55

Target universe

Tokyo Stock Exchange Growth Market, ~495 stocks, tv >= 30M JPY; fundamentals from J-Quants financial statements (coverage from 2023-12)

Related strategies

source: qbuntu-analysis · kabu STATION REST API + J-Quants daily bars
computed asof: 2026-09-24T21:54:30

Related strategies