Время истечения отложенного ордера не может быть меньше 10 минут. Если при модификации это условие нарушается, Вам возвращается ошибка.
Выход - отслеживайте срок истечения в советнике.
Может я не совсем точно выразился?
Мне не надо срок жизни ордера сокращать, его надо оставить без изменения. Ведь любой другой параметр можно оставить без изменения, а срок жизни отложника почему-то нельзя.
Нверное имеется вииду, что можно оставить профит допустим без изменений путём OrderTakeProfit(), а время как оставить прежним?
Если в момент модификации профит остаётся таким же и до него меньше 10 пунктов, то он разве выдаст ошибку, что неправильные стопы? Выдаст вроде.
В принципе, Ваш ответ подтвердил мои догадки. Большое спасибо. Но, если не возражаете я поставлю вопрос несколько иначе.
Допустим поставили отложник за пределами СтопЛевел, модифицируем ТП и СЛ ордера, а OrderOpenPrice() уже ближе допустимого уровня...
Пишем OrderModify(OrderTicket(), OrderOpenPrice(), NewSL, NewTP, 0, CLR_NONE); в этом же случае ошибку не выдаёт... А с OrderExpiration() такое не прокатывает...
И ещё, если не менять ни-одного параметра при модификации ордера, то возвращается ошибка 1. Значит, видимо, не всё для сервера "новое".
ps: Я не пытаюсь с Вами спорить.
Нверное имеется вииду, что можно оставить профит допустим без изменений путём OrderTakeProfit(), а время как оставить прежним?
Если в момент модификации профит остаётся таким же и до него меньше 10 пунктов, то он разве выдаст ошибку, что неправильные стопы? Выдаст вроде.
Может этот пример даже лучше подходит...
ps: Я не пытаюсь с Вами спорить.
Отчего ж не поспорить, я ведь не разработчик и сам только подстраиваюсь под те законы, которые придумывают разработчики. Раз не идет как хочется - придумываем обходные пути. :)
Может у Вас есть решение такого вопроса: Если оборвалась связь с сервером ДЦ, все ордера БайСтоп, СеллСтоп удаляются по возможности быстрее.
Вот этим OrderExpiration() и пытался решить вопрос. Просто изгалялся в попытке сократить время жизни отложника. Хотелось сделать так, чтобы при установке ордера назначить ему OrderExpiration() = 10 минут, но во-время модификации ордера не менять OrderExpiration(). Тогда если связь прерывается через 8 минут после последней модификации ордера ему осталось-бы жить всего 2 минуты, а не 10.
Кто знает когда может прерваться связь с сервером??? (это не вопрос. на него отвечать не надо)(смайлик)
А потом, на 9-той минуте опять поставить 10. Но ничего видимо не получится...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как сделать чтобы при модификации ордера время его жизни не изменилось?
Экспериментировал с минимальным сроком жизни отложника 10 минут. Если через минуту его модифицировать так OrderModify(OrderTicket(), NewPrice, NewSL, NewTP,OrderExpiration(), CLR_NONE); то выдаёт ошибку 3 (неправильный параметр), если-же вместо OrderExpiration() поставить 0, то время совсем снимается и естественно ордер не удалится.
Есть-ли решение? Или я что-то не так делаю???