Hallo, in dem Code, welchen du geschrieben hast, werden ja nur PendingStop Orders behandelt. Das passt dann nicht zu dem Log den du als letztes angehängt hast.
Pendingorders mussen gelöscht werden
OrderDelete(), MarketOrders müssen geschlossen werden
OrderClose()
Hier meine CloseAllOrders Funktion, allerdings ohne gutes Error Handling:
Code:
void CloseAllOrders(int Slippage_local,int MagicNumber_local)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
break;
if((OrderMagicNumber()!=MagicNumber_local) || (OrderSymbol()!=Symbol()))
continue;
//--- check order type
if(OrderType()==OP_BUY)
{
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage_local,White))
Print(__FUNCTION__," ERROR OP_BUY ",GetLastError());
continue;
}
if(OrderType()==OP_SELL)
{
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage_local,White))
Print(__FUNCTION__," ERROR OP_SELL ",GetLastError());
continue;
}
if(OrderType()>1) //OP_BUYSTOP OP_SELLSTOP OP_BUYLIMIT OP_SELLLIMIT
{
if(!OrderDelete(OrderTicket(),White))
Print(__FUNCTION__," ERROR OP_BUYSTOP OP_SELLSTOP OP_BUYLIMIT OP_SELLLIMIT ",GetLastError());
continue;
}
}
}