Серверная ОС и скорость обработки Условной заявки
Борьба с миллисекундами.
Встречаются задачи, когда нужно выставлять не лимитную заявку, а условную.
Если днем на время работы выставления условной заявки обращаешь внимание не так сильно, то утром, выставление условной заявки, зависящей от первого тика, может быть критичной.
Я полагаю, что вы знаете механизм самой условной заявки и что любая такая заявка идет на биржу лимитной.
Нужно ввести такое понятие: Обработка данных, переключение потоков.
Серверные ОС очень медленно переключают потоки процессора.
Для того, что бы условная заявка стала лимитной, требуется как минимум 2 переключения до отправки.
Вот как это работает:
роутер шлет в своем потоке сделки инструмента(тики)
Программа помещает их в очередь и отдает управление обратно роутеру. (не отдать нельзя)
В другом потоке тики достаются из очереди и обрабатываются (рассылаются агентам, проверяются условные заявки и т.п.)
Если сработала заявка, то запрос на лимитку помещается в очередь и обрабатывается в третьем потокеПоместили сделки в очередь, переключились и обработали.
Поместили создание лимитной заявки в очередь, переключились и обработали.
Эти переключения между потоками в сумме на серверной ОС занимают минимум 20мс
Поэтому, выставление условной заявки на серверной ОС 10-20мс, а на обычной 1-2мс
А с формированием лимитки, даже казалось бы на "хорошей" серверной машине до 60мсНа быстром процессоре в Win7/10 меньше 0.5мс
Переключение потоков можно отследить у нас в логе, по строчкам вида [RTS Trade Thread 383], если у строчки другое название - было переключение потока.
Исходя из всего выше написанного.
Для быстрой обработки условной заявки, на первых миллисекундах старта торгов:
помимо местонахождения машины, требуется Хороший процессор и не серверная ОС.