qbuntuqbuntu
rejectedregime_dependent· equity· factor· fundamental· growth

Sales Growth Rank (JP Growth Stocks)

slug: sales-growth-rank-jp-growth

Sales Growth Rank (JP Growth Stocks) backtest. Median Sharpe across 48 parameter sets is -0.17. p-value is 0.41. Max DD is -8.9%. Period: 2025-01-06 to 2026-09-01. Best Sharpe +1.06 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.17
Max DD
-8.9%
Win rate
—
Alpha (ann.)
—
p-value
0.41
backtest period: 2025-01-06 → 2026-09-01
Sharpe across 48 grid runs:median -0.17best 1.06 (not representative)worst -1.36p25–p75 -0.58–0.67

Hypothesis

Top-line growth is the simplest growth signal retail screens sort on; ranking on year-over-year sales growth tests whether revenue growth alone predicts returns, or is already priced in (the classic growth-factor disappointment).

Why it didn't work

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

Facts (5)

Best grid Sharpe ratio is 1.06 (p=0.19).
period 2025-01-06–2026-09-01; cost=5bps
sharpe_ratio1.06
Median Sharpe across 48 grid runs is -0.17.
Full grid of 48 parameter combinations.
sharpe_ratio-0.17
Median Sharpe in DOWN regime is 7.47 across 48 runs.
Regime=DOWN, N225 SMA20/SMA60 classification.
sharpe_ratio7.47
Median Sharpe in FLAT regime is -0.53 across 48 runs.
Regime=FLAT, N225 SMA20/SMA60 classification.
sharpe_ratio-0.53
Median Sharpe in UP regime is -0.59 across 48 runs.
Regime=UP, N225 SMA20/SMA60 classification.
sharpe_ratio-0.59

Runs (30)

runparamssharpeUPFLATDOWN
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0000
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.89+2.11+0.40+3.47
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5
r-sales-growth-rank-jp-growth-0001
cost_bps: 5
n_stocks: 5
regime_gate: false
+0.30+0.52-0.24+3.08
n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20
r-sales-growth-rank-jp-growth-0002
cost_bps: 5
n_stocks: 5
regime_gate: false
-0.73-0.97-1.18+21.12
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1
r-sales-growth-rank-jp-growth-0003
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.17-0.36+0.40+3.47
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=5
r-sales-growth-rank-jp-growth-0004
cost_bps: 5
n_stocks: 5
regime_gate: true
+0.75+2.63-0.24+3.08
n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20
r-sales-growth-rank-jp-growth-0005
cost_bps: 5
n_stocks: 5
regime_gate: true
-0.76-0.99-1.18+21.12
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0006
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.65+1.67+0.21+3.04
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=5
r-sales-growth-rank-jp-growth-0007
cost_bps: 10
n_stocks: 5
regime_gate: false
+0.20+0.40-0.33+2.99
n_stocks=5, cost_bps=10, regime_gate=False, holding_days=20
r-sales-growth-rank-jp-growth-0008
cost_bps: 10
n_stocks: 5
regime_gate: false
-0.78-1.04-1.22+20.68
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=1
r-sales-growth-rank-jp-growth-0009
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.03-0.44+0.21+3.04
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5
r-sales-growth-rank-jp-growth-0010
cost_bps: 10
n_stocks: 5
regime_gate: true
+0.67+2.55-0.33+2.99
n_stocks=5, cost_bps=10, regime_gate=True, holding_days=20
r-sales-growth-rank-jp-growth-0011
cost_bps: 10
n_stocks: 5
regime_gate: true
-0.80-1.01-1.22+20.68
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0012
cost_bps: 5
n_stocks: 10
regime_gate: false
0.00+0.33-0.60+6.36
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=5
r-sales-growth-rank-jp-growth-0013
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.81+1.60-0.13+18.61
n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20
r-sales-growth-rank-jp-growth-0014
cost_bps: 5
n_stocks: 10
regime_gate: false
+0.07+0.39-0.53+44.40
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1
r-sales-growth-rank-jp-growth-0015
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.44-0.85-0.60+6.36
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=5
r-sales-growth-rank-jp-growth-0016
cost_bps: 5
n_stocks: 10
regime_gate: true
+0.95+1.86-0.13+18.61
n_stocks=10, cost_bps=5, regime_gate=True, holding_days=20
r-sales-growth-rank-jp-growth-0017
cost_bps: 5
n_stocks: 10
regime_gate: true
-0.42-1.08-0.53+44.40
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0018
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.29-0.22-0.84+5.81
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=5
r-sales-growth-rank-jp-growth-0019
cost_bps: 10
n_stocks: 10
regime_gate: false
+0.67+1.41-0.25+18.05
n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20
r-sales-growth-rank-jp-growth-0020
cost_bps: 10
n_stocks: 10
regime_gate: false
-0.01+0.25-0.60+43.32
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=1
r-sales-growth-rank-jp-growth-0021
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.61-0.93-0.84+5.81
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5
r-sales-growth-rank-jp-growth-0022
cost_bps: 10
n_stocks: 10
regime_gate: true
+0.84+1.79-0.25+18.05
n_stocks=10, cost_bps=10, regime_gate=True, holding_days=20
r-sales-growth-rank-jp-growth-0023
cost_bps: 10
n_stocks: 10
regime_gate: true
-0.47-1.11-0.60+43.32
n_stocks=20, cost_bps=5, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0024
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.12-0.75-0.53+8.43
n_stocks=20, cost_bps=5, regime_gate=False, holding_days=5
r-sales-growth-rank-jp-growth-0025
cost_bps: 5
n_stocks: 20
regime_gate: false
+0.79+3.12-0.11+7.15
n_stocks=20, cost_bps=5, regime_gate=False, holding_days=20
r-sales-growth-rank-jp-growth-0026
cost_bps: 5
n_stocks: 20
regime_gate: false
-0.21-1.22-0.53+7.27
n_stocks=50, cost_bps=5, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0036
cost_bps: 5
n_stocks: 50
regime_gate: false
-0.78-1.42-1.68+13.63
n_stocks=50, cost_bps=5, regime_gate=True, holding_days=5
r-sales-growth-rank-jp-growth-0040
cost_bps: 5
n_stocks: 50
regime_gate: true
+1.06+1.44+0.04+4.46
n_stocks=50, cost_bps=10, regime_gate=False, holding_days=1
r-sales-growth-rank-jp-growth-0042
cost_bps: 10
n_stocks: 50
regime_gate: false
-1.36-2.13-2.27+11.92

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

Related strategies