RefreshRates() - page 2

 
Alain Verleyen:
You need to print the price values (new and old stoploss, ask/bid price) when there is an error, not only the error #
In general you need to follow these rules when setting stoploss/takeprofit.
I have read it,Thanks
 

Finally I have found it

it was a simple as 1 moment fix...

double BreakEvenVAlue0=0;
if (BreakEvenStart > 0 && BreakEven) BreakEvenValue0=BreakEvenValue;

for (int cnt3 = 0; cnt3 < OrdersTotal(); cnt3++)
   {
      int ticket_select = OrderSelect (cnt3, SELECT_BY_POS);
RefreshRates();
      if ( OrderType() <= OP_SELL
      &&   OrderSymbol() == Symbol()
      &&   OrderMagicNumber() == buy_magic_number )
      {
         if (OrderType() == OP_BUY)
         {
            if (BreakEvenStart > 0 && BreakEven)
            {
               int ticket_modify =
                  OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice()+(BreakEvenValue0*trade_point),
                     OrderTakeProfit(), 0, modify_arrow_color);

               if(!ticket_modify)Alert("Break Even: Order cannot be modified, ", ErrorDescription(GetLastError()));
               else Print("Break Even Placed Successfuly.");
            }
         }
      }
   }
Reason: