Попробуйте так:
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());И не сработало.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Необходимо подвинуть отложенный ордер за рынком на определенное расстояние от рынка (Offset). Вот отрывок:
Почему то первое условие срабатывает даже тогда, когда расстояние между ценой открытия и текущим Ask РАВНО параметру Offset. Соответственно при попытке модификации ордера выдается ошибка №1 - "нет ошибки, но результат неизвестен". Т. е. в этом случае мы пытаемся изменить цену открытия ордера на такую же. До сих пор решал проблему прибавлением к Offset единицы. Но тогда получается, что ордер становится на Offset+1 пунктов от рынка, а это не совсем правильно.