Guide

22 ready-made A-share screening strategies

Do not want to write screening conditions yourself? The API ships 22 ready-made strategies (called `preset` in the interface): low PE, high dividend, high ROE, growth, main-capital inflow and more — tweak and run. This guide walks them by category: what each screens, who it suits, and what the output looks like — with live results from five of them.

1. Ready-made strategy vs writing your own expression

Python: run a ready-made strategy
import requests

BASE = "https://api.ashareapi.com/v1"
H = {"Authorization": "Bearer ct-your-key"}

r = requests.get(f"{BASE}/screen",
                 params={"preset": "LowPE", "orderby": "PE_TTM", "limit": 5},
                 headers=H, timeout=30)
body = r.json()
print(body["ok"], body["elapsed_ms"])
for row in body["structured"]:
    print(row)
`preset`
Run a standard answer first, or avoid tuning factors
preset=LowPE
`expr`
You have your own factor logic and need precise control
expr=intersect([...])

Strategy names can be combined with parameters: `preset=LowPE --limit 20 --orderby PE_TTM --asc`. Names (the `preset` parameter) are case- and underscore-insensitive (`low_pe` = `LowPE` = `Low-PE`).

2. The 22 ready-made strategies in four groups

Grouped by "what the investor is looking for" — easier to remember than alphabetically:

2.1 Valuation (finding cheap names, 7)

LowPE
Low price/earnings
Value screening start
LowPB
Low price/book
Asset-heavy sectors (banks / property / steel)
ValuationPercentile
Valuation at historical lows
"Is it cheaper than the past?"
HighDividend
High dividend yield
Income strategies
HighDividendLowValuation
High yield + low valuation
Dividend-value combo (most used)
PEG
PEG (PE / earnings growth)
Growth valuation sanity
SmallCapValue
Small cap + value
Small-cap value hunting

2.2 Profitability quality (finding real earners, 6)

HighROE
High return on equity
Capital-efficient companies
HighGrowth
High growth (revenue / profit)
Growth screens
PositiveCashFlow
Positive operating cash flow
Exclude paper profits
LowDebt
Low debt
Conservative, anti-leverage
WhiteHorseGrowth
Large-cap growth
Steady growth
Turnaround
Distressed turnaround
Speculative — needs extra verification

2.3 Technical (3)

KDJOversold
KDJ oversold
Technical bottom signals
RSIOversold
RSI oversold
Same idea, different indicator
NineTurnGreen9
DeMark 9 structure
Pattern-based selection

2.4 Money flow and institutions (5)

MainInflow
Main-capital inflow
Follow main funds (daily basis)
SustainedInflow
Sustained main-capital inflow
Steadier (multi-day basis)
HighShortRatio
High short ratio
A risk/anomaly signal, NOT bullish
HighRating
High analyst rating
Sell-side consensus
TargetPriceUpside
Upside to target price
Target vs current price

3. Live results: what five strategies return (2026-09-29)

All below are real live responses (`limit=5`).

3.1 LowPE

sz000656
Jinke Property
0.36
356.56
3.17
1.25
sh600841
Dongli Xinke
2.41
49.32
1.21
5.65
sz002582
Haoxiangni
2.56
2.80
0.93
9.31
sh600015
Huaxia Bank
3.94
5.29
0.31
6.22

Note: Jinke Property PE_TTM=0.36 is an extreme value needing a health check (its PE_Fwd is 356.56 — nearly 1000x apart in the same table). Being screened does not mean it is worth buying — see "Factor screening basics", sections 4-5.

3.2 HighDividendLowValuation

sh603165
Rongsheng Env.
15.27
13.81
1.82
41.31
sz002572
Suofeiya
10.47
11.43
1.10
73.58
sh601717
Zhongchuang
9.59
6.88
0.98
232.64
sz002867
Zhou Dasheng
8.96
11.37
1.75
109.09

A combination of >10% yield and <15x PE is relatively rare — which is why the double-low screen attracts attention.

3.3 HighROE

sz001309
Demingli
95.11
370.74
-0.15
sz000889
Zhongjia Bochuang
91.81
3.70
1.93
sz000701
Xiamen Xinda
85.27
5.14
-0.58
sh688825
Changxin Tech
81.06
54.77
1.80

Note: ROE above 80% is an extreme value, usually paired with high leverage or non-recurring items — always check `ROECut` and `DebtEquityRatio`.

3.4 PEG

sz300456
Sai Micro
6.21
415612.1246
259.35
sz301308
Longsys
11.91
71528.661
1427.93
sh688308
Oke Precision
26.88
47734.2439
127.36
sh600345
Changjiang Comm.
23.05
8833.106
154.59

Watch out here: profit YoY of 415,612% or 71,528% means the base was near zero last year, so growth loses meaning. Always look at the absolute profit alongside PEG.

3.5 HighDividend

A live `preset=HighDividend --limit 10` returned top yields around 13-14% (e.g. 14.30% / 13.29% / 13.19%).

Note: yield = dividend per share / price, so a falling price inflates yield. High yield is not automatically good — check earnings and cash flow.

4. Three cautions

  • A strategy is a starting point, not a conclusion — it narrows 5,000 names to dozens; judgement still applies (no buy/sell advice here)
  • Extremes require a health check — all four strategies above returned extremes (PE 0.36 / ROE 95% / growth 415,612%); see "Factor screening basics"
  • Mixing technical and fundamental strategies needs care — one reads price patterns, the other financials; combined they may cancel out

5. Parameter reference

`preset`
Select a strategy
preset=LowPE
`limit`
Rows returned
limit=20
`orderby`
Sort field
orderby=ROETTM
`desc`
Descending (default ascending)
desc=1
`date`
Factor values on a past date (backtest)
date=2026-08-01
`market`
Market: hs / hk / us
market=hs
`universe`
Restrict the universe
universe=...

`date` is the backtest key: pass a historical date to screen with that day factor values.

FAQ

Are strategy names (`preset`) case sensitive?

No. low_pe / LowPE / Low-PE are equivalent. An invalid name returns the available strategy list.

Why is the top result such a strange stock?

Sorting by a single factor naturally surfaces extremes (the lowest PE often belongs to a company with distorted profit). This is inherent to factor screening, not an API fault — hence the mandatory health check.

Can I pass multiple strategies at once?

No. Write an equivalent expression with intersect, or run them separately and filter locally.

Is HighShortRatio bullish?

No. It screens for high short ratios — a risk/anomaly signal. Be clear about your logic before using it.

Last updated: 2026-09-29

The 22-strategy list is taken from live ashareapi /v1/screen responses (verified 2026-09-29: an invalid preset returns the full list); grouping and parameters follow measured verification notes (2026-08-31); all result rows are live runs.