На доливку - другой ордер с другим "магиком", см. статью Игоря Кима.
доливку организуй лучше со смыслом а не по пунктам и вот здесь
же неплохо замешать скрипт - решение задачки )))
'Задачка!!!'
'Задачка!!!'
Это решит вопрос о не доливке к ордеру который сам является доливкой.
Но не решит вопрос повторной доливки к основному ордеру. Объясню:
Допустим Ордер№1 ушел в минус на 50 пунктов, сработала доливка (открылся Ордер№2-доливка), при дальнейшей проверке, Ордер№1 ушел еще больше в минус - к нему открывается еще одна доливка - которая не нужна - как этого избежать?
В статье и примера Игоря Кима - ответа на мой вопрос не нашел.
А почему бы не доливать только к последнему ордеру?
Хинт: У последнего ордера OrderOpenTime() самый большой. :)
Из недокументированного: ордера добавляются в конец списка. Если в цикле идти сверху (как, собственно, и сделано), то после первого найденного можно вываливаться даже без проверки времени открытия.
Здесь, правда, нужно ловить последнюю длинную и короткую.
Кстати, код в примере какой-то, мягко говоря, странноватый.
Две подряд проверки на OrderSymbol(). Вторая, очевидно, никогда не сработает, стало быть, redundant.
По маджику фильтруются только короткие позиции. Длинные позиции почему-то обрабатываются все, без учета маджика.
Если размер для новой короткой позиции нулевой, длинные не рассматриваются вообще.
PS
Интереснее может получиться, если наращивать размер экспоненциально, а не линейно.
Впрочем, так и сольет быстрее :)
Хинт: У последнего ордера OrderOpenTime() самый большой. :)
Из недокументированного: ордера добавляются в конец списка. Если в цикле идти сверху (как, собственно, и сделано), то после первого найденного можно вываливаться даже без проверки времени открытия.
Здесь, правда, нужно ловить последнюю длинную и короткую.
Кстати, код в примере какой-то, мягко говоря, странноватый.
Две подряд проверки на OrderSymbol(). Вторая, очевидно, никогда не сработает, стало быть, redundant.
По маджику фильтруются только короткие позиции. Длинные позиции почему-то обрабатываются все, без учета маджика.
Если размер для новой короткой позиции нулевой, длинные не рассматриваются вообще.
PS
Интереснее может получиться, если наращивать размер экспоненциально, а не линейно.
Впрочем, так и сольет быстрее :)
Irtron:
А почему бы не доливать только к последнему ордеру?
Или к самому "неубыточному" из убыточных. Такой надо будет
искать по всему списку, хотя он и будет, по логике, последним
в данном направлении.
А почему бы не доливать только к последнему ордеру?
sashken писал (а):
Это решит вопрос о не доливке к ордеру который сам является доливкой.
Но не решит вопрос повторной доливки к основному ордеру. Объясню:
Допустим Ордер№1 ушел в минус на 50 пунктов, сработала доливка (открылся Ордер№2-доливка), при дальнейшей проверке, Ордер№1 ушел еще больше в минус - к нему открывается еще одна доливка - которая не нужна - как этого избежать?
В статье и примера Игоря Кима - ответа на мой вопрос не нашел.
Это решит вопрос о не доливке к ордеру который сам является доливкой.
Но не решит вопрос повторной доливки к основному ордеру. Объясню:
Допустим Ордер№1 ушел в минус на 50 пунктов, сработала доливка (открылся Ордер№2-доливка), при дальнейшей проверке, Ордер№1 ушел еще больше в минус - к нему открывается еще одна доливка - которая не нужна - как этого избежать?
В статье и примера Игоря Кима - ответа на мой вопрос не нашел.
Введите лимит на доливку к ордеру по цене открытия , скажем если Вы любите доливать при откате на 50 пунктов , то при большем откате к первому доливать не будет. Поставьте флаг на ордер к которому идет доливка, тогда один раз дольет и при увеличении лося сверх лимита больше не будет.
FION писал (а):
Введите лимит на доливку к ордеру по цене открытия , скажем если Вы любите доливать при откате на 50 пунктов , то при большем откате к первому доливать не будет. Поставьте флаг на ордер к которому идет доливка, тогда один раз дольет и при увеличении лося сверх лимита больше не будет.
Введите лимит на доливку к ордеру по цене открытия , скажем если Вы любите доливать при откате на 50 пунктов , то при большем откате к первому доливать не будет. Поставьте флаг на ордер к которому идет доливка, тогда один раз дольет и при увеличении лося сверх лимита больше не будет.
Вот я и хочу узнать как поставить флаг. Через OrderModify?
sashken писал (а):
Вот я и хочу узнать как поставить флаг. Через OrderModify?
Флаг - это логическая функция , после выполнения некоторой операции
ей присваивается значение -противоположное присвоенному заранее,
посмотрите советники Игоря Кима, он любит использовать флаги.
FION писал (а):
Введите лимит на доливку к ордеру по цене открытия , скажем если Вы любите доливать при откате на 50 пунктов , то при большем откате к первому доливать не будет. Поставьте флаг на ордер к которому идет доливка, тогда один раз дольет и при увеличении лося сверх лимита больше не будет.
Введите лимит на доливку к ордеру по цене открытия , скажем если Вы любите доливать при откате на 50 пунктов , то при большем откате к первому доливать не будет. Поставьте флаг на ордер к которому идет доливка, тогда один раз дольет и при увеличении лося сверх лимита больше не будет.
Вот я и хочу узнать как поставить флаг. Через OrderModify?
Пардон, не сразу догнал, про какие несколько позиций идет речь.
Проще всего идентифицировать "доливные" группы по одинаковому
т/п и выбирать последний (первый с конца) с нужным т\п и к нему
доливать, если надо. Если по тейкпрофиту не удается, например,
когда у разных групп может быть одинаковый т/п, тогда для каждой
группы свой маджик.
sashken писал (а):
Объясню:
Допустим Ордер№1 ушел в минус на 50 пунктов, сработала доливка (открылся Ордер№2-доливка), при дальнейшей проверке, Ордер№1 ушел еще больше в минус - к нему открывается еще одна доливка - которая не нужна - как этого избежать?
Объясню:
Допустим Ордер№1 ушел в минус на 50 пунктов, сработала доливка (открылся Ордер№2-доливка), при дальнейшей проверке, Ордер№1 ушел еще больше в минус - к нему открывается еще одна доливка - которая не нужна - как этого избежать?
Алгоритмически можно так. При создании Ордер№2-доливка ему в комментарии пишется magic number 1-го Ордер№1. И перед созданием ордера-доливки проверяется, существует ли ордер с комментом, содержащим номер данного. Если да, то не создавать, иначе создать с вышеуказанным комментарием.
Так через комментарии обычно отслеживают какие-то параметры, чтобы не на клиенте их хранить, а на сервере.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Необходимо "долиться" к убыточной позиции, например, если позиция уходит в минус на Dolivka_pip пунктов, то открываем новую позицию в ту же сторону с ТП равным ТП предыдущего ("минусового") ордера.
Проблема: если ордер один, то все нормально, "доливка" работает как надо.
А если открытых ордеров несколько, то "доливка" к одному и тому же ордеру делается несколько раз,
как этого избежать. Т.е. необходимо, как-то запомнить что к этому ордеру мы уже "долились" для того, чтобы больше к нему не "доливать".