Стакан — это меняющийся список намерений, а не обещание цены. Алгоритм должен оценивать исполнимый объём, возраст данных и собственное влияние на рынок.

01Из чего состоит стакан

Стакан заявок показывает лимитные ордера покупателей и продавцов, которые биржа видит в текущий момент. Лучшие цены образуют bid и ask, расстояние между ними называется спредом. За каждой ценой стоит доступный объём, но этот объём может измениться раньше, чем ваш ордер достигнет биржи.

Для алгоритма важна не только первая строка. Если размер заявки больше объёма на лучшей цене, исполнение пройдёт по нескольким уровням. Поэтому реальная цена сделки определяется всей доступной глубиной до нужного объёма, а не одной цифрой в терминале.

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

02Спред — первая цена немедленного исполнения

Покупатель рыночным ордером начинает с ask, продавец — с bid. Уже поэтому немедленный вход и выход имеют стоимость даже при нулевой комиссии. Чем чаще стратегия меняет позицию, тем заметнее спред влияет на итоговый результат.

Узкий спред сам по себе не гарантирует дешёвую сделку. На лучшей цене может находиться небольшой объём, после которого начинаются более редкие уровни. Для оценки следует считать средневзвешенную цену исполнения на конкретный размер позиции.

Сравнивать инструменты полезно не по абсолютному спреду, а по относительному — в базисных пунктах от средней цены. Так один и тот же фильтр работает для активов с разным номиналом.

  • Лучший bid и ask
  • Относительный спред
  • Глубина на целевой объём
  • Средневзвешенная цена исполнения

03Как измерять глубину рынка

Практический показатель глубины отвечает на вопрос: какой объём можно купить или продать, не отклонив среднюю цену больше заданного порога. Например, алгоритм может считать ликвидность в пределах 5, 10 и 25 базисных пунктов от середины спреда.

Один показатель лучше дополнять профилем глубины. Он показывает, как быстро накапливается объём при удалении от лучшей цены. Резкий провал на нескольких уровнях предупреждает, что крупная заявка получит непропорциональное проскальзывание.

Глубину измеряют отдельно для покупки и продажи. Симметрия стакана встречается не всегда: одна сторона может быть заметно тоньше, особенно перед новостью или при движении рынка.

Данные, инфраструктура и момент принятия решения рассматриваются вместе.

04Снимки и поток обновлений

Для редкого решения может хватить периодического снимка. Высокочастотная логика обычно строит локальную копию стакана из начального snapshot и последовательности incremental updates. Каждое обновление меняет конкретный уровень цены.

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

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

05Собственная заявка меняет рынок

Исторический расчёт часто предполагает, что стратегия забирает ликвидность и не влияет на следующие события. При небольшом объёме это приближение допустимо, но его границы нужно измерять. Доля заявки от видимой глубины помогает задать ограничение размера.

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

Поэтому масштабирование проверяют ступенчато. Если объём вырос вдвое, результат не обязан увеличиться вдвое: меняются цена, вероятность исполнения и время нахождения под риском.

06Почему дисбаланс стакана обманывает

Соотношение объёма bid и ask выглядит удобным сигналом, но крупные заявки могут быстро сниматься. Видимый дисбаланс отражает намерения только в момент наблюдения и не показывает скрытую ликвидность.

Полезнее изучать не одно значение, а его устойчивость: сколько времени держится дисбаланс, сопровождается ли он реальными сделками и меняется ли средняя цена. Сигнал должен переживать разумную задержку исполнения.

Отдельно проверяют периоды новостей и резкой волатильности. Именно тогда объём в стакане исчезает быстрее всего, а модель, обученная на спокойном рынке, начинает переоценивать доступную ликвидность.

Практический контур: исполнение, наблюдаемость и заранее заданные ограничения.

07Защитные ограничения алгоритма

Перед отправкой ордера риск-модуль сравнивает его размер с глубиной, спредом и недавней волатильностью. Если расчётная средняя цена хуже допустимой, объём уменьшается, заявка делится или вход отменяется.

Нужен предел возраста данных. При остановке обновлений новые ордера блокируются, а открытые заявки сверяются с биржей. Это простое правило защищает от торговли по устаревшей локальной книге.

После исполнения фактическую цену сравнивают с ожидаемой. Систематическое ухудшение — повод пересчитать модель издержек и лимиты объёма, а не списывать каждую разницу на случайность.

  • Максимальная доля от доступной глубины
  • Предел допустимого спреда
  • Максимальный возраст обновления
  • Контроль ожидаемой и фактической цены

08Минимальный протокол исследования

Сохраните поток стакана и сделок вместе с временными метками, затем воспроизведите его без доступа к будущим событиям. Рассчитайте исполнение нескольких размеров позиции и посмотрите, где стоимость начинает расти нелинейно.

Повторите тест на спокойных, трендовых и новостных периодах. Итогом должна стать не универсальная цифра ликвидности, а правило допуска: при каких условиях и каким объёмом алгоритм имеет право действовать.

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

Продолжение — в Telegram

Код, видео, наблюдения за рынком и ответы на вопросы.

Перейти в канал

Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Торговля связана с риском потери капитала.