PandaAI 因子编写与函数参考手册(公式版)
  PandaAI官方 2025年04月14日 1818 3

量化算子工具类使用文档

本文档汇总介绍了量化算子工具类(公式版)中所有函数的功能、输入/输出说明以及使用示例。所有函数均以静态方式提供,调用时直接使用函数名称,无需添加类名前缀。
示例中均采用如下调用格式,例如:

# 返回 收盘价 序列 CLOSE
# 返回 CLOSE(收盘价) 和 VOLUME(成交量) 的20日滚动相关性系数 序列 CORRELATION(CLOSE, VOLUME, 20)
# 返回 收盘价、最高价、最低价三者的均值 序列 (CLOSE+HIGH+LOW)/3

基础因子

因子名 说明
CLOSE 收盘价
OPEN 开盘价
HIGH 最高价
LOW 最低价
VOLUME 成交量
AMOUNT 成交额
TURNOVER 换手率
MARKET_CAP 总市值

基础函数(公式)

函数 说明 用法 例子
RANK(X) 求截面排序分位数 返回X序列的排名分位数,范围[-0.5, 0.5] RANK(CLOSE)返回收盘价的排名分位数
RETURNS(X,N) 求序列过去N日变化率 返回X相对于N日前的变化百分比 RETURNS(CLOSE,5)返回5日收益率
FUTURE_RETURNS(X,N) 求序列未来N日变化率 返回X相对于N日后的变化百分比 FUTURE_RETURNS(CLOSE,3)返回未来3日收益率
STDDEV(X,N) 求标准差 返回X在过去N日的标准差 STDDEV(CLOSE,20)返回20日波动率
CORR(A,B,N) 求相关性 返回A与B在过去N日的相关系数 CORR(RETURNS(CLOSE),VOLUME,20)返回收益与成交量相关性
CORRELATION(A,B,N) 求相关性 返回A与B在过去N日的相关系数 CORRELATION(RETURNS(CLOSE),VOLUME,20)返回收益与成交量相关性
IF(X,A,B) 条件判断取值 若X为True则取A,否则取B IF(CLOSE>OPEN,1,-1)表示涨为1跌为-1
DELAY(X,N) 取过去值 返回X向前移动N期后的值 DELAY(CLOSE,1)表示昨日收盘价
SUM(X,N) 求和 返回X在过去N日的滚动求和 SUM(VOLUME,5)返回5日成交量总和
TS_ARGMIN(X,N) 求最小值索引 返回X在过去N日中最小值的位置索引 TS_ARGMIN(CLOSE,10)表示10日内最低价出现的位置
TS_ARGMAX(X,N) 求最大值索引 返回X在过去N日中最大值的位置索引(归一化) TS_ARGMAX(HIGH,10)表示最高价出现的位置
TS_RANK(X,N) 求序列排序 返回X在过去N日中的百分位排序 TS_RANK(CLOSE,10)表示当前价在近10日的排序分位
TS_ZSCORE(X,N) 求滚动Z-score值 返回X减去均值再除以标准差的标准化值 TS_ZSCORE(CLOSE,20)表示收盘价的20日Z分数
TS_REGRESSION(Y,X,N) 求斜率 返回Y对X做回归的滚动斜率β值 TS_REGRESSION(RETURNS(CLOSE),VOLUME,20)表示收益对成交量的回归系数
DELTA(X,N) 求差分 返回X与其N日前值的差值 DELTA(CLOSE,1)表示今日与昨日收盘差
TS_MIN(X,N) 求序列最小值 返回X在过去N日中的最小值 TS_MIN(LOW,10)表示10日最低价
TS_MAX(X,N) 求序列最大值 返回X在过去N日中的最大值 TS_MAX(HIGH,10)表示10日最高价
MEAN(X,N) 求均值 返回X在过去N日的平均值 MEAN(CLOSE,20)返回20日均值
TS_MEAN(X,N) 求滚动均值 返回X在过去N日的平均值,同MEAN TS_MEAN(CLOSE,20)返回20日均值
DECAY_LINEAR(X,N) 线性加权平均 返回X按线性递减权重加权的平均值 DECAY_LINEAR(RETURNS(CLOSE),5)表示近5日线性加权收益
SCALE(X) 缩放到[-1,1]区间 将X按截面最大最小值缩放到[-1,1] SCALE(CLOSE)表示对收盘价缩放
PRODUCT(X,N) 求乘积 返回X在过去N日的滚动乘积 PRODUCT(1+RETURNS(CLOSE),5)表示5日复利收益
LOG(X) 求自然对数 对X取自然对数ln(x) LOG(CLOSE)表示收盘价取对数
POWER(X,n) 求幂运算 对X进行n次幂 POWER(VOLUME,2)表示成交量平方
COVARIANCE(A,B,N) 求协方差 返回A与B在过去N日的滚动协方差 COVARIANCE(RETURNS(CLOSE),VOLUME,20)表示收益与成交量的协方差
VAR(X,N) 求方差 返回X在过去N日的滚动方差 VAR(RETURNS(CLOSE),20)表示20日收益率方差
MIN(A,B) 取最小值 返回A与B中的较小值,支持常数 MIN(CLOSE,100)表示收盘价与100中的较小者
FMIN(A,B) 取最小值 返回A与B中的逐元素最小值 FMIN(HIGH,LOW)表示最高价与最低价的较小值
MAX(A,B) 取最大值 返回A与B中的较大值,支持常数 MAX(CLOSE,100)表示收盘价与100中的较大者
FMAX(A,B) 取最大值 返回A与B中的逐元素最大值 FMAX(HIGH,LOW)表示最高价与最低价的较大值
AS_FLOAT(X) 布尔转浮点 将布尔值转换为0.0或1.0 AS_FLOAT(CLOSE>OPEN)表示上涨为1.0,其他为0.0
ABS(X) 取绝对值 返回X的绝对值 ABS(RETURNS(CLOSE))表示收益率绝对值
RD(X,D) 四舍五入 返回X保留D位小数的值 RD(CLOSE,2)表示收盘价保留2位小数
RET(X,N) 取倒数第N个值 返回序列倒数第N个值组成的序列 RET(CLOSE,1)表示取最后一个收盘价
REF(X,N) 整体后移N期 返回X整体延后N期后的序列 REF(CLOSE,1)表示昨日收盘价
DIFF(X,N) 计算差分 返回X与其前N期值之差 DIFF(CLOSE,1)表示今日与昨日收盘差
STD(X,N) 标准差 返回X过去N期的标准差 STD(CLOSE,20)表示20日波动率
EXP(X) 指数函数 对X逐个取e的指数 EXP(RETURN)表示收益率的指数变换
CONST(X) 常数序列 返回X最后一个值组成的常数序列 CONST(CLOSE)表示以最后收盘价填满
EQUAL(A,B) 相等判断 判断A与B是否逐元素相等,返回布尔序列 EQUAL(OPEN,CLOSE)判断是否平盘
HHV(X,N) 最高值 返回X在过去N期的最高值 HHV(HIGH,20)表示20日最高价
LLV(X,N) 最低值 返回X在过去N期的最低值 LLV(LOW,20)表示20日最低价
HHVBARS(X,N) 距最高值期数 返回过去N期中距最高值的期数 HHVBARS(HIGH,10)表示距最高价有几天
LLVBARS(X,N) 距最低值期数 返回过去N期中距最低值的期数 LLVBARS(LOW,10)表示距最低价有几天
MA(X,N) 简单移动平均 返回X过去N期的算术平均 MA(CLOSE,10)表示10日均线
EMA(X,N) 指数移动平均 返回X的N期指数加权移动平均 EMA(CLOSE,12)表示12日EMA均线
EMA_CN(X,N) 指数移动平均 与EMA相同,形式不同名 EMA_CN(CLOSE,12)表示12日EMA均线
SMA(X,N,M) 中国式SMA 按权重M/N平滑的加权平均 SMA(CLOSE,5,2)表示5日平滑均线
SMA_CN(X,N,M) 中国式SMA 与SMA相同,形式不同名 SMA_CN(CLOSE,5,2)表示5日平滑均线
DMA(A,B) 动态加权平均 按因子B对A做加权平均,B可为常数或序列 DMA(CLOSE,0.2)表示权重为0.2的平滑序列
WMA(X,N) 加权移动平均 对X加权,权重从1到N递增 WMA(CLOSE,5)表示5日加权均线
AVEDEV(X,N) 平均绝对偏差 返回X与均值的平均绝对差 AVEDEV(CLOSE,10)表示10日平均偏离度
TS_SKEW(X,N) 偏度 返回X过去N期的偏度 TS_SKEW(RETURN,20)表示收益偏度
TS_KURT(X,N) 峰度 返回X过去N期的峰度 TS_KURT(RETURN,20)表示收益峰度
SLOPE(X,N) 线性回归斜率 返回X在过去N期的线性回归斜率 SLOPE(CLOSE,10)表示价格变化趋势
FORCAST(X,N) 线性回归预测 返回X在过去N期线性拟合的预测值 FORCAST(CLOSE,10)表示预测收盘价
LAST(X,A,B) 区间全为True判断 判断X从A期到B期是否全为True LAST(SIGNAL,5,2)表示从5到2日前是否连续满足条件
DECAYLINEAR(X,N) 线性衰减加权 对X按N期线性权重加权平均 DECAYLINEAR(CLOSE,5)表示近5期线性加权
SIGN(X) 符号函数 返回X的正负号,正为1,负为-1,0为0 SIGN(DELTA(CLOSE,1))表示涨跌方向
SIGNEDPOWER(X,N) 带符号幂 返回X的带符号n次幂 SIGNEDPOWER(RETURN,2)表示平方保持正负符号
COUNT(X,N) 统计True次数 返回X在过去N日中为True的次数 COUNT(CLOSE>OPEN,5)表示5日内上涨天数
EVERY(X,N) 判断是否全为True 判断X在过去N日是否全部为True EVERY(CLOSE>OPEN,3)表示是否连续3天上涨
EXIST(X,N) 判断是否存在True 判断X在过去N日是否至少为True一次 EXIST(CLOSE>3010,5)表示5日内是否有超过3010
FILTER(X,N) 条件触发清零 X为True时,将其后N日置为0 FILTER(SIGNAL,3)表示信号出现后3日内清零
SUMIF(X,Y,N) 条件加总 Y为True时累加X,求过去N日之和 SUMIF(RETURNS,CLOSE>OPEN,5)表示上涨时的收益总和
BARSLAST(X) 距上次为True的间隔 返回X距离上一次为True已过去多少期 BARSLAST(CLOSE>OPEN)表示距上次上涨多少天
BARSLASTCOUNT(X) 连续True次数 统计X连续为True的期数 BARSLASTCOUNT(CLOSE>OPEN)表示连续上涨天数
BARSSINCEN(X,N) 距最近True的间隔 返回过去N日内第一次True距今天有几期 BARSSINCEN(CLOSE>OPEN,5)表示5日内首次上涨距今几天
PCT_CHANGE(X,N) 百分比变化 当前值与N日前值的百分比变化 PCT_CHANGE(CLOSE,3)表示3日收益率
CROSS(A,B) 上穿判断 判断A是否从下向上穿过B CROSS(MA5,MA20)表示5日均线上穿20日均线
LONGCROSS(A,B,N) 长期上穿判断 判断A连续N期低于B后是否上穿 LONGCROSS(MA5,MA20,10)表示5日均线长期低于20日后上穿
VALUEWHEN(C,X) 条件取值 当条件C为True时取X的当前值 VALUEWHEN(CLOSE>OPEN,VOLUME)表示上涨时的成交量

专用函数(公式)

函数 说明 用法 例子
VWAP(CLOSE,VOLUME) 成交量加权价格 返回收盘价与成交量计算的加权均价 VWAP(CLOSE,VOLUME)表示20日VWAP
MACD_DIF(X) 求MACD中的DIF线 返回短期EMA与长期EMA的差值 MACD_DIF(CLOSE)返回MACD的快线
MACD_DEA(X) 求MACD中的DEA线 返回DIF的EMA作为DEA MACD_DEA(CLOSE)返回MACD的慢线
MACD(X) 求MACD柱 返回(DIF-DEA)*2作为MACD柱状图 MACD(CLOSE)返回MACD指标
KDJ_K(C,H,L) 求KDJ指标中的K线 返回RSV经平滑后的K值 KDJ(CLOSE,HIGH,LOW)返回KDJ的K值
KDJ_D(C,H,L) 求KDJ指标中的D线 返回RSV经平滑后的D值 KDJ(CLOSE,HIGH,LOW)返回KDJ的D值
KDJ_J(C,H,L) 求KDJ指标中的J线 返回RSV经平滑后的J值 KDJ(CLOSE,HIGH,LOW)返回KDJ的J值
RSI(C,N) 求相对强弱指标 返回上升动能与总动能之比 RSI(CLOSE,24)返回24日RSI
WR(C,H,L,N) 求威廉指标 返回N日WR线 WR(CLOSE,HIGH,LOW,10)返回10日WR值
BIAS(C,N) 求乖离率 返回当前价与均线的偏离百分比 BIAS(CLOSE,6)返回6日BIAS
BOLL(C,N) 求布林带中轨 返回N日均线 BOLL(CLOSE,20)返回布林中轨
PSY(X,N) 求心理线指标 返回N日内上涨日占比 PSY(CLOSE,12)返回12日PSY
CCI(C,H,L,N) 求CCI指标 返回TP偏离均值的标准化值 CCI(CLOSE,HIGH,LOW,14)返回14日CCI
ATR(C,H,L,N) 求平均真实波幅 返回N日内真实波幅的均值 ATR(CLOSE,HIGH,LOW,20)返回20日ATR
BBI(X) 求多均线中值 返回4条不同周期均线的平均值 BBI(CLOSE)返回多周期BBI
DMI(C,H,L) 求DMI指标 返回正负动向之差的平滑值 DMI(CLOSE,HIGH,LOW)返回ADX值
TAQ(H,L,N) 求唐安奇通道上轨 返回N日最高价 TAQ(HIGH,LOW,20)返回20日上轨
KTN(C,H,L,N) 求肯特纳通道中轨 返回(H+L+C)/3的EMA KTN(CLOSE,HIGH,LOW,20)返回中轨
TRIX(X) 求三重EMA变动率 返回三重EMA的变化百分比 TRIX(CLOSE)返回TRIX值
EMV(H,L,V) 求简易波动指标 反映股价与成交量关系的波动性 EMV(HIGH,LOW,VOL)返回EMV值
DPO(X) 求区间离价 返回当前价减去前移均线 DPO(CLOSE)返回价格脱离度
BRAR(O,C,H,L) 求人气意愿指标 返回AR值衡量多空强度 BRAR(OPEN,CLOSE,HIGH,LOW)返回AR值
DFMA(X) 求双均线差 返回短期与长期均线之差 DFMA(CLOSE)返回MA差值
MTM(X,N) 求动量指标 返回当前价与N日前价差 MTM(CLOSE,12)返回12日动量
MASS(H,L) 求MASS指标 返回波幅变化率之和 MASS(HIGH,LOW)返回MASS值
ROC(C,N) 求变动率指标 返回当前价相对N日前涨跌幅 ROC(CLOSE,12)返回12日ROC
EXPMA(C,N) 求指数均线 返回X的指数加权均值 EXPMA(CLOSE,12)返回12日EMA
OBV(C,V) 求能量潮指标 上涨加量下跌减量累计 OBV(CLOSE,VOL)返回OBV值
MFI(C,H,L,V,N) 求资金流量指标 衡量买卖强度的量价指标 MFI(CLOSE,HIGH,LOW,VOL,14)返回MFI
ASI(O,C,H,L) 求振动升降指标 反映趋势方向的强弱程度 ASI(OPEN,CLOSE,HIGH,LOW)返回ASI
最后一次编辑于 3天前 3

李不白

学到啦学到啦

2025-04-18 09:11:22      回复

13020281277

我也是

2025-04-23 19:36:37 回复

本本本

学到啦学到啦

2025-04-16 19:10:41      回复

推荐阅读