Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Статьи уже помогли многим трейдерам. Заходи и читай!
Dmitry Luck'janenko
447
Dmitry Luck'janenko 2012.04.23 19:17 

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

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

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


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

Комбинатор
15636
Комбинатор 2012.04.23 19:21  

Замени на:

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

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

ПРАВИЛО #1

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

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