Mam mały problem nie wiem dlaczego raz działa Mi funkcja prawidłowo a raz nie

Kod: Zaznacz cały
void Modyfikacja_Zlecen ()
{
bool Result;
double pips ;
double TickSize = MarketInfo(Symbol(),MODE_POINT);
if(TickSize ==0.00001)
pips = TickSize * 10;
else pips= TickSize;
double UPPER = NormalizeDouble(High[iHighest(OrderSymbol(),1440,MODE_HIGH,7,1)],Digits);
double TP_BUY = NormalizeDouble(UPPER + (PIPS * pips),Digits);
double SL_SELL = UPPER;
double LOWER = NormalizeDouble(Low[iLowest(OrderSymbol(),1440,MODE_LOW,7,1)],Digits);
double TP_SELL = NormalizeDouble(LOWER - (PIPS * pips),Digits);
double SL_BUY = LOWER;
RefreshRates();
for (int i = OrdersTotal()-1 ; i >=0 ; i--)
{
if (OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES)==true)
//--------------- Modyfikacja Zlecenia SELL ---------------//
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() )
{
if (OrderMagicNumber() != 24 && OrderMagicNumber() != 26)
{
if (OrderOpenPrice() != LOWER )
Result = (OrderModify(OrderTicket(),LOWER,SL_SELL,TP_SELL,OrderExpiration(), Gold));
if (Result == false)
Print("Modyfikacja_Zlecen error - ",(GetLastError()));
}
}
}
//---------------- Modyfikacja Zlecenia BUY ----------------//
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() )
{
if (OrderMagicNumber() != 23 && OrderMagicNumber() != 25)
{
if (OrderOpenPrice() != UPPER )
Result = (OrderModify(OrderTicket(),UPPER,SL_BUY,TP_BUY,OrderExpiration(), Gold));
if (Result == false)
Print("Modyfikacja_Zlecen error - ",(GetLastError()));
}
}
}
}
}
Przede wszystkim źle wprowadza Mi cenę otwarcia zlecenia oczekującego , nie wybiera najwyższej tylko przypadkową
