Skip to main content
POST
/
v1
/
quant
/
factors
/
screen
Screen stocks by factor
curl --request POST \
  --url https://api.reportify.cn/v1/quant/factors/screen \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "formula": "<string>",
  "market": "cn",
  "check_date": "2023-12-25",
  "symbols": [
    "<string>"
  ]
}
'
{
  "datas": [
    {
      "symbol": "<string>",
      "close": 123,
      "factor_value": 123,
      "indicators": {}
    }
  ],
  "metadata": {}
}
基于因子公式筛选股票,返回满足条件的股票列表。支持技术因子和基本面因子组合筛选。
curl -X POST https://api.reportify.cn/v1/quant/factors/screen \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "market": "cn",
    "formula": "RSI(14) < 30",
    "check_date": "2026-01-08"
  }'

请求参数

market
string
default:"cn"
股票市场:cn(A股), hk(港股), us(美股)
formula
string
required
筛选公式,返回布尔值或数值
check_date
string
检查日期,格式:YYYY-MM-DD(默认:最新交易日)
symbols
string[]
股票代码列表(可选,不传则为全市场筛选)

公式示例

技术面筛选

公式描述
RSI(14) < 30RSI 超卖
CROSS(MA(CLOSE, 5), MA(CLOSE, 10))均线金叉(MA5 上穿 MA10)
CROSSDOWN(MA(CLOSE, 5), MA(CLOSE, 10))均线死叉(MA5 下穿 MA10)
(CLOSE > MA(CLOSE, 20)) & (MA(CLOSE, 20) > MA(CLOSE, 60))多头趋势
CLOSE > BOLL(20, 2).upper突破布林带上轨
(KDJ().j < 20) & (CROSS(KDJ().k, KDJ().d))KDJ 低位金叉
MACD().dif > MACD().deaMACD 多头
CLOSE > REF(CLOSE, 1) * 1.05较昨日涨幅超 5%
CLOSE > HHV(HIGH, 20)创 20 日新高
COUNT(CLOSE > REF(CLOSE, 1), 5) >= 4近 5 日至少 4 天上涨
EVERY(CLOSE > REF(CLOSE, 1), 3)连续 3 天上涨
(CLOSE > MA(CLOSE, 10)) & (MA(CLOSE, 10) > MA(CLOSE, 20)) & (MA(CLOSE, 20) > MA(CLOSE, 60))多均线多头排列
(MA(CLOSE, 10) > REF(MA(CLOSE, 10), 5)) & (MA(CLOSE, 20) > REF(MA(CLOSE, 20), 5))均线向上发散
VOLUME > MA(VOLUME, 20) * 2成交量放大(2 倍于 20 日均量)

基本面筛选

公式描述
PE() < 15低市盈率
PE_TTM() < 20市盈率(TTM)低于 20
PB() < 1破净股(市净率低于 1)
ROE() > 0.15ROE 大于 15%
(PE() < 20) & (ROE() > 0.1)价值 + 质量
(PE_TTM() < 15) & (PB() < 2) & (ROE() > 0.12)多因子价值筛选
REVENUE_GROWTH_RATE() > 0.2营收增长率大于 20%
NET_PROFIT_GROWTH_RATE() > 0.3净利润增长率大于 30%
CURRENT_RATIO() > 2流动性充足
DEBT_TO_EQUITY_RATIO() < 0.5低杠杆
GPM() > 0.3毛利率大于 30%

技术面 + 基本面组合

公式描述
(PE() < 20) & (RSI(14) < 40)便宜 + 超卖
(ROE() > 0.12) & (CLOSE > MA(CLOSE, 20))质量 + 上涨趋势
(PB() < 1.5) & (CROSS(MA(CLOSE, 5), MA(CLOSE, 20)))价值 + 金叉

运算符

类型运算符说明
比较>, <, >=, <=, ==, !=数值比较
逻辑与&AND大小写不敏感
逻辑或|OR大小写不敏感
逻辑非~NOT大小写不敏感
算术+, -, *, /四则运算

支持的变量

变量别名描述
CLOSEC收盘价
OPENO开盘价
HIGHH最高价
LOWL最低价
VOLUMEV, VOL成交量

支持的函数

级别函数
Level 0MA, EMA, SMA, REF, HHV, LLV, STD, SUM, ABS, MAX, MIN, IF
Level 1CROSS, CROSSDOWN, COUNT, EVERY, EXIST, BARSLAST
Level 2 技术RSI, MACD, BOLL, KDJ, WR, ATR, CCI, BIAS, PSY
Level 2 基本面PE(), PB(), PS(), ROE(), ROA(), EPS(), BPS(), CURRENT_RATIO()

响应参数

datas
ScreenedStock[]
通过筛选的股票列表
metadata
object
筛选元数据

响应示例

全市场筛选

{
  "datas": [
    {
      "symbol": "000001",
      "close": 12.35,
      "factor_value": 28.5
    },
    {
      "symbol": "002142",
      "close": 8.92,
      "factor_value": 25.3
    },
    {
      "symbol": "600036",
      "close": 35.68,
      "factor_value": 29.8
    }
  ],
  "metadata": {
    "formula": "RSI(14) < 30",
    "market": "cn",
    "check_date": "2026-01-08",
    "total_screened": 3,
    "total_universe": 5000
  }
}

指定股票池筛选

请求:
response = requests.post(
    "https://api.reportify.cn/v1/quant/factors/screen",
    headers={"Authorization": "Bearer <token>"},
    json={
        "market": "cn",
        "formula": "(RSI(14) < 30) & (CLOSE > MA(CLOSE, 20))",
        "symbols": ["000001", "000002", "000003", "600519"]
    }
)
响应:
{
  "datas": [
    {
      "symbol": "000001",
      "close": 12.35,
      "factor_value": true
    }
  ],
  "metadata": {
    "formula": "(RSI(14) < 30) & (CLOSE > MA(CLOSE, 20))",
    "market": "cn",
    "check_date": "2026-01-10",
    "total_screened": 1,
    "total_universe": 4
  }
}

Authorizations

Authorization
string
header
required

Enter your Bearer token

Body

application/json

Input for factor-based stock screening.

formula
string
required

Screening formula (required)

market
enum<string>
default:cn

Stock market

Available options:
cn,
hk,
us
check_date
string<date> | null

Check date (optional, default: latest trading day)

symbols
string[] | null

Stock code list, e.g., ["600519", "000001"] (optional, None = full market)

Response

Successful Response

Output for factor-based stock screening.

datas
ScreenedStock · object[]
required

List of stocks that passed the filter

metadata
Metadata · object
required

Screening metadata