vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 17
声望: 0

无图表模式下回测自带的 BollChannelStrategy出了一个问题。
debug进去后发现计算布林带上下轨boll_up 和boll_down值相同。这两个应该是计算得到的 均值 加上标准差乘以一个系数得到的。
继续进去发现 标准差std 用talib计算的结果为0。

description

计算中用到的 close值没问题,就是talib计算出错了。
我装的最新的0.4.19版本。
现在策略能正常运行,但结果肯定不是策略想要的结果了。想问一下这种情况怎么处理,其他用到talib的地方 结果可靠吗?

Member
avatar
加入于:
帖子: 17
声望: 0

description

这个是talib的结果

Member
avatar
加入于:
帖子: 1
声望: 0

这个就是说 策略执行完了 结果实际上不是策略的想要的结果
不debug到里面运行时的数据 都不知道结果 还以为是正常执行了
用到talib的都可能不对 那问题很严重啊! 没人说一下怎么解决吗?

Member
avatar
加入于:
帖子: 470
声望: 24

talib的计算方式是不会出错的,请确保数据的长度足够ArrayManager进行初始化,默认的ArrayManager需要100条数据才能初始化成功。

Member
avatar
加入于:
帖子: 17
声望: 0

数据够的 图上计算要用的close 数据 最上面的图上有100个的 没全部显示出来 不过后面的 也没有问题 。默认算std的参数是18 ,图上colse数据正确计算的结果 第18个开始就不该是0了

Member
avatar
加入于:
帖子: 17
声望: 0

description
改了代码 ,在每次下单的时候打印出 布林带上下轨的值

description

可以看到 结果里面 布林带上下轨计算值相同 这个肯定是不对的!
自己写了个talib 测试STDDEV 的结果倒是正确的
description

description
但是在vnpy里面就是结果就是不对 ! 这个上面说的情况 开发者之前从没遇到过这个问题吗?确定自带的策略确实是按自己的算法下单的吗?

Member
avatar
加入于:
帖子: 470
声望: 24

请升级到最新版vnpy再试试看。
dxma1li wrote:

description
改了代码 ,在每次下单的时候打印出 布林带上下轨的值

description

可以看到 结果里面 布林带上下轨计算值相同 这个肯定是不对的!
自己写了个talib 测试STDDEV 的结果倒是正确的
description

description
但是在vnpy里面就是结果就是不对 ! 这个上面说的情况 开发者之前从没遇到过这个问题吗?确定自带的策略确实是按自己的算法下单的吗?

Member
avatar
加入于:
帖子: 17
声望: 0

自己改过来了 不是talib的问题 2.17版本boll代码问题
def std(self, n: int, nbdev: int = 1, array: bool = False)
std = self.std(n, array)
调用的时候把array 赋给nbdev了 改成 std = self.std(n, array = array ) 解决了

最新版本也更正了该处错误

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

沪公网安备 31011502017034号