网友问题:
我只有平仓没有开仓,因为我写的是平仓策略,异地开仓可能有好多个品种,每个品种都只开一手,同时我挂了平仓单等待成交,那么平仓程序满足止盈止损了,要先撤掉异地的所挂的某个品种平仓单,然后再将其平掉,天勤的案例都只有通过insert_order函数开仓,返回一个order,然后针对这个品种进行撤单,但是我并没有程序开仓过程,那么我该怎么来写撤单呢?
我的程序里面使用这两句撤单 Pingcangorder=api.get_order()
api.cancel_order(Pingcangorder)感觉不对,这样就会撤掉所有品种的平仓单子了,我只希望撤掉满足条件的品种的平仓单即可。
![](http://www.quantceo.com/wp-content/uploads/2022/09/QQ图片20220915063846.jpg)
回答:
你在其它软件上挂了平仓的单想止赢的,结果反方向走 了。一定要止损了。就先平了撤了原来的哪个挂单就去平就行了。Pingcangorder=api.get_order()这是一个全部订单的对像吧。你得再定位到哪个单号才行。
要用到get_order函数,函数说明如下:
![](http://www.quantceo.com/wp-content/uploads/2022/09/QQ图片20220915064050.png)
也有该函数的例子:
![](http://www.quantceo.com/wp-content/uploads/2022/09/QQ图片20220915064126.png)
具体你想对上哪个品种,按照例子遍历,遍历了看order信息,根据order信息里的值去联系。
总结:
1.天勤的get_order可以理解为是去像柜台请求的,那么不论是不是天勤挂单,其实都是可以通过get_order获取到,获得的是一个以本交易日的order 组成的字典对象;
2.cancel_order需要指定具体的委托单号,委托单号可以在详细的order信息里面查到;
3.其实我们有tqkq,simnow这些模拟,自己做一下测试之后再问人可以加深理解;
4.另外你这串代码里面还有一些其他的坑比如targetpostask和cancel_order这些对同一个合约不要混用,可能会造成一些混乱效果。