Skip to main content

概述

量化分析 API 提供专业的量化投资工具,支持技术指标计算、因子选股、行情数据查询和策略回测。

因子系统

获取因子定义,计算因子值(含技术指标 RSI/MACD/KDJ/BOLL 与基本面因子 PE/ROE 等),基于公式筛选股票

行情数据

获取 OHLCV 日线、K 线(1M/5M/15M/30M/60M/1D/1W/1MO)及分钟数据

策略回测

运行策略回测并获取绩效分析

接口列表

接口方法描述
/v1/quant/factorsGET获取可用因子列表(含变量、函数、技术指标、基本面因子)
/v1/quant/factors/computePOST计算因子数据(技术指标与基本面因子统一走此接口)
/v1/quant/factors/screenPOST因子选股筛选
/v1/quant/quotes/ohlcvGET获取单只股票 OHLCV 日线数据
/v1/quant/quotes/ohlcv/batchPOST批量获取 OHLCV 数据
/v1/quant/quotes/klineGET获取 K 线数据(支持 1M/5M/15M/30M/60M/1D/1W/1MO)
/v1/quant/quotes/kline/batchPOST批量获取 K 线数据
/v1/quant/quotes/minuteGET获取单只股票分钟数据
/v1/quant/quotes/minute/batchPOST批量获取分钟数据
/v1/quant/backtestPOST策略回测
技术指标(RSI/MACD/KDJ/BOLL 等)与基本面因子(PE/ROE/EPS 等)现已统一通过 factors 系列接口访问,不再有独立的 indicators 接口。

公式语法

量化 API 使用类似通达信/同花顺的 Mai 语言公式语法。

支持的变量

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

股票属性函数

函数描述
IS_ST()是否为 ST 股票
IS_LIMIT_UP()是否一字涨停
IS_LIMIT_DOWN()是否一字跌停
IS_CHAIN_MAIN()是否主板(60/000 开头)
IS_CHAIN_STAR()是否科创板(68 开头)
IS_CHAIN_CHINEXT()是否创业板(30 开头)

支持的运算符

类型运算符示例
比较>, <, >=, <=, ==, !=CLOSE > MA(CLOSE, 20)
逻辑与&(RSI(14) < 30) & (CLOSE > MA(CLOSE, 20))
逻辑或|(RSI(14) < 30) | (RSI(14) > 70)
算术+, -, *, /(CLOSE - MA(CLOSE, 20)) / MA(CLOSE, 20) * 100

支持的函数

函数描述示例
MA(X, N)N 日简单移动平均MA(CLOSE, 20)
EMA(X, N)N 日指数移动平均EMA(CLOSE, 12)
SMA(X, N, M)平滑移动平均SMA(CLOSE, 9, 1)
REF(X, N)引用 N 天前的值REF(CLOSE, 1)
HHV(X, N)N 周期最高值HHV(HIGH, 20)
LLV(X, N)N 周期最低值LLV(LOW, 20)
STD(X, N)N 周期标准差STD(CLOSE, 20)
SUM(X, N)N 周期求和SUM(VOLUME, 5)
ABS(X)绝对值ABS(CLOSE - OPEN)
MAX(X, Y)取最大值MAX(CLOSE, OPEN)
MIN(X, Y)取最小值MIN(CLOSE, OPEN)
IF(C, A, B)条件选择IF(CLOSE > OPEN, 1, 0)
函数描述示例
CROSS(A, B)A 上穿 BCROSS(MA(CLOSE, 5), MA(CLOSE, 10))
CROSSDOWN(A, B)A 下穿 BCROSSDOWN(MA(CLOSE, 5), MA(CLOSE, 10))
COUNT(X, N)N 周期内满足条件的天数COUNT(CLOSE > OPEN, 10)
EVERY(X, N)N 周期内全部满足条件EVERY(CLOSE > MA(CLOSE, 20), 5)
EXIST(X, N)N 周期内存在满足条件EXIST(CLOSE > HHV(HIGH, 60), 5)
BARSLAST(X)上次满足条件到现在的周期数BARSLAST(CROSS(MA(CLOSE, 5), MA(CLOSE, 10)))
函数描述返回字段
RSI(N)相对强弱指数rsi
MACD(S, L, M)MACD 指标dif, dea, macd
KDJ(N, M1, M2)KDJ 随机指标k, d, j
BOLL(N, P)布林带upper, mid, lower
WR(N)威廉指标wr
ATR(N)平均真实波幅atr
CCI(N)商品通道指数cci
BIAS(N)乖离率bias
PSY(N)心理线psy
DMI(N, M)趋向指标pdi, mdi, adx, adxr
OBV()能量潮obv
财务报表(通过 . 访问字段):
报表描述示例
INCOME利润表INCOME.net_profit
BALANCESHEET资产负债表BALANCESHEET.total_assets
CASHFLOW现金流量表CASHFLOW.operating_cashflow
估值因子
因子描述
PE(), PE_TTM()市盈率
PB()市净率
PS()市销率
PEG()PEG 比率
盈利能力
因子描述
ROE()净资产收益率
ROA()总资产收益率
GPM()毛利率
NPM()净利率
成长能力
因子描述
REVENUE_GROWTH_RATE()营收增长率
NET_PROFIT_GROWTH_RATE()净利润增长率
EPS_GROWTH_RATE()EPS 增长率
每股指标
因子描述
EPS()每股收益
BPS()每股净资产

股票代码格式

市场market 参数股票代码示例
A 股cn000001, 600519, 688001
港股hk00700, 09988
美股usAAPL, TSLA, NVDA
市场参数默认为 cn(A 股市场)。股票代码不需要带市场前缀,通过 market 参数指定市场。

公式示例

技术面公式

# RSI 超卖
"RSI(14) < 30"

# 金叉
"CROSS(MA(CLOSE, 5), MA(CLOSE, 10))"

# MACD DIF 线
"MACD().dif"

# 收盘价偏离 20 日均线的百分比
"(CLOSE - MA(CLOSE, 20)) / MA(CLOSE, 20) * 100"

# RSI 超卖且价格在 20 日均线上方
"(RSI(14) < 30) & (CLOSE > MA(CLOSE, 20))"

# 价格突破布林带上轨
"CLOSE > BOLL(20, 2).upper"

# 多头排列:5日线 > 10日线 > 20日线
"(MA(CLOSE, 5) > MA(CLOSE, 10)) & (MA(CLOSE, 10) > MA(CLOSE, 20))"

基本面公式

# 低市盈率
"PE() < 15"

# 市盈率(TTM)低于 20
"PE_TTM() < 20"

# 高 ROE
"ROE() > 0.15"

# 价值 + 质量
"(PE() < 20) & (ROE() > 0.1)"

# 多因子价值筛选
"(PE_TTM() < 15) & (PB() < 2) & (ROE() > 0.12)"

# 营收增长率大于 20%
"REVENUE_GROWTH_RATE() > 0.2"

技术面 + 基本面组合

# 便宜 + 超卖
"(PE() < 20) & (RSI(14) < 40)"

# 质量 + 上涨趋势
"(ROE() > 0.12) & (CLOSE > MA(CLOSE, 20))"

# 价值 + 金叉
"(PB() < 1.5) & (CROSS(MA(CLOSE, 5), MA(CLOSE, 20)))"

股票属性筛选

# 2020年后上市的次新股
"LISTING_DATE >= '2020-01-01'"

# 科创板次新股(2019年后上市)
"(LISTING_DATE >= '2019-01-01') & IS_CHAIN_STAR()"

# 主板非ST股票
"IS_CHAIN_MAIN() & (IS_ST() == 0)"

# 主板老股 + 低估值
"IS_CHAIN_MAIN() & (LISTING_DATE <= '2015-01-01') & (PE() < 15)"

回测策略公式

回测接口支持 entry_formula(买入公式)和 exit_formula(卖出公式):
{
  "start_date": "2024-01-01",
  "end_date": "2025-01-01",
  "symbols": ["000001"],
  "entry_formula": "CROSS(MA(CLOSE, 5), MA(CLOSE, 10))",
  "exit_formula": "CROSS(MA(CLOSE, 10), MA(CLOSE, 5))",
  "signal_factors": {
    "ma5": "MA(CLOSE, 5)",
    "ma10": "MA(CLOSE, 10)",
    "rsi": "RSI(14)"
  }
}
参数描述
entry_formula买入/开仓公式,结果 > 0 时触发买入
exit_formula卖出/平仓公式,结果 > 0 时触发卖出(可选)
signal_factors预计算因子字典,用于 strategy_code 模式访问或返回额外值(可选)
signal_factors 参数用于预计算因子并在 strategy_code 中调用:
{
    "signal_factors": {
        "ma5": "MA(CLOSE, 5)",
        "ma10": "MA(CLOSE, 10)",
        "rsi": "RSI(14)"
    },
    "strategy_code": "def handle_data(context, datas):\n    for data in datas:\n        symbol = data.name\n        position = context.portfolio.get_position(symbol)\n        if not position:\n            if data.ma5 > data.ma10:\n                context.order_target_percent(symbol, 0.2)\n        elif data.rsi > 70:\n            context.order_target_percent(symbol, 0)"
}

快速开始

1

获取因子列表

调用 GET /v1/quant/factors 获取所有可用的变量、函数、技术指标和基本面因子
2

计算因子数据

调用 POST /v1/quant/factors/compute 计算指定股票的因子或指标数据
3

因子选股

调用 POST /v1/quant/factors/screen 筛选符合条件的股票
4

策略回测

调用 POST /v1/quant/backtest 验证策略历史表现

错误码

状态码描述
200成功
400请求参数错误
401认证失败
422参数验证失败
429请求频率超限
500服务器内部错误