假设有2个信号先后几乎同时到达,如果有TICK触发的同时,也有一个ONE ORDER触发
那么,VNPY是等on_tick回调函数处理完了,再触发on_order回调函数.
还是两个函数双线程同时触发回调?
假设有2个信号先后几乎同时到达,如果有TICK触发的同时,也有一个ONE ORDER触发
那么,VNPY是等on_tick回调函数处理完了,再触发on_order回调函数.
还是两个函数双线程同时触发回调?
追加一个问题:假设当前TICK触发,因为程序处理时长很长,还没有处理完,下一个TICK触发已经来了,那是等当前的on_tick回调函数处理完了,再回调一次吗?
还是会启动另外一个线程,同时新触发on_tick回调函数
MTF wrote:
- 事件引擎是单线程顺序处理
- 会等待前一个tick处理完再处理下一个
关于1,我现在遇到的一个问题是这样的:
因为我想实现,一点击"启动"按钮,马上就发单而不等待TICK,所以我在on_start回调函数里,把self.trading提前设置为1,然后发单
假设发了5个单子.结果第1个单子发出去后,第2-5个单子还没发完,就会触发on_order同时运行了,而并不是等待on_start函数处理完
18650802653 wrote:
MTF wrote:
- 事件引擎是单线程顺序处理
- 会等待前一个tick处理完再处理下一个
关于1,我现在遇到的一个问题是这样的:
因为我想实现,一点击"启动"按钮,马上就发单而不等待TICK,所以我在on_start回调函数里,把self.trading提前设置为1,然后发单
假设发了5个单子.结果第1个单子发出去后,第2-5个单子还没发完,就会触发on_order同时运行了,而并不是等待on_start函数处理完
目前策略引擎设计上应该不会,所有回调函数都必须执行完,才会处理下一个回调触发。
如果确定出现上述情况,可以贴个报错或者日志截图看下