Величина различия в мат. ожиданиях одной и той же торговой стратегии в Тестере и на реальном счете зависит не только от компетенции автора робота, но и от качества исполнения торговых приказов брокером. Поэтому тщательный анализ данной характеристики способен существенно повлиять на итоговый результат торговли.
С помощью инструмента CustomReport можно было видеть многие параметры исполнения торговых приказов. В данной записи речь пойдет о дополнительном функционале анализа - длительность.
Длительность.
Умелое использование некоторых возможностей MT5 и четкое понимание особенностей этой торговой платформы позволяют вычислять некоторые важные данные. CustomReport стал еще более уникален по количеству и удобству предоставляемой информации, показывая теперь еще и
- Длительность исполнения отложенных ордеров.
- Длительность рождения SL/TP-уровней торговых позиций, включая неисполненные SL/TP (реджекты).
Для этого идет сопоставление тиковой истории торговых символов с историей торговли. Данный процесс довольно медленный, требует загрузки соответствующих тиков. Поэтому задействование данного функционала требует понимания причин длительного ожидания вычислений и терпения.
Далее посмотрим некоторые примеры результатов вычислений.
Отложенные ордера.
В рамке указана длительность исполнение лимитных ордеров, которые открыли позиции. От десятков миллисекунд до нескольких секунд.
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-ордеров, которые далее получили реджект. В целом можете видеть почти отсутствие лагов. Но даже на данном брокере они случаются.
ЗЫ Если картинки плохо отображаются в браузере, щелкните по ним для открытия нормального вида. Почти статья.