Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Появилась идея? Обсуди ее на форуме трейдеров!
MetaQuotes Software Corp.
Модератор
180310
MetaQuotes Software Corp. 2014.09.08 14:15 

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

В своей статье я хотел бы познакомить читателя с одним из способов контролировать торговые события средствами MQL5. Сразу хочу сказать, что данной теме были посвящены статьи, например «Обработка торговых событий в эксперте при помощи функции OnTrade()». Но в отличие от упомянутого материала я буду использовать другой обработчик – OnTradeTransaction().

Хотелось бы отметить вот какой момент. В текущей версии языка MQL5 формально есть 14 обработчиков событий клиентского терминала. Причём, у программиста есть возможность создавать свои пользовательские события посредством EventChartCustom() и обрабатывать их с помощью OnChartEvent(). Но нигде в Документации нет упоминания такого термина, как «Событийно-ориентированное программирование» (СОП). Ведь именно с учётом принципов СОП создаётся любая программа в MQL5. Возьмите хотя бы любой шаблон будущего советника, когда на шаге «Обработчики событий для советника» пользователю предлагается сделать свой выбор.

Очевидно, что в MQL5 так или иначе используется механизм событийно-ориентированного программирования. В языке могут присутствовать блоки программы, состоящие из двух частей: выборки события и обработки события. Причём, если речь идёт о событиях клиентского терминала, то программисту доступна только вторая часть - обработчик события. Правда, для некоторых событий есть исключения. К ним относятся таймер и пользовательское событие. Контроль данных событий полностью отдан в руки программиста.

Рис.6. Первый шаблон связок транзакционных типов

Рис.6. Первый шаблон связок транзакционных типов

Автор: Dennis Kirichenko

Vasiliy Sokolov
21134
Vasiliy Sokolov 2014.09.08 16:35  

По своему опыту могу сказать что реальная необходимость использовать TradeTransaction возникает при программировании в асинхронном режиме. Жаль что в статье не сказано об этом режиме ни слова.

з.ы. А еще думал "Что рецепты MQL" - фирменное название статей Анатолия. А теперь получается что это не так( 

Dennis Kirichenko
10984
Dennis Kirichenko 2014.09.08 16:57  

С-4, спасибо за мнение.

C-4:

По своему опыту могу сказать что реальная необходимость использовать TradeTransaction возникает при программировании в асинхронном режиме. Жаль что в статье не сказано об этом режиме ни слова...

Есть разные необходимости и потребности, которые могут быть причиной использования обработчика TradeTransaction. Это тема интересная, надеюсь, что опытные коллеги тоже выскажутся по этому вопросу...

з.ы. А еще думал "Что рецепты MQL" - фирменное название статей Анатолия. А теперь получается что это не так(

Да, признаюсь, что Анатолий  является изобретателем этого цикла статей. Мне он понравился, и я скромно приобщился к циклу :-))

Надеюсь, что Анатолий не против...

Dennis Kirichenko
10984
Dennis Kirichenko 2014.09.08 17:03  
В статье ещё не успел осветить вопрос частичного выполнения ордера (ORDER_STATE_PARTIAL). Вопрос на засыпку, сколько раз произойдёт вызов обработчика TradeTransaction?
Vasiliy Sokolov
21134
Vasiliy Sokolov 2014.09.08 22:51  
denkir:
В статье ещё не успел осветить вопрос частичного выполнения ордера (ORDER_STATE_PARTIAL). Вопрос на засыпку, сколько раз произойдёт вызов обработчика TradeTransaction?

Х.з. По логике обработчик должен сработать столько же раз как и при полном исполнении. Потому что исполнение ордера не дискретное событие, и МТ в процессе исполнения ордера не знает будет он исполнен частично или полностью.

з.ы. К сожалению доставка событий не гарантирована, а сами события работают только в режиме реального времени, что делает их применение ограниченным. Но они крайне полезны для систем основанных на отслеживании состояний, например асинхронных систем или копировщиков торговли. Благодаря событиям можно построить алгоритм без зацикливаний и дополнительных тормозов связанных с ожиданиями события OnTimer.

Anatoli Kazharski
55538
Anatoli Kazharski 2014.09.09 07:37  
denkir:

...

Надеюсь, что Анатолий не против...

Нет конечно, не против. ) Тем более, что...

C-4:

...

з.ы. А еще думал "Что рецепты MQL" - фирменное название статей Анатолия. А теперь получается что это не так( 

 ...ярлык "Рецепты MQL5" был предложен редакцией MQ, поэтому его может использовать кто-угодно. Главное, чтобы статей в принципе было больше и разных.

juriy5555
29
juriy5555 2016.03.27 21:50  
В справочном руководстве четко говорится, что последовательность НЕ гарантировата!  Если смотреть на исторических данных, то и там последовательность совсем другая. 
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий