qbuntuqbuntu
rejectedno_edge· equity· factor· fundamental· value

Earnings Yield (JP All Stocks)

slug: earnings-yield-jp-all
performance summary
Sharpe (median)
+0.33
Max DD
-3.7%
Win rate
Alpha (ann.)
p-value
0.71
backtest period: 2024-08-012026-02-02
Sharpe across 24 grid runs:median 0.33best 0.79 (not representative)worst -0.20p25–p75 0.180.57

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 24 grid combinations, median Sharpe=0.33, best=0.79. Primary failure mode: no_edge.

Facts (5)

Best grid Sharpe ratio is 0.79 (p=0.34).
period 2024-08-01–2026-02-02; cost=5bps
sharpe_ratio0.79
Median Sharpe across 24 grid runs is 0.33.
Full grid of 24 parameter combinations.
sharpe_ratio0.33
Median Sharpe in DOWN regime is 0.26 across 24 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio0.26
Median Sharpe in FLAT regime is -0.92 across 24 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.92
Median Sharpe in UP regime is 4.49 across 24 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio4.49

Runs (24)

runparamssharpeUPFLATDOWN
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.78+2.39+0.24+0.38
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.50+5.08-0.83+3.20
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-jp-all-0002
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.79+6.37-0.70-0.42
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1
r-earnings-yield-jp-all-0003
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.50+4.50+0.24+0.38
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-jp-all-0004
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.52+4.16-0.83+3.20
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20
r-earnings-yield-jp-all-0005
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.20+4.55-0.70-0.42
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-jp-all-0006
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.56+2.14-0.02+0.29
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=5
r-earnings-yield-jp-all-0007
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.31+4.74-1.02+2.97
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-jp-all-0008
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.71+6.25-0.79-0.51
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=1
r-earnings-yield-jp-all-0009
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.28+3.89-0.02+0.29
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-jp-all-0010
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.35+4.03-1.02+2.97
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=20
r-earnings-yield-jp-all-0011
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.12+4.47-0.79-0.51
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-jp-all-0012
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.59+3.80-0.73+0.22
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-jp-all-0013
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.02+8.08-2.70+2.04
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-jp-all-0014
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.71+4.80-1.75-0.12
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1
r-earnings-yield-jp-all-0015
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.20+0.96-0.73+0.22
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-jp-all-0016
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.36+6.59-2.70+2.04
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=20
r-earnings-yield-jp-all-0017
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.04+2.51-1.75-0.12
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-jp-all-0018
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.25+3.08-1.19+0.06
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=5
r-earnings-yield-jp-all-0019
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.20+7.41-2.85+1.78
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-jp-all-0020
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.62+4.67-1.86-0.21
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=1
r-earnings-yield-jp-all-0021
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.08+0.74-1.19+0.06
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-jp-all-0022
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.24+6.41-2.85+1.78
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=20
r-earnings-yield-jp-all-0023
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.14+2.43-1.86-0.21

Target universe

Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks; 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-08-05T03:19:04

Related strategies