Quant Module
quant 模块提供量化分析工具,包括技术指标计算、因子分析、OHLCV 行情数据和策略回测。
公式语法基于 Mai-language,兼容通达信/同花顺。
快速开始
因子 (Factors)
factors()
获取可用因子列表(变量和函数)。- Level 0 变量: CLOSE, OPEN, HIGH, LOW, VOLUME, AMOUNT 及别名
- Level 0 函数: MA, EMA, REF, HHV, LLV, STD 等核心函数
- Level 1 函数: CROSS, COUNT, EVERY 等应用函数
- Level 2 函数: MACD, KDJ, RSI, BOLL 等技术指标
市场状态函数:
| 函数 | 说明 |
|---|---|
IS_LIMIT_UP() | 是否一字涨停(一字板封涨停) |
IS_LIMIT_DOWN() | 是否一字跌停(一字板封跌停) |
IS_ST() | 是否为 ST 股票 |
IS_CHAIN_MAIN() | 是否为中国主板股票(60/000开头) |
IS_CHAIN_STAR() | 是否为科创板股票(68开头) |
IS_CHAIN_CHINEXT() | 是否为创业板股票(30开头) |
factorsCompute()
计算因子值,使用 Mai-language 语法。| 类型 | 运算符 | 说明 |
|---|---|---|
| 比较 | >, <, >=, <=, ==, != | 比较运算 |
| 逻辑与 | & 或 AND | 大小写不敏感 |
| 逻辑或 | | 或 OR | 大小写不敏感 |
| 逻辑非 | ~ 或 NOT | 大小写不敏感 |
| 算术 | +, -, *, / | 四则运算 |
factorsScreen()
因子选股,筛选满足条件的股票。| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
formula | string | 是 | 选股公式 |
market | string | 否 | 市场,默认 cn |
checkDate | string | 否 | 检查日期,默认最新交易日 |
symbols | string[] | 否 | 股票池,undefined 表示当前市场 |
行情 (Quotes)
ohlcv()
获取单个股票的 OHLCV 日线数据。ohlcvBatch()
批量获取多个股票的 OHLCV 数据。kline()
获取单个股票的 K 线数据,支持多种周期。| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
symbol | string | 是 | 股票代码 |
klineType | string | 否 | K 线类型,默认 1D,支持 1M/5M/15M/30M/60M/1D/1W/1MO |
market | string | 否 | 市场,默认 cn |
stockType | string | 否 | 品种类型,默认 stock,支持 stock/etf/index/sw |
startDateTime | string | 否 | 开始时间(YYYY-MM-DD HH:MM:SS),未指定时自动推算 |
endDateTime | string | 否 | 结束时间(YYYY-MM-DD HH:MM:SS) |
klineBatch()
批量获取多个股票的 K 线数据。minute()
获取单个股票的分钟数据。| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
symbol | string | 是 | 股票代码 |
startDateTime | string | 是 | 开始时间(YYYY-MM-DD HH:MM:SS) |
endDateTime | string | 是 | 结束时间(YYYY-MM-DD HH:MM:SS) |
market | string | 否 | 市场,默认 cn |
minuteBatch()
批量获取多个股票的分钟数据。回测 (Backtest)
backtest()
执行策略回测。| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
startDate | string | 是 | - | 回测开始日期(YYYY-MM-DD) |
endDate | string | 是 | - | 回测结束日期(YYYY-MM-DD) |
symbols | string[] | 否 | - | 股票代码列表(不传则需传 filterFormula) |
filterFormula | string | 否 | - | 前置过滤公式 |
market | string | 否 | cn | 市场(cn/hk/us) |
entryFormula | string | 否 | - | 买入/开仓公式(不传则需传 strategyCode) |
strategyCode | string | 否 | - | 自定义回测策略 Python 源码代码。代码中必须定义 handle_data(context, datas) 函数。 |
exitFormula | string | 否 | - | 卖出/平仓公式(结果 > 0 触发卖出) |
initialCash | number | 否 | 100000 | 初始资金(元) |
commission | number | 否 | 0 | 佣金费率(如 0.0003 表示万三) |
buyCommission | number | 否 | 0 | 买入手续费率(优先于 commission) |
sellCommission | number | 否 | 0 | 卖出手续费率(优先于 commission) |
minCommissionAmount | number | 否 | 0 | 单笔最低手续费金额(元) |
slippage | number | 否 | 0 | 滑点比例(买入价上浮、卖出价下浮) |
positionSize | number | null | 否 | 不传/null | 单只股票最大仓位比例。不传或传 null 表示不限制 |
maxPositions | number | null | 否 | 不传/null | 最大持仓股票数量。不传或传 null 表示不限制 |
minVolume | number | 否 | 100 | 最小买入股数 |
autoClose | boolean | 否 | true | 是否在回测结束时自动平仓 |
cheatOnOpen | boolean | 否 | false | true 时 T 日信号在 T 日开盘成交,false 时在 T+1 开盘成交 |
signalFactors | Record<string, string> | 否 | - | 指标与因子字典,用于策略计算或返回 |
backtestUpload()
上传 Excel 文件进行回测。使用自己的行情数据(而非系统内置数据源)。| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
file | File | 是 | - | Excel 文件(File 对象) |
startDate | string | 否 | - | 回测开始日期(YYYY-MM-DD),指标计算后按此过滤 |
endDate | string | 否 | - | 回测结束日期(YYYY-MM-DD),指标计算后按此过滤 |
entryFormula | string | 否 | - | 买入/开仓公式(不传则需传 strategyCode) |
strategyCode | string | 否 | - | 自定义回测策略 Python 源码 |
exitFormula | string | 否 | - | 卖出/平仓公式 |
initialCash | number | 否 | 100000 | 初始资金(元) |
commission | number | 否 | 0 | 佣金费率 |
buyCommission | number | 否 | 0 | 买入手续费率(优先于 commission) |
sellCommission | number | 否 | 0 | 卖出手续费率(优先于 commission) |
minCommissionAmount | number | 否 | 0 | 单笔最低手续费金额(元) |
slippage | number | 否 | 0 | 滑点比例(买入价上浮、卖出价下浮) |
positionSize | number | null | 否 | 不传/null | 单只股票最大仓位比例。不传或传 null 表示不限制 |
maxPositions | number | null | 否 | 不传/null | 最大持仓股票数量。不传或传 null 表示不限制 |
minVolume | number | 否 | 1 | 最小买入股数 |
autoClose | boolean | 否 | true | 是否自动平仓 |
cheatOnOpen | boolean | 否 | false | true 时 T 日信号在 T 日开盘成交,false 时在 T+1 开盘成交 |
signalFactors | Record<string, string> | 否 | - | 指标与因子字典 |
| 列名 | 是否必须 | 说明 |
|---|---|---|
date | 必须 | 交易日期 |
open | 必须 | 开盘价 |
high | 必须 | 最高价 |
low | 必须 | 最低价 |
close | 必须 | 收盘价 |
symbol | 多标的时必须 | 股票代码 |
volume | 可选 | 成交量 |
amount | 可选 | 成交额 |
| 中文列名 | 映射到 |
|---|---|
| 日期 / 时间 / 交易日期 / 交易日 | date |
| 开盘 / 开盘价 | open |
| 最高 / 最高价 | high |
| 最低 / 最低价 | low |
| 收盘 / 收盘价 | close |
| 成交量 / 交易量 | volume |
| 成交额 / 交易额 | amount |
| 代码 / 股票代码 / 证券代码 | symbol |
自定义字段列名仍须为 ASCII 字符(英文字母、数字、下划线)。
