Python 技术分析负指数

Python 技术分析负指数,python,numpy,finance,Python,Numpy,Finance,我正在通过Numpy用Python编写技术指标。例如,为了方便起见,我们有一个名为Price filled with Stock Prices的np.array,并希望计算一些示例指标,如: for i in range (0,len(Price)): Indicator[i]=2*Price[i]+3*Price[i-1]+ .... + 34*Price[i-10] 到目前为止,我将分别计算指标的前10个条目,因为Price[-9]=Price[len(Price)-9],并在10

我正在通过Numpy用Python编写技术指标。例如,为了方便起见,我们有一个名为Price filled with Stock Prices的np.array,并希望计算一些示例指标,如:

for i in range (0,len(Price)):
    Indicator[i]=2*Price[i]+3*Price[i-1]+ .... + 34*Price[i-10]
到目前为止,我将分别计算指标的前10个条目,因为
Price[-9]=Price[len(Price)-9]
,并在10开始for循环。有没有一种方法可以简化这一点,例如自动忽略价格[-5]等负指数的值


谢谢

您可以用术语编写您的转换。例如,如果

>>> price
array([-1,  4,  5,  0, -5,  2, -4,  4, 20,  1])
>>> coef
array([10, -2,  1])
(为了简单起见,我只使用了3个元素而不是10个元素),然后

np.convolve
计算的,它还负责系列的初始部分,其中我们没有3个元素:

如您所见,对于第一个元素
-10=10*-1
,对于第二个元素:
42=10*4+-2*-1
,对于第七个元素:
-49=10*-4+-2*2+1*-5

coef[0] * price[t] + coef[1] * price[t-1] + coef[2] * price[t-2]
>>> np.convolve(coef, price)
array([-10,  42,  41,  -6, -45,  30, -49,  50, 188, -26,  18,   1])