Error 129

 

Even though I have useddd refreshrates it is still getting the error and not processing the close


for (int i = 0; i <= MyTotalOrders; i++)
{
if (OrderSelect(i, SELECT_BY_POS) == true)
{
if (OrderProfit() > TakeMoneyAt)
{
if(OrderSelect(OrderTicket(),SELECT_BY_TICKET,MODE_TRADES))
{
cmd=OrderType();
//---- first order is buy or sell
if(cmd==OP_BUY || cmd==OP_SELL)
{
while(true)
{
if(cmd==OP_BUY) price=Bid;
else price=Ask;
result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError closing first try =",error); }
if(error==135) RefreshRates();
else break;
if(error==129)
{
RefreshRates();
Sleep(10000);
if(cmd==OP_BUY) price=Bid;
else price=Ask;
result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError closing second try =",error); }
else error=0;
}
else break;
}
}
}
else Print( "Error closing first neg when order select ", GetLastError());
}
}
}

 

if(error==129)
{
RefreshRates();
Sleep(10000);
if(cmd==OP_BUY) price=Bid;


Try refresh AFTER sleeping 10 seconds

 

LEH


Make sure your variable price is declared as a double

Try 5 instead of 3 for Slippage


FWIW

-BB-

 
LEHayes:

Even though I have useddd refreshrates it is still getting the error and not processing the close


for (int i = 0; i <= MyTotalOrders; i++)
{
if (OrderSelect(i, SELECT_BY_POS) == true)
{
if (OrderProfit() > TakeMoneyAt)
{
if(OrderSelect(OrderTicket(),SELECT_BY_TICKET,MODE_TRADES))
{
cmd=OrderType();
//---- first order is buy or sell
if(cmd==OP_BUY || cmd==OP_SELL)
{
while(true)
{
if(cmd==OP_BUY) price=Bid;
else price=Ask;
result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError closing first try =",error); }
if(error==135) RefreshRates();
else break;
if(error==129)
{
RefreshRates();
Sleep(10000);
if(cmd==OP_BUY) price=Bid;
else price=Ask;
result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError closing second try =",error); }
else error=0;
}
else break;
}
}
}
else Print( "Error closing first neg when order select ", GetLastError());
}
}
}

Neither one of these suggestions are helping. Thanks though.
Reason: