OrderModify in this loop failes w/ ERR_NO_RESULT. But I can't break out of the while loop. It just keeps looping indefinately.
Can anyone help me figure this out?
TIA! (Thanks In Advance).
Can anyone help me figure this out?
TIA! (Thanks In Advance).
Inserted Code
void ModifyThisOrder(int Ticket, double Price, double StopLoss, double TakeProfit, int MaxTry) { string Commentary=" "; int TryCount=0; bool OrderLoop=false; color OrderColor=Black; if (OrderType()==OP_BUY) {OrderColor=Blue;} if (OrderType()==OP_SELL) {OrderColor=Red;} while( !OrderLoop ) { RefreshRates(); while( IsTradeContextBusy() ) { Sleep( 10 ); } if( OrderSelect( Ticket, SELECT_BY_TICKET ) ) { OrderModify( Ticket, OrderOpenPrice(), StopLoss, TakeProfit, 0, OrderColor ); } int Err=GetLastError(); switch (Err) { //---- Success case ERR_NO_ERROR: {OrderLoop = true; break;} //---- Retry Error case ERR_INVALID_STOPS: {Print("Invalid Stops"); Sleep(1000);} case ERR_SERVER_BUSY: {Print("Server Busy"); Sleep(1000);} case ERR_NO_CONNECTION: {Print("No Connection"); Sleep(1000);} case ERR_INVALID_PRICE: {Print("Invalid Price"); Sleep(1000);} case ERR_OFF_QUOTES: case ERR_BROKER_BUSY: Sleep(1000); case ERR_TRADE_CONTEXT_BUSY: {TryCount++; break;} case ERR_PRICE_CHANGED: case ERR_REQUOTE: continue; //---- Fatal known Error case ERR_INVALID_TRADE_VOLUME: {OrderLoop = true; Print( Commentary + " Invalid Lots" ); break;} case ERR_MARKET_CLOSED: {OrderLoop = true; Print( Commentary + " Market Close" ); break;} case ERR_TRADE_DISABLED: {OrderLoop = true; Print( Commentary + " Trades Disabled" ); break;} case ERR_NOT_ENOUGH_MONEY: {OrderLoop = true; Print( Commentary + " Not Enough Money" ); break;} case ERR_TRADE_TOO_MANY_ORDERS: {OrderLoop = true; Print( Commentary + " Too Many Orders" ); break;} case 149: {OrderLoop = true; Print( Commentary + " Hedge is prohibited" ); break;} //---- Fatal Unknown Error case ERR_NO_RESULT: {OrderLoop = true; Print( Commentary + "No Result" ); break;} default : {OrderLoop = true; Print( "Unknown Error - " + Err ); break;} //---- }// end switch if( TryCount > MaxTry ) { OrderLoop = true; } }//end while return(0); }