Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
https://www.mql5.com/ru/forum/341117 все еще актуальная проблема
Когда последний раз проверял, то на упомянутом брокере эта проблема была решена.
Уважаемые разработчики, просьба ответить на следующий вопрос по архитектуре. Информация нужна для боевого применения. Без претензий.
Стоит два лимитника с одинаковой ценой и разными лотами. От чего зависит их очередность в последовательности триггера активации?
У меня несколько вариантов ответа на этот вопрос.
Если правильно понимаю, то после модификации цены открытия лимитник соответствующим образом встраивается в список-таблицу всех лимитников сервера, отсортированную по цене открытия. Тогда ответ на вопрос сводится, он встраивается в начало списка ордеров с одинаковой ценой или в конец?
Такой же вопрос не по лимитникам, а по тейкам. От чего зависит очередность триггера одинаковых тейков? ID-позиции или что-то еще?
Поясню, как это может помочь в бою. Например, у меня есть два лимитника (или тейка позиции) на одном уровне, но с разными лотами. Если исполнение лимитника (тейка) зависит от последней модификации, то поднять FillRate можно просто модификациями лимитников по возрастанию лота.
Наверное, на этот вопрос знает ответ только тот, кто писал реализацию соответствующей серверной части MT5.
сообща с брокером найти узкое место
Стоит два лимитника с одинаковой ценой и разными лотами. От чего зависит их очередность в последовательности триггера активации?
У меня несколько вариантов ответа на этот вопрос.
В четверке был вариант 4, кажется. То есть, любая модификация отодвигала ордер в конец очереди соответствующего ценового уровня.
Это как, пчёлы против мёда?)
на данный конкретный момент в этой конкретной ситуации это взаимовыгодно и было сделано. редкое стечение обстоятельств.
TP-ордера в MT5 замечательны тем, что можно исследовать FillRate (какая часть ордеров заливается).
Анализ десятков тысяч таких ордеров показал, что FillRate очень сильно зависит от символа. Если одновременно триггерится пачка TP-ордеров, то FillRate падает с увеличением номера тикета в пачке.
Были выявлены и другие специфические нюансы. Но это уже обсуждается с брокером.
Рецепт увеличения FillRate: объединение всех одинаковых тейков и лимитников в один общий MT5-лимитник.
Однако, эти данные являются только бонусом к данной теме. Независимая от брокеров проблема - MT5 лагает с тиками и, соответственно, с акцептом отложенных ордеров (включая SL/TP-уровни).
И после реджекта MT5 каждый раз ждет следующего тика для проверки, удовлетворяет цена TP-уровню (или лимитнику) или нет. Это может затягиваться на секунды. А проверку надо делать всегда сразу после реджекта (или частичной заливки).
OnTick срабатывает на несколько миллисекунд позже, чем в торговый сервер записался тик.
Результат.
Было обработано 100 тиков. Лаг прихода между сервером и Терминалом тиков колеблется от одной до восьми миллисекунд. В среднем - немного больше четырех миллисекунд. Это как раз равно отставанию срабатывания TP-ордеров, с которого началась эта ветка.
Сам лаг находится внутри MT5-сервера. Канал Server->Terminal не при чем.
Большая просьба разработчиков устранить этот лаг. Сейчас на биржах при нулевом пинге имеем постоянное приличное запаздывание прихода тиков не только в Терминал, но и на Сервере. В частности, акцепты ордеров.
ЗЫ Для тех, кто раздевает кухонных брокеров через арбитраж, это встроенное отставание, как мана небесная. Т.е. брокеры несут существенные доп. риски.
Renat Fatkhullin:
На каком сервере проверяли?
Проверял на многих серверах. Включая MQ-Demo.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Акцептирование SL/TP-ордеров
fxsaber, 2020.11.25 00:47
Результат его запуска на MQ-Demo.
Скрипт утверждает, что нашел TP-ордер и тик, который был триггером его создания (выделены цветом в тексте). Казалось бы, если на торговом сервере (тем более на демо) цена дошла до TP-уровня открытой позиции, то должен тут же создаться (не обязательно исполниться) соответствующий TP-ордер. Однако, в данной ситуации это произошло далеко не мгновенно, а через 357 миллисекунд!
На каком инструменте и какой шлюз/датафид формировал исходные данные?
Проверял форекс-инструменты. RannForex-Server, AMTS-шлюз. По остальным конфигурациям нужно уточнять.
Склоняюсь, что сам MT5-сервер формировал на машине с нулевым пингом. Но требует уточнения для 100%-й гарантии. Однако, выше показал, что даже на Вашем сервере проблема.
Изучая вопросы исполнения TP-ордеров, заметил, что некоторые TP-ордера создавались со значительным отставанием от тиков, которые их акцептировали.
Разбор полетов показал, что эта ситуация повторяется не только на разных брокерах, но и в ситуации, когда торговля идет на Терминале, который стоит на той же машине, где и Торговый Сервер. Т.е. с очень низким пингом и единственным торговым счетом для Торгового сервера.
Призываю делиться результатами со своих счетов. Поспособствуйте улучшению MT5!Вы "забыли" совсем малую деталь - вы проверяли 58 тысяч ордеров и нашли только один случай выброса на 300 мс. А на этом (1 из 58 000) надо было явно акцентироваться при таких проверках.
Как и в прошлые разы с миллионными проверками, где вы тоже искали одиночные выбросы и делали вид, что это обычное поведение.
Мы проверили логи сервера и видно было, что нашей виртуалке с демо-сервером MetaQuotes-Demo явно физически поплохело в те секунды (в 2020.09.30 19:07 на протяжении 4х секунд), так как на нем в тот момент крутилось около 15 млн счетов и около 2 млн открытых позиций, а параллельно что-то еще творилось на соседних виртуалках и гипервизоре.
В любом случае будем дальше разбираться, хотя одиночные выбросы бывают всегда в любой системе.