qbuntuqbuntu
marginalregime_dependent· equity· fundamental· momentum· value

Earnings Yield x Momentum (JP All Stocks)

slug: earnings-yield-momentum-jp-all
performance summary
Sharpe (median)
+0.08
Max DD
-4.5%
Win rate
Alpha (ann.)
p-value
0.63
backtest period: 2024-08-012026-02-02
Sharpe across 72 grid runs:median 0.08best 2.18 (not representative)worst -2.40p25–p75 -0.540.40

Hypothesis

Value and momentum are individually noisy but historically complementary; requiring both a high earnings yield and positive price momentum tests whether the intersection avoids value traps better than either signal alone.

Why it didn't work

Across 72 grid combinations, median Sharpe=0.08, best=2.18. Primary failure mode: regime_dependent.

Facts (5)

Best grid Sharpe ratio is 2.18 (p=0.11).
period 2024-08-01–2026-02-02; cost=5bps
sharpe_ratio2.18
Median Sharpe across 72 grid runs is 0.08.
Full grid of 72 parameter combinations.
sharpe_ratio0.08
Median Sharpe in DOWN regime is -0.79 across 72 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio-0.79
Median Sharpe in FLAT regime is -0.21 across 72 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.21
Median Sharpe in UP regime is 0.85 across 72 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio0.85

Runs (30)

runparamssharpeUPFLATDOWN
momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.57-0.47+1.14-4.88
momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-momentum-jp-all-0001
cost_bps: 5
n_stocks: 5
regime_gate: false
+1.26+0.21+1.90-0.43
momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0002
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.45+1.03-0.59-6.62
momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1
r-earnings-yield-momentum-jp-all-0003
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.61+0.12+1.14-4.88
momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20
r-earnings-yield-momentum-jp-all-0005
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.54+0.41-0.59-6.62
momentum_days=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0006
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.37-1.09+0.97-5.31
momentum_days=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0008
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.56+0.91-0.70-6.88
momentum_days=20, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0010
cost_bps: 10
n_stocks: 5
regime_gate: true
+1.58+2.09+1.75-0.60
momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0012
cost_bps: 5
n_stocks: 10
regime_gate: false
+1.07+1.96+2.70-3.07
momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-momentum-jp-all-0013
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.56+0.27+1.35+0.72
momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1
r-earnings-yield-momentum-jp-all-0015
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.51+0.69+2.70-3.07
momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0016
cost_bps: 5
n_stocks: 10
regime_gate: true
+2.18+12.69+1.35+0.72
momentum_days=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0018
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.55+1.54+1.95-3.81
momentum_days=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0020
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.62+0.62-1.55-1.06
momentum_days=20, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0022
cost_bps: 10
n_stocks: 10
regime_gate: true
+1.88+12.19+0.50+0.56
momentum_days=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0048
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.58+1.94+0.75-10.30
momentum_days=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0050
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.44+1.59+0.06+3.18
momentum_days=60, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0052
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.47+2.30+0.56-6.64
momentum_days=60, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0054
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.39+1.39+0.59-11.50
momentum_days=60, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0056
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.38+1.51+0.01+2.51
momentum_days=60, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0058
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.37+2.15+0.46-7.05
momentum_days=60, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0060
cost_bps: 5
n_stocks: 10
regime_gate: false
-0.03+8.45-2.69-1.81
momentum_days=60, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0062
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.19+3.96-1.05+3.25
momentum_days=60, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0064
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.33+9.28-1.71+0.88
momentum_days=60, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0066
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.51+7.20-3.26-2.36
momentum_days=60, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-earnings-yield-momentum-jp-all-0068
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.10+3.71-1.11+2.97
momentum_days=60, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-earnings-yield-momentum-jp-all-0070
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.18+8.98-1.85+0.41
momentum_days=120, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0096
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.45+0.42+0.43+0.96
momentum_days=120, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-earnings-yield-momentum-jp-all-0097
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.05+0.11+0.12-2.16
momentum_days=120, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-earnings-yield-momentum-jp-all-0114
cost_bps: 10
n_stocks: 10
regime_gate: false
-2.40-2.24-0.99-4.50

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

Related strategies