Новая статья: Рецепты MQL5 - ОСО-ордера

 

На mql5.com опубликована статья Рецепты MQL5 - ОСО-ордера:

В торговле трейдер использует различные механизмы и взаимосвязи, в том числе и между ордерами. В данной статье предлагается решение по обработке ОСО-ордеров. При этом широко задействованы классы Стандартной библиотеки, а также создаются новые типы данных.

В статье речь пойдет о работе с таким типом связки ордеров как OCO. Данный механизм реализован в некоторых конкурирующих с MetaTrader 5 торговых терминалах. На примере создания советника, имеющего панель для обработки ОСО-ордеров, преследую 2 цели. С одной стороны есть желание осветить возможности Стандартной библиотеки, с другой - расширить инструментарий трейдера.

1. Сущность ОСО-ордеров

ОСО-ордера (one-cancels-the-other order) – это связка пары отложенных ордеров.

Между собой они связаны функцией взаимоотмены: если сработал первый, то не должен сработать второй, и наоборот.

Рис.1 Связка ОСО-ордеров

Рис.1. Связка ОСО-ордеров

На рис.1 приведена простая схема взаимозависимости ордеров. Она отражает сущностное определение: связка живет до тех пор, пока живут оба ордера. С точки зрения логики любой [один] ордер из пары есть необходимое, но недостаточное условие для существования связки.

В некоторых источниках замечается, что в связке обязательно один ордер лимитный, а другой – стоповый, причем ордера должны иметь одно направление (покупка или продажа). На мой взгляд, такое ограничение не способствует созданию гибких торговых стратегий. Предлагаю рассматривать в связке различные ОСО-ордера, а главное, пробовать эту связку запрограммировать.

Автор: Dennis Kirichenko

 

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

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