如何编写满足某条件把账户中所有品种头寸全部平掉
如何编写满足某条件把账户中所有品种头寸全部平掉
如何编写满足某条件把账户中所有品种头寸全部平掉
虽然你的问题只有一句话,但是实际编写的代码可能要几十行甚至几百行....我这里只能给出一些提示和可能用到的函数首先,肯定是用if做大框架来判断满足条件,这个是最简单的。第二步,平仓之前要先查询账户里有哪些品种第三步,如果在执行全平的时候,有一些委托单挂着没有成交,这里要决定是否取消这些单子。A_GetUnFillOrderIDs获取未完成的报单数组根据这里获得的未完成订单的委托编号,逐个进行撤单。如果撤单中还要区分开平或者多空,那么查询一下函数列表,也有判断多空开平的函数。第四步,未成交单全部撤完,根据第二步查询出来的品种,结合for循环去查询每个品种的多空持仓数量,用a_sendorderex函数做相应平仓处理。注意,这里不要查询多空仓位,应该查询可平仓数量,否则容易陷入重复报单的异常。第五步,以上业务全部处理后,要考虑是否进行订单管理。可以借用交易助手进行撤单重发,也可以自己写撤单重发代码。这部分代码在系统公式库内有,交易助手。先用A_GetPositionSymbols查询当前账户里所有品种的symbol然后再对这个数组里进行for循环,循环里的业务主要为使用 A_GetPosition,获取指定合约的仓位,根据返回的pos结构体里的多空数量信息,用a_sendorderex函数分别全平。