日线合成,第一天数据推送两次,造成所有日期的数据都延后了一天,请教坛友、老师怎么解决:
日线合成,第一天数据推送两次,造成所有日期的数据都延后了一天,请教坛友、老师怎么解决:
打印一下前两根k线的时间呢,是不是第一根k线时间有问题
不知道你的打印逻辑和合成逻辑了,上一张图合成的是00:00:00的日线,下一张图合成的是14:59:00的日线。建议还是自己在bg的合成逻辑里打印看看了
找到原因了,VNPY取的都是每根bar开始的时间,日线开始的时间是21:00,所以比如6.2日的K线,是从6.1日21:00开始的,所以6.2合成的日线取的是6.1日21:00这个时点的日期。看来VNPY这个设定有问题,没考虑夜盘的品种。
请问指的哪个设定?bg没有自带日线合成功能,时间戳开始时间的选择应该是不影响K线合成的
每根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'作为推送判断,单就是获取的日期是前一天的
由于夜盘的存在,日期分为交易日和实际日期,合成之后,可以自行将交易日转化为实际日。可以使用exchange_calendars包,获取每年的交易日期,然后将获取的日期往后推一天即可。
多谢提点