Подвижка отложенного ордера

 
Не могу понять, почему так срабатывает условие.
Необходимо подвинуть отложенный ордер за рынком на определенное расстояние от рынка (Offset). Вот отрывок:

     if(OrderOpenPrice()-Ask > Offset*Point)
       if(!OrderModify(OrderTicket(), Ask+Offset*Point, SL, TP, 0))
        Alert("Не удалось модифицировать ордер BUYSTOP. Ошибка №", GetLastError());
Почему то первое условие срабатывает даже тогда, когда расстояние между ценой открытия и текущим Ask РАВНО параметру Offset. Соответственно при попытке модификации ордера выдается ошибка №1 - "нет ошибки, но результат неизвестен". Т. е. в этом случае мы пытаемся изменить цену открытия ордера на такую же. До сих пор решал проблему прибавлением к Offset единицы. Но тогда получается, что ордер становится на Offset+1 пунктов от рынка, а это не совсем правильно.
 
Попробуйте так:
     if( NormalizeDouble( OrderOpenPrice() - Ask - Offset*Point, Digits ) > 0.0 )
       if(!OrderModify(OrderTicket(), NormalizeDouble( Ask+Offset*Point, Digits ), SL, TP, 0))
        Alert("Не удалось модифицировать ордер BUYSTOP. Ошибка №", GetLastError());
 
Да, работает. Спасибо!
Я пробовал в этом направлении только вот так:

if(  NormalizeDouble(  OrderOpenPrice() -  Ask,  Digits) >  NormalizeDouble(Offset*Point,  Digits  )  )
if(!OrderModify(OrderTicket(),  Ask+Offset*Point,  SL,  TP,  0))
Alert("Не удалось модифицировать ордер BUYSTOP. Ошибка №",  GetLastError());
И не сработало.
Причина обращения: