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

如下图所示,策略on_start里面发出的停止单没在CTA策略本地停止单界面显示,在on_start里面也写了self.put_event()刷新的,怎么可以实现在CTA策略本地停止单界面显示呢?print显示,实际订单已发出,只是界面未显示。实测只有在on_tick , on_bar里面发出的订单才会显示在CTA策略本地停止单界面。

description

Member
avatar
加入于:
帖子: 4768
声望: 289

策略交易状态self.trading为True的时候,策略调用send_order函数才会发往CTA策略引擎。策略交易状态self.trading为False的时候,策略调用send_order函数只会返回一个空列表。CTA策略引擎的start_strategy函数是先给策略推送on_start,再把策略交易状态变为True的

Member
avatar
加入于:
帖子: 260
声望: 3

xiaohe wrote:

策略交易状态self.trading为True的时候,策略调用send_order函数才会发往CTA策略引擎。策略交易状态self.trading为False的时候,策略调用send_order函数只会返回一个空列表。CTA策略引擎的start_strategy函数是先给策略推送on_start,再把策略交易状态变为True的

https://www.vnpy.com/forum/topic/2934-qiu-zhu-shou-pan-shi-ke-xia-dan-he-on-trade-on-stop-order-de-wen-ti

description

上面面是群主关于“求助,收盘时刻下单和on_trade & on_stop_order 的问题”帖子的回复,,说可以写在on_start里,也可以写在on_tick里。是否可以认为,群主说的on_start里提交缓存的停止单存在逻辑错误,是一个逻辑bug呢?另外如果写在on_tick里面会存在反复发出的情况,,有什么高效率的写法在on_tick里面只发出一次缓存的停止单吗?望指点一下,谢谢

Member
avatar
加入于:
帖子: 4768
声望: 289

你就设一个全局变量默认为False,on_tick在策略trading为True以及这个变量为False的时候,发出缓存的停止单,然后变量变为True,不就不会重复发单了吗

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

沪公网安备 31011502017034号

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