Обсуждение статьи "Рецепты MQL5 - ОСО-ордера"

 

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

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

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

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

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

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

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

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

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

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

Автор: Dennis Kirichenko

 

Коллеги, кто-нибудь видел где-нибудь примеры использования библиотек которые лежат в MQL5\Include\Canvas\Charts, есть одна идея, как-раз можно использовать стандартную библиотеку, только без примеров, как-то туговато идёт освоение ))

 
thejobber:

Коллеги, кто-нибудь видел где-нибудь примеры использования библиотек которые лежат в MQL5\Include\Canvas\Charts, есть одна идея, как-раз можно использовать стандартную библиотеку, только без примеров, как-то туговато идёт освоение ))

Раздел Scripts\Examples\Canvas.
 
tol64:
Раздел Scripts\Examples\Canvas.
Спасибо Анатолий, думал что это только в индикаторах может быть ))
 

Спасибо за эту интересную статью.

  • В пункте 1 есть проблема с переводом.

They are connected by mutual cancellation function: if the first one triggers, the second one stays untouched, and vice versa.

Второй ордер должен быть удален, если сработал первый, а не "нетронут".

  • Способ обработки удаления второго ордера с помощью OnTrade/OnTradeTransaction недостаточно надежен. Может случиться так, что нужное событие не будет получено вообще, или будет получено и не обработано:

Кроме того, транзакции могут быть потеряны при доставке с сервера на терминал.

и

Длина очереди транзакций составляет 1024 элемента. Если OnTradeTransaction обрабатывает новую транзакцию слишком долго, старые транзакции в очереди могут быть вытеснены более новыми.

Поэтому лучше добавить процедуру защиты, чтобы избежать большого сюрприза, если ваш второй отложенный ордер не будет удален.

 

angevoyageur, спасибо за ваши комментарии! Вы как всегда говорите по делу :-)

Что касается перевода - да, это ошибка.

Что касается удаления нетриггерного ордера в теле события-обработчика Trade - да, нужно использовать дополнительную проверку, например, в теле события-обработчикаNewTick .


 
К сожалению, в компиляции много ошибок, поэтому она не подходит для новичков.
 

Я знаю, что это старая тема, но я действительно хочу использовать это. Я скачал zip-файл, но понятия не имею, как заставить его работать, помощь в компиляции была бы очень кстати.


Спасибо

 

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

 

Я только что скачал все zip-файлы, но мне нужна помощь в том, как заставить их работать или установить.

 
vijanda:

Я только что скачал все zip-файлы, но мне нужна помощь в том, как заставить их работать или установить.

Вам необходимо создать папку, в которой будут находиться все соответствующие файлы. После создания просто скопируйте файлы в эту папку. Например:


oco_files


После компиляции вы найдете файл эксперта в Навигаторе МТ5.


oco_files_mt5


С момента публикации статьи прошло много времени. Но код работает отлично. Build 1981.