Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Откуда информация, что OnBookEvent не пропускает?
Как проверяли?Шестилетней непрерывной торговлей на реале ФОРТС в МТ5,
Ну и подумать немного следует почему не пропускает....
Проверьте сами и с удивлением увидите, что в OnBookEvent(), иногда, result = 0 :)
Для HFT используется асинхронные приказы (отправили и не ждём ответ). Судя по вышеописанному, вы используете синхронные (отправили и ждём ответ сервера).
Вы невнимательно прочли мой вопрос, в нем не идет речь о отправке приказов (в синхронном или асинхронном виде), я просто логирую в файл, всю информацию поступившую по событию OnTick().
Какой комментарий Вы хотите услышать от разработчиков, если сами же правильно процитировали справку? Не может советник по определению обработать все тики, потому и пропускает их. Больше добавить нечего.
Ну а заниматься HFT-торговлей без прямого подключения к бирже - это очень странно, всегда будете плестись в хвосте.
Если же задача лишь в том, чтобы собрать все тики, то используйте индикатор. Он тики не пропускает.
Для разработчиков MetaQuotes Software я хотел акцентировать внимание, что отсутствие буферизации приводит к тому, что один и тот же код на бэктесте и на реальных торгах ведет из-за этого совершенно по разному. Можно конечно считать это фичей, но с моей точки зрения скорее баг. Кроме того для события OnBookEvent(), буферизация реализована. По моему мнению, было бы здорово, если события OnTick() тоже ставились в очередь.
Советник на реале может обрабатывать все тики, а в тестере нет (по крайней мере раньше так было).
Смотрите здесь https://www.mql5.com/ru/code/16210
madpower2000, выложите часть кода, где Вы получаете и обрабатываете тики
Советник может обработать все тики, только для этого ему нужно не только проверять последний тик в обработчике события OnTick, а запрашивать некоторый участок прошедшей истории.
См. вот эту ветку, там описание как это делается, в конце решения для обхода некоторых нюансов.
https://www.mql5.com/ru/forum/317990
Спасибо огромное за наводку, честно говоря у меня промелькнула идея протестировать CopyTicksRange(), но мне подумалось что каждый раз копировать массив при вызове OnTick() будет не продуктивно, если я его могу и так собрать все данные в обработчике OnTick()...
Не правильно делаете.
См. мои посты выше.
Шестилетней непрерывной торговлей на реале ФОРТС в МТ5,
Ну и подумать немного следует почему не пропускает....
Проверьте сами и с удивлением увидите, что в OnBookEvent(), иногда, result = 0 :)
Спасибо за совет, но OnBookEvent() не работает в бэктестере, как тогда тестировать стратегию?
Вообщем насколько я понял из дискуссии - рецепт пользоваться CopyTicks() для получения тиковой истории и в принципе неважно, из какого обработчика OnTick() или OnBookEvent() его вызывать, но опять же см. ремарку выше, если бы была буферизация OnTick(), можно было бы собирать тиковую историю для обработки самостоятельно и код был бы эффективнее...
Спасибо за совет, но OnBookEvent() не работает в бэктестере, как тогда тестировать стратегию?
Вообщем насколько я понял из дискуссии - рецепт пользоваться CopyTicks() для получения тиковой истории и в принципе неважно, из какого обработчика OnTick() или OnBookEvent() его вызывать, но опять же см. ремарку выше, если бы была буферизация OnTick(), можно было бы собирать тиковую историю для обработки самостоятельно и код был бы эффективнее...
Тестировать стратегию можно на реале, эмулируя сделки.
Или на истории тиков, правда поизголятся придется.
Очень важно откуда вызывать CopyTicks(), но дело ваше...
Тестировать стратегию можно на реале, эмулируя сделки.
Или на истории тиков, правда поизголятся придется.
Очень важно откуда вызывать CopyTicks(), но дело ваше...
Это вопрос на знание микроструктуры рынка и механизма работы OrderBook? :)
Result =0 потому что нет новых тиков, а их нет потому что, не произошло операций покупки/продажи, и/или best bid/ask не менялся, но были приказы на добавление или удаление ордеров из книги заявок которые и вызвали OnBookEvent().
Вообще вопрос работы с книгой заявок (OrderBook) в MT5 я бы сказал щепетильный и вот почему:
1.Речь идет не о ДЕМО акаунте, а о реальном торговом акаунте
2.Есть доступ