VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 5
声望: 0
   调用MACD当前柱状大于上一个柱状做多,MACD当前柱状小于上一个柱状做空,总是报错。

Traceback (most recent call last):
File "d:\vn\lib\site-packages\vnpy\app\cta_strategy\backtesting.py", line 288, in run_backtesting
self.callback(data)
File "d:\vn\lib\site-packages\vnpy\app\cta_strategy\strategies\double1_ma_strategy.py", line 72, in on_bar
self.fast_ma0 = hist[-1]
TypeError: 'function' object is not subscriptable

下面是调用代码

    self.macd, self.signal, self.hist = self.am.macd(self.fast_period, self.slow_period, self.signal_period)
    self.fast_ma0 = hist[-1]
    self.fast_ma1 = hist[-2]

    cross_over = self.fast_ma0 > self.fast_ma1
    cross_below = self.fast_ma0 < self.fast_ma1
Super Moderator
avatar
加入于:
帖子: 31
声望: 13

将第一行代码修改为:
self.macd, self.signal, self.hist = self.am.macd(self.fast_period, self.slow_period, self.signal_period,array=True)
array参数默认是False,此时返回的是数值(value)而不是序列(array)。没办法进行slice操作。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】