Можно создать список либо массив (кому как нравится) виртуальных ордеров и при проходе одного из уровней открывать нужный тип ордера с рынка и закрывать второй виртуальный ордер, исключая его из состава списка либо массива. Либо просто удаляя саму сущность списка или массива.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На mql5.com опубликована статья Рецепты MQL5 - ОСО-ордера:
В статье речь пойдет о работе с таким типом связки ордеров как OCO. Данный механизм реализован в некоторых конкурирующих с MetaTrader 5 торговых терминалах. На примере создания советника, имеющего панель для обработки ОСО-ордеров, преследую 2 цели. С одной стороны есть желание осветить возможности Стандартной библиотеки, с другой - расширить инструментарий трейдера.
1. Сущность ОСО-ордеров
ОСО-ордера (one-cancels-the-other order) – это связка пары отложенных ордеров.
Между собой они связаны функцией взаимоотмены: если сработал первый, то не должен сработать второй, и наоборот.
Рис.1. Связка ОСО-ордеров
На рис.1 приведена простая схема взаимозависимости ордеров. Она отражает сущностное определение: связка живет до тех пор, пока живут оба ордера. С точки зрения логики любой [один] ордер из пары есть необходимое, но недостаточное условие для существования связки.
В некоторых источниках замечается, что в связке обязательно один ордер лимитный, а другой – стоповый, причем ордера должны иметь одно направление (покупка или продажа). На мой взгляд, такое ограничение не способствует созданию гибких торговых стратегий. Предлагаю рассматривать в связке различные ОСО-ордера, а главное, пробовать эту связку запрограммировать.
Автор: Dennis Kirichenko