量化因子中心手册 / 因子函数参考

量化因子中心手册

因子函数参考

公式模式可用的全部算子:基础因子字段、11 类函数与技术指标函数的签名、含义与示例。

这一页汇总公式版量化算子的全部函数:功能、参数与用法示例。所有函数都以静态方式提供,直接写函数名调用即可,不需要加类名前缀。Python 模式下同样可以调用这些算子。

怎么写因子、两种模式怎么选,见 因子开发

一、怎么调用

text
# 返回收盘价序列
CLOSE

# 返回收盘价与成交量的 20 日滚动相关系数序列
CORRELATION(CLOSE, VOLUME, 20)

# 返回收盘价、最高价、最低价三者的均值序列
(CLOSE+HIGH+LOW)/3

平台内置的基础因子字段,可以在公式里直接调用:

字段 含义
CLOSE 收盘价
OPEN 开盘价
HIGH 最高价
LOW 最低价
VOLUME 成交量
AMOUNT 成交额
TURNOVER 换手率
MARKET_CAP 总市值

下面按参数类型分类列出全部函数。括号里的 X、Y 表示序列,N、M 表示周期数,A、B 视函数而定。

二、直接操作型函数 (X)

函数 说明 示例
ABS(X) 逐元素取绝对值 ABS(CLOSE-OPEN) 开收价差的绝对值
LOG(X) 逐元素取自然对数 LOG(CLOSE/OPEN) 价格比率的对数
LOGABS(X) 对绝对值取自然对数 LOGABS(RETURNS(CLOSE,10)) 10 日收益率绝对值的对数
AS_FLOAT(X) 布尔序列转数值,True 为 1.0、False 为 0.0 AS_FLOAT(CLOSE>OPEN) 上涨判断转 0 / 1
RD(X,N) 四舍五入,保留 N 位小数,默认 2 位 RD(HIGH/LOW,4) 保留 4 位小数
SIGN(X) 取正负号,正为 1、负为 −1、零为 0 SIGN(RETURNS(CLOSE,10)) 收益率方向
SIN(X) 正弦值,输入为弧度 SIN(CLOSE/OPEN)
COS(X) 余弦值,输入为弧度 COS(CLOSE-OPEN)
TAN(X) 正切值,输入为弧度 TAN(HIGH-LOW) 当日振幅的正切
ARCSIN(X) 反正弦,输入范围 [-1,1] ARCSIN((CLOSE-OPEN)/(HIGH-LOW))
ARCCOS(X) 反余弦,输入范围 [-1,1] ARCCOS((CLOSE-OPEN)/(HIGH-LOW))
ARCTAN(X) 反正切,返回弧度值 ARCTAN(CLOSE-OPEN)

三、截面操作型函数 (X)

截面函数在同一时点的所有股票之间做比较,是因子标准化的常用手段。

函数 说明 示例
RANK(X) 截面排序分位数,范围 [0,1] RANK(CLOSE) 收盘价的排名分位数
SCALE(X) 按截面最大最小值缩放到 [-1,1] SCALE(VOLUME) 成交量标准化
ZSCORE(X) 截面 z-score 标准化,均值 0、方差 1 ZSCORE(RETURNS(CLOSE,10)) 标准化收益率

四、时序判断型函数 (X)

函数 说明 示例
CONST(X) 用最后一个值填充整个序列 CONST(CLOSE)
BARSLAST(X) 距上一次条件为 True 已过去多少期 BARSLAST(CLOSE>MA(CLOSE,20)) 突破后经过的期数
BARSLASTCOUNT(X) 连续满足条件的周期数 BARSLASTCOUNT(CLOSE>OPEN) 连续上涨天数

五、双参数直接操作型函数 (X,N)

函数 说明 示例
POWER(X,N) X 的 N 次幂 POWER(RETURNS(CLOSE,10),2) 收益率平方
SIGNEDPOWER(X,N) 保号幂运算,sign(X)*(abs(X)^N) SIGNEDPOWER(RETURNS(CLOSE,10),2)

六、时序操作型函数 (X,N)

这一类最常用:在过去 N 期的窗口上做滚动计算。

函数 说明 示例
REF(X,N) 序列整体延后 N 期 REF(CLOSE,1) 前一日收盘价
DELAY(X,N) 同 REF DELAY(VOLUME,5) 5 日前成交量
DIFF(X,N) 与前 N 期之差,一阶差分,默认 N=1 DIFF(CLOSE,1) 价格变化
DELTA(X,N) 同 DIFF DELTA(CLOSE,1)
MA(X,N) 过去 N 日简单移动平均 MA(CLOSE,20) 20 日均价
TS_MEAN(X,N) 同 MA TS_MEAN(VOLUME,10) 10 日平均成交量
SUM(X,N) 过去 N 日滚动求和 SUM(VOLUME,5) 5 日成交量总和
PRODUCT(X,N) 过去 N 日滚动乘积 PRODUCT(1+RETURNS(CLOSE,1),20) 20 日累计收益
ROC(X,N) 与 N 日前值的百分比变化 ROC(CLOSE,5) 5 日收益率
PCT_CHANGE(X,N) 同 ROC PCT_CHANGE(CLOSE,1) 日收益率
STD(X,N) 过去 N 日标准差 STD(RETURNS(CLOSE,1),20) 20 日收益率波动率
STDDEV(X,N) 同 STD STDDEV(CLOSE,10)
VAR(X,N) 过去 N 日滚动方差 VAR(RETURNS(CLOSE,1),20)
TS_MAX(X,N) 过去 N 日最大值 TS_MAX(HIGH,20) 20 日最高价
TS_MIN(X,N) 过去 N 日最小值 TS_MIN(LOW,20) 20 日最低价
TS_MIDDLE(X,N) 过去 N 日最大最小值的均值 TS_MIDDLE(CLOSE,10)
TS_MAD(X,N) 过去 N 日平均绝对偏差 TS_MAD(RETURNS(CLOSE,1),20)
TS_RANK(X,N) 在过去 N 日中的排序百分位(时序排名) TS_RANK(VOLUME,20)
TS_ARGMAX(X,N) 过去 N 日最大值的位置索引 TS_ARGMAX(HIGH,10)
TS_ARGMIN(X,N) 过去 N 日最小值的位置索引 TS_ARGMIN(LOW,10)
HHV(X,N) 过去 N 期最高值,同 TS_MAX HHV(HIGH,20)
LLV(X,N) 过去 N 期最低值,同 TS_MIN LLV(LOW,20)
HHVBARS(X,N) 距过去 N 期最高值的期数 HHVBARS(HIGH,20)
LLVBARS(X,N) 距过去 N 期最低值的期数 LLVBARS(LOW,20)
COUNT(X,N) 过去 N 日中条件为 True 的次数 COUNT(CLOSE>OPEN,20) 20 日内上涨天数
EVERY(X,N) 过去 N 日是否全部为 True EVERY(CLOSE>MA5,10) 是否连续 10 日在 5 日线上
EXIST(X,N) 过去 N 日是否至少为 True 一次 EXIST(CLOSE>=DELAY(CLOSE,1)*1.1,20) 是否涨停过
BARSSINCEN(X,N) 过去 N 日内第一次为 True 距今几期 BARSSINCEN(VOLUME>MA(VOLUME,20),10)
SLOPE(X,N) 过去 N 期线性回归斜率 SLOPE(CLOSE,20) 20 日价格趋势
ANGLE(X,N) 过去 N 期线性回归线角度 ANGLE(CLOSE,10)
INTERCEPT(X,N) 过去 N 期线性回归截距 INTERCEPT(CLOSE,20)
FORCAST(X,N) N 周期线性回归后的预测值 FORCAST(CLOSE,10)
DECAYLINEAR(X,N) 线性衰减权重的移动加权平均 DECAYLINEAR(VOLUME,10)
TS_ZSCORE(X,N) 滚动 z-score(时序标准化) TS_ZSCORE(CLOSE,20)
TS_SKEW(X,N) 过去 N 期偏度 TS_SKEW(RETURNS(CLOSE,1),20)
TS_KURT(X,N) 过去 N 期峰度 TS_KURT(RETURNS(CLOSE,1),20)
TS_MEDIAN(X,N) 过去 N 日中位数 TS_MEDIAN(CLOSE,10)
AVEDEV(X,N) 与均值绝对差的平均值 AVEDEV(RETURNS(CLOSE,1),20)
EMA(X,N) 指数移动平均 EMA(CLOSE,12)
DMA(X,A) 动态移动平均,A 为平滑因子,0 < A < 1 DMA(CLOSE,0.1)
WMA(X,N) N 日加权移动平均 WMA(CLOSE,10)
RETURNS(X,N) 相对 N 日前的变化百分比 RETURNS(CLOSE,5) 5 日收益率
FUTURE_RETURNS(X,N) 相对 N 日后的变化百分比 FUTURE_RETURNS(CLOSE,5) 未来 5 日收益率
SHARPE(X,N) 过去 N 日收益率均值除以标准差 SHARPE(CLOSE,20)
SUM_ABS_PRICE_CHANGE(X,N) N 日内价格变化绝对值总和 SUM_ABS_PRICE_CHANGE(CLOSE,10)
MEAN_ABS_PRICE_CHANGE(X,N) N 日内价格变化绝对值平均 MEAN_ABS_PRICE_CHANGE(CLOSE,10)
注意

FUTURE_RETURNS 使用的是未来数据,只能出现在因子评估环节。把它写进因子表达式本身,回测指标会好得离谱,但那是未来函数,样本外必然失效。

七、双序列直接操作型函数 (A,B)

函数 说明 示例
MAX(A,B) 逐元素取较大值 MAX(CLOSE,OPEN)
MIN(A,B) 逐元素取较小值 MIN(CLOSE,OPEN)
MEAN(A,B) 两序列均值 MEAN(HIGH,LOW)
EQUAL(A,B) 逐元素判断是否相等 EQUAL(CLOSE,OPEN) 判断是否十字星
VALUEWHEN(A,B) 条件 A 为 True 时取 B 的当前值 VALUEWHEN(VOLUME>MA(VOLUME,20),1)

八、时序操作型函数 (X,Y)

函数 说明 示例
CROSS(X,Y) 判断 X 是否从下向上穿过 Y CROSS(MA(CLOSE,5),MA(CLOSE,20)) 判断金叉

九、三参数时序操作型函数 (A,B,N)

函数 说明 示例
CORR(A,B,N) 过去 N 日滚动相关系数 CORR(CLOSE,VOLUME,20) 价量相关性
CORRELATION(A,B,N) 同 CORR CORRELATION(CLOSE,VOLUME,20)
COV(A,B,N) 过去 N 日滚动协方差 COV(CLOSE,VOLUME,20)
COVARIANCE(A,B,N) 同 COV COVARIANCE(CLOSE,VOLUME,20)
TS_REGRESSION(A,B,N) 滚动线性回归,返回每个窗口的斜率 TS_REGRESSION(CLOSE,VOLUME,20)
SUMIF(A,B,N) A 为 True 时累加 B,求过去 N 日之和 SUMIF(CLOSE>OPEN,VOLUME,10)
LONGCROSS(A,B,N) A 连续 N 期低于 B 后是否上穿 LONGCROSS(PRICE,MA20,5)

十、三参数时序操作型函数 (X,N,M)

函数 说明 示例
LAST(X,N,M) 判断 X 从 N 期到 M 期是否全为 True LAST(CLOSE>MA(CLOSE,20),1,10) 收盘价是否持续在 MA20 上方
SMA(X,N,M) 中国式 SMA,按权重 M/N 平滑的加权平均 SMA(CLOSE,12,1)

十一、条件操作型函数 (X,A,B)

函数 说明 示例
IF(X,A,B) X 为 True 取 A,否则取 B IF(CLOSE>OPEN,1,-1) 涨跌方向

十二、技术指标函数

基础

函数 说明 示例
ADV(VOLUME,N) N 日平均成交量 ADV(VOLUME,20)

MACD

函数 说明 示例
MACD_DIF(CLOSE,SHORT,LONG,M) DIF 线,快慢线差值 MACD_DIF(CLOSE,12,26,9)
MACD_DEA(CLOSE,SHORT,LONG,M) DEA 线,DIF 的 EMA MACD_DEA(CLOSE,12,26,9)
MACD(CLOSE,SHORT,LONG,M) MACD 柱状图,(DIF−DEA)×2 MACD(CLOSE,12,26,9)

KDJ

函数 说明 示例
KDJ_K(CLOSE,HIGH,LOW,N,M1,M2) 随机指标 K 值 KDJ_K(CLOSE,HIGH,LOW,9,3,3)
KDJ_D(CLOSE,HIGH,LOW,N,M1,M2) K 值的平滑 KDJ_D(CLOSE,HIGH,LOW,9,3,3)
KDJ_J(CLOSE,HIGH,LOW,N,M1,M2) 3K−2D KDJ_J(CLOSE,HIGH,LOW,9,3,3)

RSI 与威廉指标

函数 说明 示例
RSI(X,N) N 日相对强弱指数 RSI(CLOSE,14)
WR(X,N) 威廉 %R WR(CLOSE,14)

布林带

函数 说明 示例
BOLL_UPPER(CLOSE,N,P) 上轨,均线 + P 倍标准差 BOLL_UPPER(CLOSE,20,2)
BOLL_MID(CLOSE,N,P) 中轨,N 日移动平均 BOLL_MID(CLOSE,20,2)
BOLL_LOWER(CLOSE,N,P) 下轨,均线 − P 倍标准差 BOLL_LOWER(CLOSE,20,2)
BOLL_WIDTH(X,N) 带宽,上轨 − 下轨 BOLL_WIDTH(CLOSE,20)

其他常用指标

函数 说明 示例
BIAS(CLOSE,N) 乖离率,(价格−均线)/均线×100 BIAS(CLOSE,6)
PSY(CLOSE,N) 心理线,上涨天数/总天数×100 PSY(CLOSE,12)
PSYMA(CLOSE,N,M) PSY 的移动平均 PSYMA(CLOSE,12,6)
CCI(X,N) 商品通道指数,价格偏离程度 CCI(CLOSE,14)
ATR(X,N) 平均真实波动范围 ATR(CLOSE,14)
BBI(CLOSE,M1,M2,M3,M4) 多空指数,多条均线平均 BBI(CLOSE,3,6,12,20)

DMI 系列

函数 说明 示例
DMI_PDI(CLOSE,HIGH,LOW,M1,M2) 上升动向指标 DMI_PDI(CLOSE,HIGH,LOW,14,6)
DMI_MDI(CLOSE,HIGH,LOW,M1,M2) 下降动向指标 DMI_MDI(CLOSE,HIGH,LOW,14,6)
DMI_ADX(CLOSE,HIGH,LOW,M1,M2) 平均趋向指标,趋势强度 DMI_ADX(CLOSE,HIGH,LOW,14,6)
DMI_ADXR(CLOSE,HIGH,LOW,M1,M2) ADX 评级 DMI_ADXR(CLOSE,HIGH,LOW,14,6)

高级移动平均

函数 说明 示例
DEMA(X,N) 双指数移动平均 DEMA(CLOSE,14)
TEMA(CLOSE,N) 三重指数移动平均 TEMA(CLOSE,14)
KAMA(X,N) 考夫曼自适应移动平均 KAMA(CLOSE,14)
T3(X,N) T3 平滑算法 T3(CLOSE,14)

振荡器

函数 说明 示例
PPO(A,B) 百分比价格振荡器,(快线−慢线)/慢线×100 PPO(EMA(CLOSE,12),EMA(CLOSE,26))
AROONOSC(X,N) 阿隆振荡器,最高最低值的时间差异 AROONOSC(CLOSE,14)
ADXR(X,N) ADX 评级,当前值与历史值平均 ADXR(CLOSE,14)
CMO(X,N) 钱德动量振荡器 CMO(CLOSE,14)
STOCHASTIC(X,N) 随机振荡器,价格相对位置 STOCHASTIC(CLOSE,14)

成交量指标

函数 说明 示例
OBV(CLOSE,VOL) 能量潮,成交量平衡指标 OBV(CLOSE,VOLUME)
VR(CLOSE,VOLUME,M1) 成交量比率 VR(CLOSE,VOLUME,26)
MFI(CLOSE,HIGH,LOW,VOLUME,N) 资金流量指标,成交量版 RSI MFI(CLOSE,HIGH,LOW,VOLUME,14)
EMV(HIGH,LOW,VOL,N,M) 简易波动指标 EMV(HIGH,LOW,VOLUME,14,9)
EMVMA(HIGH,LOW,VOL,N,M) EMV 的平滑 EMVMA(HIGH,LOW,VOLUME,14,9)

其他技术指标

函数 说明 示例
TRIX(CLOSE,M1,M2) 三重指数平滑平均 TRIX(CLOSE,12,9)
TRIMA(CLOSE,M1,M2) TRIX 的移动平均 TRIMA(CLOSE,12,9)
DPO(CLOSE,M1,M2,M3) 区间震荡线,去趋势价格 DPO(CLOSE,20,10,6)
DPOMA(CLOSE,M1,M2,M3) DPO 的平滑 DPOMA(CLOSE,20,10,6)
BRAR(OPEN,CLOSE,HIGH,LOW,M1) BR / AR 人气意愿指标 BRAR(OPEN,CLOSE,HIGH,LOW,26)
ARBR(OPEN,CLOSE,HIGH,LOW,M1) AR / BR 买卖气势指标 ARBR(OPEN,CLOSE,HIGH,LOW,26)
MTM(CLOSE,N,M) 动量指标 MTM(CLOSE,12,6)
MTMMA(CLOSE,N,M) MTM 的平滑 MTMMA(CLOSE,12,6)
MASS(HIGH,LOW,N1,N2,M) 梅斯线,价格波动指标 MASS(HIGH,LOW,9,25,6)
MASSMA(HIGH,LOW,N1,N2,M) MASS 的平滑 MASSMA(HIGH,LOW,9,25,6)
ROCMA(CLOSE,N,M) ROC 的平滑 ROCMA(CLOSE,12,6)
EXPMA(CLOSE,N1,N2) 指数移动平均(短期) EXPMA(CLOSE,12,50)
EXPMA2(CLOSE,N1,N2) 指数移动平均(长期) EXPMA2(CLOSE,12,50)
ASI(OPEN,CLOSE,HIGH,LOW,M1,M2) 振动升降指标 ASI(OPEN,CLOSE,HIGH,LOW,26,10)
ASIT(OPEN,CLOSE,HIGH,LOW,M1,M2) ASI 的平滑 ASIT(OPEN,CLOSE,HIGH,LOW,26,10)
DIF(CLOSE,N1,N2,M) 差离值,短长期均线差 DIF(CLOSE,10,50,10)
DFMA(CLOSE,N1,N2,M) DIF 的平滑 DFMA(CLOSE,10,50,10)
BOLLINGERDIFF(A,B) 布林差值,2 倍差值 BOLLINGERDIFF(HIGH,LOW)

十三、相关页面