Из чего складывается задержка
Латентность — суммарное время от появления события до реакции на него. У торговой системы это цепочка: приход котировки по сети, обработка данных, принятие решения алгоритмом, отправка приказа, его исполнение на стороне брокера и получение подтверждения. Каждое звено даёт свой вклад, и слабое звено определяет итог.
Порядки величин полезно держать в голове. Канал между дата-центрами в одном городе — доли миллисекунды, между континентами — десятки миллисекунд. Обработка в хорошо написанном коде — микросекунды, в тяжёлом интерпретируемом скрипте — миллисекунды. Исполнение на стороне брокера обычно самое медленное звено и наименее контролируемое.
Разброс важнее среднего
Для большинства стратегий критична не средняя задержка, а её стабильность. Система, у которой приказ уходит то за 5 мс, то за 200 мс, ведёт себя непредсказуемо: часть сделок исполняется по расчётной цене, часть — по совсем другой, и статистика перестаёт соответствовать тесту.
Поэтому измерять надо распределение, а не одно число: медиану, 95-й и 99-й процентили. Именно хвост распределения объясняет расхождение между бэктестом и реальным счётом. Мы логируем время отправки и подтверждения по каждому приказу и разбираем выбросы отдельно — они почти всегда указывают на конкретную причину, а не на случайность.
Когда за латентность стоит платить
Есть чёткая граница. Если сигнал считается по закрытию свечи от пяти минут и выше, а стоп измеряется десятками пунктов, разница между 10 и 100 миллисекундами на результат не влияет — вложения в инфраструктуру не окупятся. Если стратегия зарабатывает на краткосрочном расхождении цен, задержка и есть её основной конкурент.
Практический способ понять, к какой категории относится ваша система: прогнать её в тесте с искусственно добавленной задержкой в 50, 100 и 300 мс. Если результат почти не меняется, инфраструктурные расходы не нужны. Если исчезает — стратегия живёт на скорости, и её экономика должна учитывать стоимость этой скорости.
Частые вопросы
Какая латентность считается нормальной?
Зависит от стратегии. Для среднесрочных систем достаточно десятков и даже сотен миллисекунд. Для арбитража и HFT значимы микросекунды, и там борются в первую очередь за стабильность, а не за среднее значение.
Что важнее — средняя задержка или разброс?
Обычно разброс. Стабильные 30 мс предсказуемы и закладываются в расчёт, а скачки от 5 до 200 мс делают исполнение случайным и ломают соответствие между тестом и реальным результатом.
Как понять, влияет ли задержка на мою стратегию?
Прогнать бэктест с искусственной задержкой 50, 100 и 300 мс. Если результат почти не меняется — инфраструктурные вложения не нужны; если исчезает — стратегия живёт на скорости.
Что запомнить
- Латентность складывается из цепочки звеньев, и итог определяет самое медленное.
- Разброс задержки обычно вреднее её среднего значения.
- Проверить чувствительность можно тестом с искусственно добавленной задержкой.
