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

群主,您好

使用K线图表时,报错,错误信息如下:
Traceback (most recent call last):
File "D:\00_VNPY_2.x\Anaconda3\lib\site-packages\vnpy\app\chart_wizard\ui\widget.py", line 188, in process_history_event
chart.update_history(history)
File "D:\00_VNPY_2.x\Anaconda3\lib\site-packages\vnpy\chart\widget.py", line 158, in update_history
self._manager.update_history(history)
File "D:\00_VNPY_2.x\Anaconda3\lib\site-packages\vnpy\chart\manager.py", line 30, in update_history
self._bars = dict(sorted(self._bars.items(), key=lambda tp: tp[0]))
TypeError: can't compare offset-naive and offset-aware datetimes

这个是获取数据库的bar的时候,显示在图表上的时候报错的,获取au2106,au2112以及其他单标旳的时候没问题,但是获取价差.LOCAL显示历史数据bar的时候,就报错的,请问都是从同一个数据表获取数据,都是一样的数据格式,为何这里报错的?请您百忙中指导下,谢谢!

该如何调整或者修改呢?

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

群主,您好
经过查找,感觉是价差base.py位置的calculate_price使用的是

        # Update calculate time
        self.datetime = datetime.now()

而接口(ctp)中使用的是:
timestamp = f"{self.current_date} {data['UpdateTime']}.{int(data['UpdateMillisec']/100)}"
dt = datetime.strptime(timestamp, "%Y%m%d %H:%M:%S.%f")
dt = CHINA_TZ.localize(dt)

需要将价差base.py中calculate_price函数中的

        # Update calculate time
        self.datetime = datetime.now()

进行更改,否则在to_tick中是
datetime=self.datetime,
这样保存到数据库中虽然可以保存,但是读取过来就出错了。

得看哪种方式调整最优了,感觉需要修改calculate_price里边的。

Member
avatar
加入于:
帖子: 2708
声望: 158

应该是一个有时区信息一个没有导致的,方便的话可以去github开个issue, 谢谢

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

沪公网安备 31011502017034号