Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
182676
MetaQuotes Software Corp.  

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

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

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

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

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

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

Автор: Dennis Kirichenko

Vasiliy Sokolov
22733
Vasiliy Sokolov  

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

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

Dennis Kirichenko
11375
Dennis Kirichenko  

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

C-4:

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

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

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

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

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

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

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

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

Anatoli Kazharski
58173
Anatoli Kazharski  
denkir:

...

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

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

C-4:

...

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

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

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