没有平空后开多,而是只开多的问题

//===========判断持仓状态====================================== Bool ret1 = GetLayerOrderMapSymbols(mainsymbols); Bool ret2 = A_GetPosition(Mid(TextArray(mainsymbols),1,Len(TextArray(mainsymbols))-2),pos,"",0); mypos = pos.l ongCurrentVolume - pos.shortCurrentVolume;(这里发帖的时候显示l ong这个词为敏感词,所以空了一格) //====================开平仓=========================================== If(mypos==0) { If(A1) { Buy(1,Close); } If(A2) { SellShort(1,Close); } } If(mypos<>0) { If(mypos==1 And A1) { Sell(1,Close); SellShort(1,Close); } If(mypos==-1 And A2) { BuyToCover(1,Close); Buy(1,Close); } }老师,就是我模拟中今天账户有空单的持仓,我的策略出现开多信号,那应该是平空开多。但是实际只开多了,没有平空。我用的A_GetPosition查询账户持仓状态,返回值也是True,说明持仓状态没问题。那么是否跟我用的下单指令有关?我的下单指令还是buy sell BuyToCover SellShort这四种。我是否需要换成A_SendOrder?还是说是别的问题?

A函数和图表系统不是一个体系,混用等于抓瞎

回复:那所以我都换成A函数是否能解决这个问题?

回复:换成A函数可能逻辑上你好理解一些,但实现难度要大不少。另外,A函数指令不能回测

补充一些信息,方便老师找到问题:1.mypos的变量是integer;2. A1 A2只是技术指标判断,跟问题无关;3.以上就是主要代码,无其他重要代码;

回复:BuySell是图表信号交易指令,BuySell有一套自己的函数,和实际账户函数没有关系。