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

背景:我需要识别该交易时间点是否是新的一天 于是用到了 bar.datetime.date() != self.bg.last_bar.datetime.date() 来控制 输出每天的bar序号 纯分钟数据正常 但当bg用self.bg = BarGenerator(self.on_bar, 5, self.on_5min_bar)之后 打印每根k线的日期和last_bar的日期 就变成了这样:
description
每个last_bar反而比当前bar的时间还要迟3分钟?
请问这该如何解决,谢谢各位大大了

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

版本2.1.5

Member
avatar
加入于:
帖子: 936
声望: 47

建议检查一下自己的策略逻辑吧,我在自带的dual_thrust策略里打印了一下合成的五分钟的last_bar,是没有问题的
description

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

可我是多个策略都有一样的问题
还有您的这个last_bar不是我在题目中定义为self.bg.last_bar的 而是自定义了一个名为bars的列表 手动去控制的
所以和您的结果不一样 可能不是策略逻辑的问题 而是编程逻辑有差异

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

还有我虽然知道自定义bars的列表是可以解决的 但是BarGenerator自己的last_bar出问题的话 总让我惴惴不安

Member
avatar
加入于:
帖子: 936
声望: 47
  1. 这个是没错的,bg里updatebar里所有的last bar都是基于1分钟的,你合成x_min,print出来的last_bar时间在bar之后是因为每分钟last_bar都在存,而不是每x_min,但你的bar是x_interval才推送的。比如说你合成5分钟,要第10分钟才会显示第二根,但是last_bar是每分钟更新的。
  2. bg里这个last_bar是用来生成K线的,要想自己拿出来比对,请在策略x_min里自己缓存
Member
avatar
加入于:
帖子: 33
声望: 0

懂了 谢谢

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