量化因子中心手册
因子函数参考
公式模式可用的全部算子:基础因子字段、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) |
#十三、相关页面