技术分析负面指数

时间:2014-07-26 14:36:46

标签: python numpy finance

我正在通过Numpy用Python编写技术指标。说,为方便起见,有一个名为Price的np.array填充了股票价格,并希望计算一些示例指标,如:

for i in range (0,len(Price)):
    Indicator[i]=2*Price[i]+3*Price[i-1]+ .... + 34*Price[i-10]

到目前为止,我将分别计算自Price[-9]=Price[len(Price)-9]以来的指标的前10个条目,并在10处开始for循环。有没有办法简化这个,例如自动省略负价指数的价格,如价格[-5]?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用numpy.convolve来编写转换。例如,如果

>>> price
array([-1,  4,  5,  0, -5,  2, -4,  4, 20,  1])
>>> coef
array([10, -2,  1])

(其中,为简单起见,我只使用3个元素而不是10个),然后

coef[0] * price[t] + coef[1] * price[t-1] + coef[2] * price[t-2]

np.convolve计算的内容,它还会处理我们没有3个元素的系列的初始部分

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

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