向各位大佬请教一个遇到的问题。为提高资金利用率,我写了下面的代码想实现在同一根bar上实现“先平仓,再开仓”的功能,但是在实盘中总是平仓以后就不开仓了,这个语句的问题在哪里呢?
N_Trade=CurrentContracts();//查询当前实际持仓
If(Trade_Signal==1)
{
If(CurrentContracts()!=0)
BuyToCover(-N_Trade,Open+1);
If(CurrentContracts()==0)
{
Buy(N,Open+1);
Trade_Signal=2;
}
PlotString(\"Trade_mode\",Text(Trade_mode));
}
If(Trade_Signal==-1)
{
If(CurrentContracts()!=0)
Sell(N_Trade,Open-1);
If(CurrentContracts()==0)
{
SellShort(N,Open-1);
Trade_Signal=2;
}
PlotString(\"Trade_mode\",Text(Trade_mode));
}
这个代码还不能说明问题
也就是说这段代码是没有问题,可以实现我想要的目的吧?
没有执行的原因,我能想到是因为空余资金不足导致不能下单。可是,我这段代码已经是先平仓,待查询到没有持仓的时候才开仓,这个时候资金就足够开仓的,不知道为什么就是只平仓而没有做到再开反向仓。