Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Dmitry Luck'janenko
447
Dmitry Luck'janenko  

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

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

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


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

Комбинатор
16518
Комбинатор  

Замени на:

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

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

ПРАВИЛО #1

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий