|
发表于 2024-8-28 15:04:18
|
显示全部楼层
因子表达式相关内置函数 (路径:datafeed/expr_functions/)
calc_by_date(func)装饰器,按照日期分组并应用函数。
calc_by_symbol(func)装饰器,按照股票代码分组并应用函数。
abs(se) numpy库中的abs函数,对传入的参数se进行绝对值运算。
sqrt(se) np.sqrt(se)表示对se中的每一个元素求平方根。
log(se: pd.Series) np.log(se)表示计算se中每个元素的自然对数,并返回一个新的numpy数组。
inv(x: pd.Series) 当遇到除以零或者无效的数值操作时,忽略这些错误,而不是抛出异常。
rank(se: pd.Series) 使用pandas的rank方法对传入的Series进行排名
ts_delay(se: pd.Series, periods=5): # 滞后N天的序列
ts_delta(se: pd.Series, periods=20): # 当前序列与滞后N天之差
ts_mean(se: pd.Series, d) 滚动平均值,滚动窗口值=d
ts_median(se: pd.Series, d) 滚动中位数
ts_pct_change(se: pd.Series, N) 每个元素相对于其向前移动N个位置的元素的百分比变化率。
ts_max(se: pd.Series, periods=5) 滚动最大值
ts_min(se: pd.Series, periods=5) 滚动最小值
ts_maxmin(X, d) 数据X在给定的时间窗口d内的最大值和最小值之间的归一化值
ts_sum(se: pd.Series, N) 计算滚动窗口内元素的总和
ts_std(se, periods=5) 滚动标准差
ts_skew(X, d) 数据的偏度(skewness)
ts_kurt(X, d) 计算滚动窗口内的峰度(Kurtosis)
ts_argmin(se: pd.Series, periods=5)滚动窗口内最小值的索引
ts_argmax(se: pd.Series, periods=5)滚动窗口内最大值的索引
ts_argmaxmin(X, d) 计算并返回一个时间序列中最大值和最小值的位置之差。
ts_rank(se: pd.Series, periods=9) 计算给定Series中每个元素的滚动排名。
cross_up(left, right) 金叉
cross_down(left, right) 死叉
ts_corr(left: pd.Series, right: pd.Series, periods=20) 计算两个时间序列(pd.Series类型)之间的滚动相关性。
ts_cov(left: pd.Series, right: pd.Series, periods=10) 计算两个时间序列的协方差
ts_dema(X, d) 计算时间序列数据的指数移动平均线(DEMA)
ts_ema(X, d) 计算时间序列数据的指数移动平均(Exponential Moving Average,简称EMA)
bbands_up(close, timeperiod=20, nbdevup=2, nbdevdn=2)
计算股票价格的布林带上轨
bbands_down(close, timeperiod=20, nbdevup=2, nbdevdn=2)
计算股票价格的布林带下轨
ta_atr(high, low, close, period=14) 计算平均真实波动幅度(ATR)
_obv(close, volume) 计算股票的"On Balance Volume"(OBV)
ta_obv(close, volume) 计算股票的成交量加权平均价格
sign(se: pd.Series) 函数的功能是返回一个新的Series,其中每个元素都是原Series对应元素的符号。
scale(x, a=1) 将输入的数组x进行缩放,使得其绝对值之和等于给定的目标值a。
slope_pair(se_left, se_right, N=18) 计算两个序列之间的斜率对,并返回一个包含斜率值的pandas Series对象。
decay_linear(series, window) 对输入的时间序列进行线性衰减。
zscore(se: pd.Series, N) 计算输入序列的滚动Z分数(滚动均值的标准差)。
shift(se: pd.Series, N) 对传入的pandas序列se进行移位操作
roc(se: pd.Series, N) 计算ROC(Rate of Change)值。
def roc(se: pd.Series, N):
return se / shift(se, N) - 1
具体来说,函数内部执行了以下操作:
调用shift函数,将se序列向下移动N个位置。这是通过shift(se, N)实现的。
将移动后的序列与原始序列se相除,得到一个新的序列。
从新的序列中减去1。
返回最终计算出的结果。
|
|