Функция гарантированного закрытия всех открытых ордеров mql4 по магику на текущем торговом инструменте:
void ClosePos()
{
bool closes = false;
while(!closes)
{
for(int i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
bool close=false;
if(OrderType()<=1 && OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)
{
Print("cous: ",cous);
cous++;
while(!close)
{
if(OrderType()==0 && OrderSymbol()==Symbol())
{
close=OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),100,clrNONE);
}
if(OrderType()==1 && OrderSymbol()==Symbol())
{
close=OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),100,clrNONE);
}
}
}
}
}
if(CountTrades(-1,Magic)==0)
{
closes=true;
break;
}
}
}