vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 10
声望: 0

我用的dev版本最新版,加载cta策略时候出现错误,求解?
multi: 触发异常已停止

环境
操作系统: 如Windows 10
Anaconda版本: Anaconda3-2019.03-Windows-x86_64. Python 3.7 64位
vn.py版本: dev

Traceback (most recent call last):

File "C:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\engine.py", line 548, in call_strategy_func

func(params)

File "C:\Anaconda3\lib\site-packages\vnpy\app\cta_strategy\strategies\multi_timeframe_strategy.py", line 75, in on_tick

self.bg5.update_tick(tick)

File "C:\Anaconda3\lib\site-packages\vnpy\trader\utility.py", line 160, in update_tick

self.bar.high_price = max(self.bar.high_price, tick.last_price)

TypeError: '>' not supported between instances of 'str' and 'int'

请大佬帮忙解决一下,
参考Issue1443,还是无法解决

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

是input()函数问题吗?还是我的设置没设置好,该怎么改?

Administrator
avatar
加入于:
帖子: 185
声望: 24

not supported between instances of 'str' and 'int':可能是数据问题,即有些数据是字符串,有些是整数。

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

谢谢keke 大佬,我自己终于解决了,不是我导入的数据问题,是okexf 接口有问题,tick数据没有进行float 处理,可能是原作者qqqlyx 忘记了,
代码如下:
tick.last_price = float(d["last"])
tick.high_price = float(d["high_24h"])
tick.low_price = float(d["low_24h"])
tick.volume = float(d["volume_24h"])
希望类似我的小白不要再踩坑了,
一个小坑花了好几天,哎

Administrator
avatar
加入于:
帖子: 185
声望: 24

好的,我去修复一下

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