Длительность исполнения торговых приказов

3 мая 2022, 12:47
fxsaber
3
298

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


С помощью инструмента CustomReport можно было видеть многие параметры исполнения торговых приказов. В данной записи речь пойдет о дополнительном функционале анализа - длительность.


Длительность.

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

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



Далее посмотрим некоторые примеры результатов вычислений.


Отложенные ордера.

В рамке указана длительность исполнение лимитных ордеров, которые открыли позиции. От десятков миллисекунд до нескольких секунд.


TP/SL-ордера.

В рамке показано время, которое потребовалось на рождение TP-ордера (первое слагаемое), а затем время на его исполнение (второе слагаемое). Хорошо видно, что иногда рождение TP-ордера занимает десятки миллисекунд вместо нуля.


Переворот.

Разными цветами показаны два переворота по схеме TP+Limit. В одном случае рождение TP-ордера потребовало 9 мс (с момента прихода активирующего тика), в другом - 87 мс!


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


На скрине можно заметить сколь сильно при перевороте изменились номера тикетов сделок TP и Limit. Это все произошло за считанные миллисекунды, показывая потенциальное количество ордеров брокера, которые исполнялись в этот промежуток.


Это особенно важно понимать с учетом знаний последовательности формирований очередей TP-orders и Limit-orders. 87 мс на рождение TP-order обозначает, что лимитные ордера, как минимум, ждали столько времени, чтобы быть активированными. Т.е. лимитники ждали уйму времени, пока чужие TP-ордера хотя бы родятся (получат свои номера тикетов).


Поэтому на скрине исполнение лимитника 151 мс - это время прошедшее с момента активирующего на исполнение тика. Но из этих 151 мс не менее 87 мс лимитник не находился на исполнении, а просто ждал очереди!


Наглядный пример влияния других клиентов брокера на вашу торговлю за счет особенностей архитектуры MT5.


Заглядывание в будущее?

Скрипт выдал предупреждение.

Error. Negative activation tick! OrderTicket = 536991073, 2022.04.29 01:48:56.844 ORDER_REASON_TP, AUDUSD# ORDER_TYPE_SELL 0.71023

Якобы активирующий TP-ордер тик появился после того, как родился TP-ордер! Т.е. сначала родился TP-ордер, а только потом тик, который вызвал рождение TP-ордера. Звучит бредово. Поэтому подробно разбираемся на картинке.


Скрипт не ошибся, все так! Это значит, что БД тиков заполняется с огромным лагом. И время тика проставляется, как время записи. Т.е. ошибочное время тика.


Так нашелся архитектурный баг MT5.


Реджекты SL/TP.

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


ЗЫ Если картинки плохо отображаются в браузере, щелкните по ним для открытия нормального вида. Почти статья.


Поделитесь с друзьями: