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

写了一个多周期CTA策略,在1分钟on_bar函数里,对其他分钟级别的bar进行更新,同时print输出到控制台显示。代码如下图所示:
tick级响应:
on_tick()

description

1分钟级响应:
on_bar()

description

3分钟级响应:
on_3min_bar()

description

5分钟级响应:
on_5min_bar()

description

按照逻辑,应该先是1分钟响应1次,然后再按顺序逐个处理大周期的响应,但是控制台输出显示,【每次到了大周期响应的时候,1分钟的输出响应都有多次】,如下图所示:

description

那么问题就来了:
(1)1分钟的on_bar()被处理多次,
(2)控制台显示,先处理了3min的响应,才处理的5min响应,按1分钟代码应该是先5min再3min的
请问下大佬,问题如何解决呢?
另外,以上问题都是在实盘中遇到的,CTP实盘环境。

Administrator
avatar
加入于:
帖子: 3813
声望: 202
  1. 在on_tick函数中,只对一个BarGenerator实例调用update_tick函数即可,否则会合成多次1分钟K线,导致多个on_bar回调
  2. 自带BarGenerator的3min和5min的切分,应该都是以分钟数是否能整除来判断,这里14:53明显两者都不应该合成,如果是自己开发的BarGenerator,请自行检查切分逻辑
Member
加入于:
帖子: 8
声望: 0

好的,确实如此,感谢您的回复指正。

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