VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 31
声望: 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
加入于:
帖子: 31
声望: 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
加入于:
帖子: 5020
声望: 303

应该是一个有时区信息一个没有导致的

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

沪公网安备 31011502017034号

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