Как вы оцениваете задержки и проскальзывания ордеров?
Всем привет!
Есть задача оптимизировать исполнение ордеров. Для этого надо собрать аналитику по ордерам. Главный критерий — это, конечно, проскальзывание. Насколько хуже исполнили ордер по сравнению с тем, если бы сразу просто кинули в рынок по маркету. Также нужна вспомогательная инфа по задержкам доставки ордеров на биржу, латенси. С помощью этой аналитики можно определить какие квики (коннекторы) более медленные и сделать соответствующие выводы.
Для оценки проскальзывания можно сравнивать лучшую встречную котировку в момент создания ордера и итоговое исполнение.
Задержки (латенси) можно померить через разницу локального времени отправки на биржу и ответом (round trip).
Какие метрики еще посоветуете ?
Всех благ.
#21 по плюсам,
#13 по комментариям
Теперь, когда торгую лимитками, у меня прога исполнитель заявок получает заявку из бота, и исполнитель ведет учет разницы цены бота и цены по которой заявка исполнилась после перестановок. И накапливает статистику по этой величине. Ранее я приводил цифры из этой статистике для каждого тикера, тут в моем блоге должно быть. Кстати давно не заглядывал в эту цифру, надо будет обновить информацию.
А так, к вечеру уже готовая таблицы в квике, ничего джойнить не нужно.
Микросекунды выигрывать??
Попробуйте обойти задержки на пром серверах брокеров (ну где проверяется ваша платежеспособность)
Они самое из Кремля горлышко системы.
Но у ключевых блокеров они на «МТ -Финанс» Провайдере, если у вас сервер выставляющий заявку выше уровня (например бункер ГПКС в Лосином острове) то вы в разы быстрее всех остальных будете выставляться…
Но вопрос зачем это всё?
Лимитка с моб у Алор+ ставится прекрасно для си — норм…
Здесь могут быть неточности, нужно чтобы не было переключения потока(даже если у Вас программа работает в одном потоке) можно поспамить и смотреть время не локальное а то которое ставит биржа, ну или надо быть точно увереным что не перекидывалось с ядра на ядро(можно закрепить или в коде или в системе).
Используйте тип заявки — BoC(на стр. 177 у неё тип 4 здесь --> «ftp.moex.com/pub/ClientsAPI/Spectra/Docs/p2gate_ru.pdf»).
П.С. Поправочку внесу про задержки конечно зависит от реализации, то что я написал выше верно если объект ордер внутри себя содержит время отправки и при приходе ответа его вычисляет(у меня так сделано). А если время просто в какой-то глобальной переменной(volatile или атомарные) записывается и потом с ней же работаете то тогда не актуально то что я писал выше.(тонкости знаете ли))). Но всё равно должны меряться десятки миллисекунд чтобы было правильно, если меньше то сложней.