输入/搜索内容
8
关注
0
关注者
求教python中调用KAMA指标报错问题
帮助
创建于 2021-11-19 23:17:10  更新于 2021-11-20 09:10:32
 4
 1087

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值的吧?是我的这个算法弄错了么?
请各位大神指点要怎么弄。

相关推荐
评论
全部评论 (4)

    talib.KAMA(records.Close,30)
    FMZ API文档上有Python调用的例子。
    img

    5 年前

    可以了,谢谢梦总。还想请教一下,这个传入的参数也是一个数组么?如果我自己定义一个数组作为参数,也可以计算KAMA么?
    为啥是写成records.Close,不用带下标么?比如records[i].Close。求指点,谢谢!

    5 年前

    把数据构造成函数要求的参数即可。报错信息上提示的:expected numpy.ndarray,

    5 年前
  • 1
社区
回测系统
APP 下载
iPhone 下载
© 2015 - ∞ INVENTOR PTE LTD (SG)