import talib
def main():
LastBarTime = 0
while(true):
records = exchange.GetRecords()
BarTime = records[-1]["Time"]
ext.PlotRecords(records, " ")
if LastBarTime != BarTime:
kama = talib.KAMA(records, 30)
Log(kama[30])
Log(kama[kama.length-1])
LastBarTime = BarTime
尝试了一下KAMA指标,用JS的话能跑起来,用py的话就报错“line 9, in main TypeError: Argument 'real' has incorrect type (expected numpy.ndarray, got OOO00)” 这个。求指导怎么修改。
另外我自己按指标的定义写了一下KAMA指标的实现代码:
方向(DIR) = 收盘价 - n日前收盘价
波动率(VIR) = sum(abs(收盘价 - 上一个交易日收盘价), n)
效率(ER) = 方向 / 波动率
快速 = 2 / (n1 + 1)
慢速 = 2 / (n2 + 1)
平滑(CS) = 效率 * (快速 - 慢速) + 慢速
系数(CQ) = 平滑 * 平滑
KAMA = 指数加权平均(动态移动平均(收盘价, 系数), 2) (最后这一步 有的介绍里面是按这个算的: 当前KAMA = 前一KAMA + SC x (Price - 前一KAMA) )
找了很久也没看到最后一步中的“前一KAMA”是哪里来的,当计算第一KAMA值的时候,是不存在前一个KAMA值的吧?是我的这个算法弄错了么?
请各位大神指点要怎么弄。

