Как в советнике при срабатывании TakeProfit, закрыть все работающие и снять все отложенные ордера.

 
Подскажите, если не затруднит, как в советнике при срабатывании TakeProfit, например при ордере Buy, закрыть все работающие и снять все отложенные ордера на Buy. Спасибо.......
 
gala писал (а):
Подскажите, если не затруднит, как в советнике при срабатывании TakeProfit, например при ордере Buy, закрыть все работающие и снять все отложенные ордера на Buy. Спасибо.......

'Управление ордерами – это просто'
 

Ссылка не помогла ): Работать с массивами надо уметь. Подскажите поконкретней

 
gala:
Подскажите, если не затруднит, как в советнике при срабатывании TakeProfit, например при ордере Buy, закрыть все работающие и снять все отложенные ордера на Buy. Спасибо.......
Анализировать историю закрытых позиций. Если появляется новая закрытая поза - анализировать ее тип и цену закрытия.
Допустим последняя закрытия поза именно BUY и ее ClosePrice=TakeProfit, тогда запускаете функцию закрытия всех BUY-ордеров и удаления всех отложенных BuyStop и BuyLimit ордеров по текущему инструменту.
 
1. Надо определить, что ордеров стало меньше.
2. Найти в истории последний закрытый ордер.
3. Проверить его прибыль. Если прибыль больше нуля, или цена закрытия равна тейк-профиту, значит он закрылся по тейк-профиту.
4. Выполнить необходимые действия если надо.

Но это в общем, а конкретно можно сделать зная особенности работы конкретного эксперта.
 

Почти получилось! СПАСИБО А без массивов никак? если есть только один рабочий бай и байстоп?

 
Управление ордерами – это просто

Статья описывает разнообразные способы контроля открытых позиций и отложенных ордеров и призвана облегчить написание экспертов.


Посмотрите 3-й раздел: "Одна позиция одного типа".

 
gala:

Почти получилось! СПАСИБО А без массивов никак? если есть только один рабочий бай и байстоп?

Т.е. как я понял в терминале одновременно 2 позы? И когда рыночная закрылась по TakeProfit, то надо вторую либо закрыть (если она рыночная), либо удалить (если отложенная)?
Если так, то можно и проще. Заведите 2 переменных под номера тикетов позиций. И на каждом тике контролируйте CloseTime этих позиций по их тикетам.
Как только у позиции CloseTime становится больше нуля - поза закрылась. Дальше контролируем цену закрытия на ClosePrice=TakeProfit и если все пучком, то кроем/удаляем позу со вторым тикетом в зависимости в рынке она или отложенная.

В общем в зависимости от конкретной ситуации могут быть различные более или менее "вкусные" способы обработки.
 
Можно также использовать поиск по сайту: https://www.mql5.com/en/search

Причина обращения: