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)))价值 + 金叉

股票属性筛选

公式描述
LISTING_DATE >= '2020-01-01'2020 年后上市的次新股
(LISTING_DATE >= '2019-01-01') & IS_CHAIN_STAR()科创板次新股
IS_CHAIN_MAIN() & (IS_ST() == 0)主板非 ST 股票
IS_CHAIN_CHINEXT() & (LISTING_DATE >= '2023-01-01')创业板近三年上市股票

运算符

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

支持的变量

变量别名描述
CLOSEC收盘价
OPENO开盘价
HIGHH最高价
LOWL最低价
VOLUMEV, VOL成交量
AMOUNT-成交额
LISTING_DATE-上市日期(YYYY-MM-DD 字符串,可直接与日期字符串比较)

支持的函数

级别函数
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