为指数移动平均函数提供额外的自定义权重数组

2024-04-25 05:13:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用EMA ewm的EMA函数,它允许自定义窗口和自定义指数因子。这个特殊包装的好处是,它允许在窗口中进行计算,这样移动平均值在整个计算过程中保持完整性,并且不依赖于给定窗口之外的任何数据。默认情况下,ewm()随时间传递信息,并且计算不包含在窗口长度中

def EMA(arr, window, alpha):
    ret = pd.Series(copy.deepcopy(list(arr)))
    arr = np.array(arr)
    stride = arr.strides[0]
    strided = np.lib.stride_tricks.as_strided(arr, (len(arr) - window + 1, window), (stride, stride))
    ret.iloc[window - 1:] = pd.DataFrame(strided).T.ewm(alpha).mean().iloc[-1].values
    clipped = ret[window:]
    return clipped

无论如何,我想知道是否有一种简单的方法可以提供一个二次自定义权重数组来与移动平均线结合(不确定这是后均线还是前均线,因为它们可能是不同的值取决于此函数如何计算均线)。此权重数组将匹配窗口的长度


Tags: 函数alphanpwindowpd权重arrret