{"schema_version":"v1","slug":"earnings-yield-momentum-jp-all","name":"Earnings Yield x Momentum (JP All Stocks)","name_i18n":{},"verdict":"marginal","asset_class":"equity","categories":["fundamental","momentum","value"],"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.","rejection_reason":{"primary":"regime_dependent","secondary":[],"narrative":"Across 72 grid combinations, median Sharpe=0.08, best=2.18. Primary failure mode: regime_dependent."},"target_universe":{"description":"Tokyo Stock Exchange all listed (Prime/Standard/Growth), ~3747 stocks; fundamentals from J-Quants financial statements (coverage from 2023-12)","symbols":[]},"performance_summary":{"sharpe_median":0.0757,"max_drawdown_pct":-4.5,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.63,"backtest_period":{"start":"2024-08-01","end":"2026-02-02"}},"grid_summary":{"sharpe":{"p25":-0.54,"p75":0.4,"best":2.18,"worst":-2.4,"median":0.08},"n_combinations":72},"methodology":{"notes":"{\"walk_forward_definition\": {\"type\": \"single_pass\", \"description\": \"Full period backtest without walk-forward split\", \"verdict_basis\": \"full_period\"}}","signal":null,"benchmark":null,"rebalance":null,"slippage_model":"open-on-open + variable bps fixed","position_sizing":"equal_weight","regime_definition":"N225 SMA20/SMA60 three-class","transaction_cost_bps":5},"provenance":{"data_source":"kabu STATION REST API + J-Quants daily bars","source_project":"qbuntu-analysis","computed_asof":"2026-08-05T03:19:17","git_sha_z":"2f23bb7","git_sha_genkidama":"711b855","python_version":"3.10.11","numpy_version":"2.2.6","pandas_version":"2.3.3","tier":"shallow"},"runs":[{"run_id":"r-earnings-yield-momentum-jp-all-0000","name":"momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"momentum_days":20},"performance":{"sharpe":0.57,"max_drawdown_pct":-5,"alpha_annualized_pct":3.6,"p_value":0.48,"regime_breakdown":{"UP":-0.471119,"DOWN":-4.88362,"FLAT":1.135862}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0001","name":"momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":5,"momentum_days":20},"performance":{"sharpe":1.26,"max_drawdown_pct":-2.5,"alpha_annualized_pct":10.1,"p_value":0.13,"regime_breakdown":{"UP":0.207667,"DOWN":-0.428579,"FLAT":1.904333}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0002","name":"momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20,"momentum_days":20},"performance":{"sharpe":-0.45,"max_drawdown_pct":-13.9,"alpha_annualized_pct":-4.8,"p_value":0.59,"regime_breakdown":{"UP":1.028167,"DOWN":-6.623541,"FLAT":-0.589306}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0003","name":"momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":1,"momentum_days":20},"performance":{"sharpe":0.61,"max_drawdown_pct":-4.5,"alpha_annualized_pct":4,"p_value":0.44,"regime_breakdown":{"UP":0.121436,"DOWN":-4.88362,"FLAT":1.135862}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0005","name":"momentum_days=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":20,"momentum_days":20},"performance":{"sharpe":-0.54,"max_drawdown_pct":-13.9,"alpha_annualized_pct":-6.1,"p_value":0.51,"regime_breakdown":{"UP":0.414193,"DOWN":-6.623541,"FLAT":-0.589306}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0006","name":"momentum_days=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":1,"momentum_days":20},"performance":{"sharpe":0.37,"max_drawdown_pct":-6.1,"alpha_annualized_pct":2.3,"p_value":0.64,"regime_breakdown":{"UP":-1.089776,"DOWN":-5.310518,"FLAT":0.96771}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0008","name":"momentum_days=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":20,"momentum_days":20},"performance":{"sharpe":-0.56,"max_drawdown_pct":-14.5,"alpha_annualized_pct":-6,"p_value":0.49,"regime_breakdown":{"UP":0.905003,"DOWN":-6.878066,"FLAT":-0.700813}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0010","name":"momentum_days=20, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":5,"momentum_days":20},"performance":{"sharpe":1.58,"max_drawdown_pct":-2.8,"alpha_annualized_pct":11.6,"p_value":0.059,"regime_breakdown":{"UP":2.085401,"DOWN":-0.599151,"FLAT":1.751998}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0012","name":"momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":1,"momentum_days":20},"performance":{"sharpe":1.07,"max_drawdown_pct":-0.8,"alpha_annualized_pct":2.2,"p_value":0.4,"regime_breakdown":{"UP":1.959238,"DOWN":-3.068003,"FLAT":2.702472}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0013","name":"momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=5","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":5,"momentum_days":20},"performance":{"sharpe":0.56,"max_drawdown_pct":-2.4,"alpha_annualized_pct":2.6,"p_value":0.65,"regime_breakdown":{"UP":0.270067,"DOWN":0.720219,"FLAT":1.349461}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0015","name":"momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":1,"momentum_days":20},"performance":{"sharpe":0.51,"max_drawdown_pct":-0.8,"alpha_annualized_pct":1,"p_value":0.69,"regime_breakdown":{"UP":0.690847,"DOWN":-3.068003,"FLAT":2.702472}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0016","name":"momentum_days=20, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":5,"momentum_days":20},"performance":{"sharpe":2.18,"max_drawdown_pct":-1.1,"alpha_annualized_pct":7,"p_value":0.11,"regime_breakdown":{"UP":12.685417,"DOWN":0.720219,"FLAT":1.349461}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0018","name":"momentum_days=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":1,"momentum_days":20},"performance":{"sharpe":0.55,"max_drawdown_pct":-1.2,"alpha_annualized_pct":1.1,"p_value":0.66,"regime_breakdown":{"UP":1.535281,"DOWN":-3.810709,"FLAT":1.946656}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0020","name":"momentum_days=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":20,"momentum_days":20},"performance":{"sharpe":-0.62,"max_drawdown_pct":-6.8,"alpha_annualized_pct":-5.1,"p_value":0.62,"regime_breakdown":{"UP":0.620901,"DOWN":-1.059912,"FLAT":-1.551739}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0022","name":"momentum_days=20, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":5,"momentum_days":20},"performance":{"sharpe":1.88,"max_drawdown_pct":-1.2,"alpha_annualized_pct":6.1,"p_value":0.16,"regime_breakdown":{"UP":12.187837,"DOWN":0.564511,"FLAT":0.500713}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0048","name":"momentum_days=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"momentum_days":60},"performance":{"sharpe":0.58,"max_drawdown_pct":-5.2,"alpha_annualized_pct":3.8,"p_value":0.47,"regime_breakdown":{"UP":1.935679,"DOWN":-10.29835,"FLAT":0.746232}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0050","name":"momentum_days=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20,"momentum_days":60},"performance":{"sharpe":0.44,"max_drawdown_pct":-16.8,"alpha_annualized_pct":8.5,"p_value":0.59,"regime_breakdown":{"UP":1.585037,"DOWN":3.17588,"FLAT":0.0646}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0052","name":"momentum_days=60, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":5,"momentum_days":60},"performance":{"sharpe":0.47,"max_drawdown_pct":-12,"alpha_annualized_pct":5,"p_value":0.55,"regime_breakdown":{"UP":2.301619,"DOWN":-6.637089,"FLAT":0.561573}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0054","name":"momentum_days=60, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":1,"momentum_days":60},"performance":{"sharpe":0.39,"max_drawdown_pct":-6.1,"alpha_annualized_pct":2.5,"p_value":0.63,"regime_breakdown":{"UP":1.388257,"DOWN":-11.50048,"FLAT":0.586708}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0056","name":"momentum_days=60, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":20,"momentum_days":60},"performance":{"sharpe":0.38,"max_drawdown_pct":-17.2,"alpha_annualized_pct":7.3,"p_value":0.65,"regime_breakdown":{"UP":1.505505,"DOWN":2.510641,"FLAT":0.009218}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0058","name":"momentum_days=60, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":5,"momentum_days":60},"performance":{"sharpe":0.37,"max_drawdown_pct":-12.5,"alpha_annualized_pct":3.9,"p_value":0.64,"regime_breakdown":{"UP":2.152467,"DOWN":-7.05436,"FLAT":0.463688}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0060","name":"momentum_days=60, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":1,"momentum_days":60},"performance":{"sharpe":-0.03,"max_drawdown_pct":-1.4,"alpha_annualized_pct":-0.1,"p_value":0.98,"regime_breakdown":{"UP":8.449784,"DOWN":-1.806994,"FLAT":-2.686022}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0062","name":"momentum_days=60, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":20,"momentum_days":60},"performance":{"sharpe":0.19,"max_drawdown_pct":0,"alpha_annualized_pct":2.2,"p_value":0.88,"regime_breakdown":{"UP":3.956056,"DOWN":3.246814,"FLAT":-1.050201}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0064","name":"momentum_days=60, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":5,"momentum_days":60},"performance":{"sharpe":0.33,"max_drawdown_pct":-0.4,"alpha_annualized_pct":2,"p_value":0.79,"regime_breakdown":{"UP":9.278657,"DOWN":0.881843,"FLAT":-1.709607}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0066","name":"momentum_days=60, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":1,"momentum_days":60},"performance":{"sharpe":-0.51,"max_drawdown_pct":-1.6,"alpha_annualized_pct":-1.1,"p_value":0.69,"regime_breakdown":{"UP":7.195347,"DOWN":-2.361328,"FLAT":-3.257204}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0068","name":"momentum_days=60, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":20,"momentum_days":60},"performance":{"sharpe":0.1,"max_drawdown_pct":0,"alpha_annualized_pct":1.1,"p_value":0.94,"regime_breakdown":{"UP":3.70945,"DOWN":2.968684,"FLAT":-1.107599}},"executed_at":"2026-08-05T01:01:27","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0070","name":"momentum_days=60, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":5,"momentum_days":60},"performance":{"sharpe":0.18,"max_drawdown_pct":-0.5,"alpha_annualized_pct":1.1,"p_value":0.88,"regime_breakdown":{"UP":8.983757,"DOWN":0.40766,"FLAT":-1.850994}},"executed_at":"2026-08-05T01:01:28","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0096","name":"momentum_days=120, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"momentum_days":120},"performance":{"sharpe":0.45,"max_drawdown_pct":-5,"alpha_annualized_pct":2.1,"p_value":0.58,"regime_breakdown":{"UP":0.42425,"DOWN":0.959421,"FLAT":0.427962}},"executed_at":"2026-08-05T01:01:28","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0097","name":"momentum_days=120, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":5,"momentum_days":120},"performance":{"sharpe":0.05,"max_drawdown_pct":-11.5,"alpha_annualized_pct":0.4,"p_value":0.95,"regime_breakdown":{"UP":0.106679,"DOWN":-2.158572,"FLAT":0.119401}},"executed_at":"2026-08-05T01:01:28","notes":null},{"run_id":"r-earnings-yield-momentum-jp-all-0114","name":"momentum_days=120, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":1,"momentum_days":120},"performance":{"sharpe":-2.4,"max_drawdown_pct":-3.2,"alpha_annualized_pct":-4.3,"p_value":0.087,"regime_breakdown":{"UP":-2.23676,"DOWN":-4.502073,"FLAT":-0.990201}},"executed_at":"2026-08-05T01:01:28","notes":null}],"facts":[{"fact_id":"earnings-yield-momentum-jp-all-fact-best-sharpe","strategy_slug":"earnings-yield-momentum-jp-all","claim":"Best grid Sharpe ratio is 2.18 (p=0.11).","value":2.18,"value_text":null,"unit":"sharpe_ratio","context":"period 2024-08-01–2026-02-02; cost=5bps","supports_verdict":"marginal","source_run_id":"r-earnings-yield-momentum-jp-all-0016","search_tsv":"'-01':12 '-02':14,15 '-08':11 '0.11':8 '2.18':6 '2024':10 '2026':13 '5bps':17 'best':1 'cost':16 'grid':2 'p':7 'period':9 'ratio':4 'sharp':3","cite_url":"https://qbuntu.ai/cite/earnings-yield-momentum-jp-all-fact-best-sharpe"},{"fact_id":"earnings-yield-momentum-jp-all-fact-median-sharpe","strategy_slug":"earnings-yield-momentum-jp-all","claim":"Median Sharpe across 72 grid runs is 0.08.","value":0.08,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 72 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.08':8 '72':4,12 'across':3 'combin':14 'full':9 'grid':5,10 'median':1 'paramet':13 'run':6 'sharp':2","cite_url":"https://qbuntu.ai/cite/earnings-yield-momentum-jp-all-fact-median-sharpe"},{"fact_id":"earnings-yield-momentum-jp-all-fact-regime-down","strategy_slug":"earnings-yield-momentum-jp-all","claim":"Median Sharpe in DOWN regime is -0.79 across 72 runs.","value":-0.79,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.79':7 '72':9 'across':8 'classif':15 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/earnings-yield-momentum-jp-all-fact-regime-down"},{"fact_id":"earnings-yield-momentum-jp-all-fact-regime-flat","strategy_slug":"earnings-yield-momentum-jp-all","claim":"Median Sharpe in FLAT regime is -0.21 across 72 runs.","value":-0.21,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.21':7 '72':9 'across':8 'classif':15 'flat':4,12 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/earnings-yield-momentum-jp-all-fact-regime-flat"},{"fact_id":"earnings-yield-momentum-jp-all-fact-regime-up","strategy_slug":"earnings-yield-momentum-jp-all","claim":"Median Sharpe in UP regime is 0.85 across 72 runs.","value":0.85,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.85':7 '72':9 'across':8 'classif':15 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/earnings-yield-momentum-jp-all-fact-regime-up"}],"related_strategies":[{"related_slug":"earnings-yield-momentum-jp-growth","relation":"same_strategy"}],"tags":["value","momentum","combo","fundamental","all-market","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/earnings-yield-momentum-jp-all","html":"https://qbuntu.ai/strategies/earnings-yield-momentum-jp-all","markdown":"https://qbuntu.ai/ai/strategies/earnings-yield-momentum-jp-all.md"}}