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

1 vnpy 2.1.4以后的系统中使用的CHINA_TZ 的时间标准

现在绝大部分模块用、应用都已经对使用到的时间做了本地化处理,因此,如果你有一个新构造的datetime变量,应该先在使用CHINA_TZ.localize(),然后再使用,就会避免因为时区不同导致的时间比较上的错误。方法如下:
import pytz
CHINA_TZ = pytz.timezone("Asia/Shanghai")
CHINA_TZ.localize(dt_var)

2 数据下载模块中下载的数据中的时间没有做本地化处理

数据下载模块从米筐下载的数据,下载到本地本地供仿真和实盘使用,可是vnpy没有对其数据中的时间做本地化处理,直接使用会有问题。
虽然他们看来是一样的时间刻度,可和实盘中的时间下单和成交时间有几分钟的差距,
同样的时间面值,因为时区的不同导致比较得不到想要的结果:
下面的dt1和dt2是为把数据库中的时间做比较得到,其中:

dt1是数据库中数据的时间,它们的时区是+08:06,
dt2是成交单中数据的时间,它们的时区是+08:00

【dt1=2020-08-13 21:00:00+08:06,dt2=2020-08-13 21:00:01+08:00 ix=375】
【dt1=2020-08-13 21:14:00+08:06,dt2=2020-08-13 21:14:46+08:00 ix=389】
【dt1=2020-08-13 21:21:00+08:06,dt2=2020-08-13 21:21:59+08:00 ix=396】
【dt1=2020-08-13 21:39:00+08:06,dt2=2020-08-13 21:39:53+08:00 ix=414】
【dt1=2020-08-14 01:44:00+08:06,dt2=2020-08-14 01:44:35+08:00 ix=659】

它们带来的问题是
1)不可以直接比较,必须先转化为相同是时区配置才可以比较
2)很迷糊人,看似相同的时间,可重新就是判断是不想等

3 建议vnpy官方把数据下载模块中的时间统一本地化标准

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

我从vntrade pro UI上下载的股票数据(数据源是RQDATA),下载到本地MONGODB数据库后,时间全都变得很离谱。 不知道是什么原因。

Member
avatar
加入于:
帖子: 1013
声望: 55

请问哪里有错误

Administrator
avatar
加入于:
帖子: 4232
声望: 241

RQData的时区问题,我们已经在2.1.5修复了

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