//===========判断持仓状态======================================
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有一套自己的函数,和实际账户函数没有关系。