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

比如挂单buy后,没有成交,buy的条件又一次满足了,这时候本应该加仓的(第一次的挂单没有成交),这时候,是不是要先把之前的挂单取消,再挂新的订单,
否则之前的挂单会一直在,并且一直不会成交,因为每次cross_limit_order里只会判断self.active_limit_orders,而self.active_limit_orders是最新的挂单

不知道这样的理解对不对

Member
avatar
加入于:
帖子: 4618
声望: 284

如果是参照示例策略写的话,会在下一个on_bar推过来的时候用cancel_all()方法立刻撤销之前未成交的所有委托的https://www.vnpy.com/docs/cn/cta_strategy.html

Member
avatar
加入于:
帖子: 50
声望: 1

xiaohe wrote:

如果是参照示例策略写的话,会在下一个on_bar推过来的时候用cancel_all()方法立刻撤销之前未成交的所有委托的https://www.vnpy.com/docs/cn/cta_strategy.html

谢谢,看到了,如果没有用cancel_all()是不是就会出现上面我说的问题?

Member
avatar
加入于:
帖子: 716
声望: 62

如果不撤单,之前的单会一直在,但是一旦满足要求也会被撮合。self.active_limit_orders不是最新委托,是未撤销和未成交的委托,也就是还在活动中的委托。
之所以要撤掉所有委托,是因为一来上个委托相对现在已经失去了时效性,二来是方便持仓管理。

Member
avatar
加入于:
帖子: 50
声望: 1

郭易燔 wrote:

如果不撤单,之前的单会一直在,但是一旦满足要求也会被撮合。self.active_limit_orders不是最新委托,是未撤销和未成交的委托,也就是还在活动中的委托。
之所以要撤掉所有委托,是因为一来上个委托相对现在已经失去了时效性,二来是方便持仓管理。
明白了,非常感谢

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

沪公网安备 31011502017034号

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