Серверная ОС и скорость обработки Условной заявки

Борьба с миллисекундами. Встречаются задачи, когда нужно выставлять не лимитную заявку, а условную. Если днем на время работы выставления условной заявки обращаешь внимание не так сильно, то утром, выставление условной заявки, зависящей от первого тика, может быть критичной.

Я полагаю, что вы знаете механизм самой условной заявки и что любая такая заявка идет на биржу лимитной.

Нужно ввести такое понятие: Обработка данных, переключение потоков.

  • Серверные ОС очень медленно переключают потоки процессора.

  • Для того, что бы условная заявка стала лимитной, требуется как минимум 2 переключения до отправки. Вот как это работает: роутер шлет в своем потоке сделки инструмента(тики) Программа помещает их в очередь и отдает управление обратно роутеру. (не отдать нельзя (smile) ) В другом потоке тики достаются из очереди и обрабатываются (рассылаются агентам, проверяются условные заявки и т.п.) Если сработала заявка, то запрос на лимитку помещается в очередь и обрабатывается в третьем потоке

  • Поместили сделки в очередь, переключились и обработали.

  • Поместили создание лимитной заявки в очередь, переключились и обработали.

  • Эти переключения между потоками в сумме на серверной ОС занимают минимум 20мс

  • Поэтому, выставление условной заявки на серверной ОС 10-20мс, а на обычной 1-2мс А с формированием лимитки, даже казалось бы на "хорошей" серверной машине до 60мс

  • На быстром процессоре в Win7/10 меньше 0.5мс Переключение потоков можно отследить у нас в логе, по строчкам вида [RTS Trade Thread 383], если у строчки другое название - было переключение потока.

Исходя из всего выше написанного. Для быстрой обработки условной заявки, на первых миллисекундах старта торгов: помимо местонахождения машины, требуется Хороший процессор и не серверная ОС.

Last updated