全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
如何编写满足某条件把账户中所有品种头寸全部平掉
hdbin 分享到
2023-06-05 14:45

如何编写满足某条件把账户中所有品种头寸全部平掉

kyover

虽然你的问题只有一句话,但是实际编写的代码可能要几十行甚至几百行....

我这里只能给出一些提示和可能用到的函数

首先,肯定是用if做大框架来判断满足条件,这个是最简单的。

第二步,平仓之前要先查询账户里有哪些品种

第三步,如果在执行全平的时候,有一些委托单挂着没有成交,这里要决定是否取消这些单子。

A_GetUnFillOrderIDs获取未完成的报单数组

根据这里获得的未完成订单的委托编号,逐个进行撤单。如果撤单中还要区分开平或者多空,那么查询一下函数列表,也有判断多空开平的函数。

第四步,未成交单全部撤完,根据第二步查询出来的品种,结合for循环去查询每个品种的多空持仓数量,用a_sendorderex函数做相应平仓处理。注意,这里不要查询多空仓位,应该查询可平仓数量,否则容易陷入重复报单的异常。

第五步,以上业务全部处理后,要考虑是否进行订单管理。可以借用交易助手进行撤单重发,也可以自己写撤单重发代码。这部分代码在系统公式库内有,交易助手。

先用A_GetPositionSymbols查询当前账户里所有品种的symbol

然后再对这个数组里进行for循环,循环里的业务主要为

使用 A_GetPosition,获取指定合约的仓位,根据返回的pos结构体里的多空数量信息,用a_sendorderex函数分别全平。

2023-06-05 15:11
您未登录,请先 登录注册 后发表评论
顶部