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