Не пойму в чем проблема ???

 

Помогите пожалуйста разобраться с этим приколом. Есть такой фрагмент кода :

         Print("OrderStopLoss ",OrderStopLoss());
         Print("SL ",SL);
         if (OrderStopLoss()!=SL)
               OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);

Вот это показывает на вкладке Эксперты


Числа равны ... но все равно происходит модификация ордера.

 

Замени на:

if (MathAbs(OrderStopLoss() - SL) > 0.5*Point)
//...
 
Помогло, спасибо, но в чем состоит проблема ?
 
В общем случае даблы на строгое равенство проверять вообще нельзя.
 
lucka88:
Помогло, спасибо, но в чем состоит проблема ?

проблема в том, что вы не пользуетесь NormalizeDouble

ПРАВИЛО #1

После присваивания double переменной результата любой математической операции - требуется его нормализаиция перед использованием в торговых функциях или операциях сравнения.