VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 58
声望: 0

日线合成,第一天数据推送两次,造成所有日期的数据都延后了一天,请教坛友、老师怎么解决:
description

Member
avatar
加入于:
帖子: 716
声望: 63

打印一下前两根k线的时间呢,是不是第一根k线时间有问题

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

description

Member
avatar
加入于:
帖子: 5018
声望: 303

不知道你的打印逻辑和合成逻辑了,上一张图合成的是00:00:00的日线,下一张图合成的是14:59:00的日线。建议还是自己在bg的合成逻辑里打印看看了

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

找到原因了,VNPY取的都是每根bar开始的时间,日线开始的时间是21:00,所以比如6.2日的K线,是从6.1日21:00开始的,所以6.2合成的日线取的是6.1日21:00这个时点的日期。看来VNPY这个设定有问题,没考虑夜盘的品种。

Member
avatar
加入于:
帖子: 5018
声望: 303

请问指的哪个设定?bg没有自带日线合成功能,时间戳开始时间的选择应该是不影响K线合成的

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

每根BAR推送过来的时间,是否这个根BAR开始的时间?如果是的话,那么有夜盘的品种,日K线从21:00开始,那么当天的BAR日期获取的就是前天的日期了?如果用self.last_bar and self.last_bar.datetime.date() != bar.datetime.date()作为推送判断,是可以避开这个问题。但是夜盘的数据就扔给前一天了,所以用self.last_bar and str(bar.datetime)[-14:-6]== '14:59:00'作为推送判断,单就是获取的日期是前一天的

Member
avatar
加入于:
帖子: 716
声望: 63

由于夜盘的存在,日期分为交易日和实际日期,合成之后,可以自行将交易日转化为实际日。可以使用exchange_calendars包,获取每年的交易日期,然后将获取的日期往后推一天即可。

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

多谢提点

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

沪公网安备 31011502017034号

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