Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.
Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.
Визуализация глубины ордербука с позицией трейдера внутри ценовой стены
Как понимание своего места в очереди на ценовом уровне превращает скальпинг из гадания в инженерную задачу
Введение: почему агрегированный стакан врёт
Каждый трейдер, торгующий по стакану, видит одну и ту же картину: слева — bid, справа — ask, на каждом ценовом уровне — число, показывающее суммарный объём лимитных ордеров. Например:
2,400 лотов на уровне 10000 — это «стена» (wall, density, плотность). И здесь возникает критически важный вопрос, который большинство трейдеров игнорирует: где именно внутри этих 2,400 лотов находится наш ордер?
Цена 10000 [ 1,800 лотов ДО нас ][ НАШ ОРДЕР 10 лотов ][ 590 лотов ПОСЛЕ нас ]
Это не академическое любопытство. Это разница между исполненным и неисполненным ордером. Между прибылью и убытком. Между бэктестом, который показывает красивую эквити, и реальностью, в которой ваша стратегия не работает.
Что такое Queue Position и зачем его считать
Визуализация FIFO-очереди: позиция трейдера среди других ордеров на ценовом уровне
FIFO и реальность бирж
Подавляющее большинство бирж — как традиционных (CME, NASDAQ), так и криптовалютных (Binance, Bybit, OKX) — используют правило Price-Time Priority (FIFO). Это означает: при одинаковой цене первым исполняется тот ордер, который был выставлен раньше.
Когда приходит рыночный (маркет) ордер на продажу и «бьёт» по нашему ценовому уровню bid, он последовательно исполняет лимитные ордера от головы очереди к хвосту. Если рыночный ордер был недостаточно большим, чтобы дойти до нашей позиции в очереди — мы остаёмся неисполненными.
Два компонента стоимости позиции в очереди
Академические исследования (Moallemi & Yuan, Columbia Business School, 2017) выделяют два компонента ценности позиции в очереди:
Статический компонент — трейдофф между заработком на спреде и adverse selection. Чем дальше мы в очереди, тем выше вероятность, что нас исполнит именно крупный информированный ордер (а не шум). Проще говоря: если вас исполняют последним в очереди — скорее всего, цена уже идёт против вас.
Динамический компонент — опциональность, которую даёт улучшение позиции в очереди со временем. Когда ордера перед нами отменяются или исполняются, наша позиция улучшается без каких-либо действий с нашей стороны.
Эмпирические данные показывают, что для инструментов с крупным тиком стоимость позиции в очереди может быть сопоставима с размером спреда. Это огромная величина.
Как оценить свою позицию в очереди
Задача оценки
Мы выставляем лимитный ордер размером S по цене P. В момент выставления на этом ценовом уровне уже стоит Q лотов. Наша начальная оценка позиции:
V̂(t₀) = Q(t₀) — количество лотов перед нами
Далее мы отслеживаем все изменения объёма на нашем ценовом уровне. Это ключевой алгоритм, описанный Erik Rigtorp и реализованный в продуктах Trading Technologies (TT), Bookmap и других.
Алгоритм обновления
При каждом уменьшении ΔQ на ценовом уровне нужно понять: это сработал ордер перед нами или после нас?
Если мы можем различить fills (исполнения) и cancellations (отмены):
Fill (исполнение): однозначно уменьшает очередь перед нами → V̂ = max(V̂ + ΔQ, 0)
Cancel (отмена): неопределённость — мог быть отменён ордер как до, так и после нас
Для отмен используется вероятностная модель:
V̂(n+1) = max(V̂(n) + p(n) × ΔQ(n), 0)
где p(n) — вероятность того, что отменённый ордер стоял перед нами. Одно семейство моделей:
где f(x) — возрастающая функция, например ln(1+x) или тождественная. Интуиция: чем больше объём перед нами относительно объёма после, тем вероятнее, что отмена была именно перед нами.
Уровни данных и реальность крипторынков
Качество оценки напрямую зависит от детализации данных:
Уровень данных
Что видим
Точность оценки PIQ
Level 1 (BBO)
Лучший bid/ask + объём
Невозможно оценить
Level 2 (Price-aggregated)
Объём на каждом ценовом уровне
Вероятностная оценка
Level 3 (Market-by-Order, MBO)
Каждый отдельный ордер с ID
Точная позиция
В крипте ситуация такова:
Binance — предоставляет L2 depth stream с обновлениями каждые 100мс. L3 (MBO) данные недоступны публично.
Coinbase — один из немногих CEX, дающий L3 поток через WebSocket с полными order-by-order данными.
CME (фьючерсы на BTC/ETH) — полные MBO данные через ITCH feed.
Большинство крипто-трейдеров работают с L2, а значит — с вероятностными оценками. Но даже вероятностная оценка радикально лучше, чем никакая.
Визуализация: стена как внутренний стакан
Мы предлагаем визуализировать каждую значимую плотность (стену) как мини-стакан внутри стакана:
╔════════════════════════════════════════════════════════════════╗
║ Цена 10001 │ 150 лотов ║
╠════════════════════════════════════════════════════════════════╣
║ Цена 10000 │ [████████████░░░▓▓░░░░░░░] 2,400 лотов ║
║ │ ↑ 1,800 до нас ↑ мы ↑ 590 после ║
║ │ скорость расхода: ~120 лотов/сек ║
║ │ ETA до исполнения: ~15 сек ║
╠════════════════════════════════════════════════════════════════╣
║ Цена 9999 │ 80 лотов ║
╚════════════════════════════════════════════════════════════════╝
Что рассчитывается в реальном времени
Лоты до нашего ордера — оценка количества объёма, которое должно быть исполнено или отменено, прежде чем дойдёт до нас.
Лоты после нашего ордера — объём, выставленный после нас. Если стена быстро «набухает» с хвоста — значит другие участники считают этот уровень привлекательным.
Скорость движения очереди — рассчитывается по фактическим trades (исполнениям) на этом ценовом уровне. Выражается в лотах/секунду.
Estimated Time to Fill (ETF) — прогноз времени до исполнения нашего ордера, рассчитанный как лоты_до_нас / скорость_расхода.
Несколько ордеров в одной плотности — бот может видеть позицию каждого своего ордера, если их несколько в одной стене.
Применение в скальпинге
Сравнение наивного и queue-aware бэктестинга: реальная вероятность исполнения vs оптимистичная оценка
Проблема бэктестинга на свечных данных
Классический бэктест по OHLCV-свечам работает так: если цена дошла до нашего лимитного ордера — считаем его исполненным. Но это грубейшая ошибка:
Пример. У нас стоит бай-лимит на 10000. В минутной свече low = 10000. Свечной бэктест засчитывает fill. Но в реальности:
На уровне 10000 стояла стена в 5,000 лотов
Наш ордер был в хвосте очереди (4,800-я позиция)
За эту минуту по уровню прошло только 2,000 лотов
В реальности наш ордер НЕ был бы исполнен
Queue-aware бэктест решает эту проблему: он моделирует позицию в очереди, считает объём trades на уровне по тиковым данным, и определяет, хватило ли проторгованного объёма, чтобы дойти до нашей позиции.
За одну минуту — больше одного исполнения
При активном скальпинге ордер может исполниться и быть переставлен несколько раз за одну минуту. Свечной бэктест в принципе не может это смоделировать. Только тиковый анализ с моделированием очереди позволяет:
Определить точное время каждого fill
Понять, успеваем ли мы переставить ордер
Оценить, сколько раз стратегия реально сработала бы за интервал
Прогнозирование времени до исполнения
Бот, знающий свою позицию в очереди и текущую скорость «расхода» стены, может:
Рассчитать ETA — примерное время до исполнения
Соотнести ETA с прогнозом движения цены — если ETA = 30 секунд, а наша модель предсказывает разворот через 10 секунд, стоит отменить ордер
Адаптировать размер ордера — больший ордер ближе к голове очереди на про-рейт биржах (CME), но на FIFO-биржах размер не имеет значения для позиции
Сравнение скорости расхода со средней
Ценнейшая метрика для скальпера: текущая скорость расхода очереди vs средняя скорость за N свечей.
Скорость выше средней → высокая агрессия маркет-ордеров → стена может «пробиться» → наш fill вероятнее
Скорость ниже средней → рынок «замер» → стена устоит → ордер зависнет, а цена может уйти
Наиболее зрелая реализация. TT отображает PIQ для каждого ордера трейдера в колонке Floating Order Book. Для бирж, предоставляющих данные о позиции в очереди напрямую через фид (CME, ICE), показываются точные значения. Для остальных — консервативная оценка.
Профессиональная версия Bookmap ($499/мес) включает визуализацию позиции ордеров в очереди и экспорт событий. Bookmap Quant использует MBO-данные и его L0 API позволяет строить кастомные адаптеры для любых данных.
CQG предоставляет оценку позиции в очереди для фьючерсных рынков. Платформа рассчитывает вероятностную оценку PIQ на основе L2/L3 данных и отображает её в интерфейсе DOMTrader.
Rithmic — провайдер рыночных данных, предоставляющий низколатентный доступ к данным для оценки позиции в очереди. Используется как инфраструктурный слой многими проп-трейдинговыми фирмами и алготрейдерами для построения собственных моделей PIQ.
Jigsaw Trading специализируется на визуализации потока ордеров (order flow) с оценкой позиции в очереди. Инструменты Depth & Sales и Reconstructed Tape помогают трейдерам видеть реальную картину исполнения на ценовых уровнях.
Академические модели
Moallemi & Yuan (2017) — формальная модель оценки стоимости позиции в очереди на основе NASDAQ ITCH данных
Cont, Stoikov & Talreja (2010) — модель limit order book как системы birth-death процессов
Gould & Bonart (2015) — queue imbalance как предиктор движения mid-price
Deep Learning подходы — RNN-модели (Columbia, 2022) для оценки fill probabilities и fill times
Чего НЕ существует на рынке
Ни один из существующих продуктов не предлагает визуализацию внутренней структуры стены для крипторынков в формате, заточенном под скальпинг-бота. Это и есть ниша, которую может занять Marketmaker.cc.
Противодействие стратегиям манипуляторов
Обнаружение фальшивых стен: настоящие ордера vs спуфинг-блоки с высоким cancel rate
Понимание внутренней структуры стены — это не только оптимизация собственного исполнения. Это инструмент защиты от манипуляций и, при грамотном использовании, инструмент чтения намерений крупных игроков.
Spoofing: фальшивые стены
Спуфинг — выставление крупных ордеров с намерением их отменить до исполнения. Цель — создать ложное впечатление спроса/предложения.
Как PIQ-анализ помогает:
Скорость набора объёма стены. Настоящая стена набирается постепенно. Спуфинг-стена появляется мгновенно.
Поведение при приближении цены. Настоящая стена остаётся. Спуф-стена «убегает».
Cancel rate. Спуфер отменяет ордера до исполнения. Отслеживание соотношения placed/canceled позволяет детектировать спуф в реальном времени.
Цикличность. Спуфинг часто демонстрирует повторяющиеся паттерны: появление → исчезновение → появление на новом уровне.
Layering: каскад фальшивых уровней
Layering — более сложная форма спуфинга, при которой фальшивые ордера выставляются на нескольких ценовых уровнях.
Как PIQ-анализ помогает:
Коррелированные отмены. Если ордера на 5 последовательных уровнях отменяются одновременно — это почти наверняка layering одного участника.
Асимметрия стакана. Настоящая ликвидность обычно распределена более-менее равномерно.
Реакция на fills. Настоящие ордера исполняются и не «убегают».
Iceberg orders: скрытая ликвидность
Iceberg — это крупный ордер, разбитый на маленькие видимые части. После исполнения одной части автоматически появляется следующая.
Как PIQ-анализ помогает:
Паттерн «бессмертного» уровня. Объём постоянно исполняется, но не уменьшается.
Absorption analysis. Цена бьёт в стену, исполняет видимый объём, но стена восстанавливается.
Поведение нашей очереди при абсорбции. Наша позиция «проскальзывает» вперёд каждый раз, когда кусок айсберга исполняется и перевыставляется в хвост очереди.
Маркетмейкер как «невидимый» участник стены
Профессиональные market makers используют несколько тактик:
Quote stuffing — массовое выставление и отмена ордеров для «замусоривания» данных конкурентов
Penny jumping — выставление ордера на 1 тик лучше конкурента для захвата приоритета
Dynamic quoting — адаптация ордеров в реальном времени при изменении queue imbalance
Защита уровня — добавление ликвидности при приближении цены
Реализация: архитектура модуля Queue Position Tracker
Входные данные
1. WebSocket поток ордербука (L2 depth):
- Обновления best bid/ask
- Обновления depth (объём на каждом ценовом уровне)
2. WebSocket поток trades:
- Каждая сделка: цена, объём, сторона (buy/sell), timestamp
3. Собственные ордера (от торгового бота):
- order_id, price, size, timestamp выставления
Наш ордер перемещён — при отмене и перевыставлении мы попадаем в хвост очереди
Множественные ордера в одной стене — каждый отслеживается независимо
Метрики для dashboard и бэктестинга
Для реального времени (скальпинг-терминал)
Метрика
Формула
Цвет
Queue Position %
queue_ahead / total_depth × 100
Зелёный < 30%, жёлтый 30-70%, красный > 70%
ETA to Fill
queue_ahead / fill_velocity
Секунды
Wall Health
depth_now / depth_5sec_ago
Стабильность стены
Absorption Rate
filled_volume / visible_depth
Наличие скрытой ликвидности
Spoof Score
cancel_rate × sudden_appear × distance_from_price
0-100, индикатор фальши
Для бэктеста (queue-aware simulation)
Queue-adjusted fill rate — процент ордеров, реально исполненных с учётом позиции в очереди
Effective fill latency — реальное время от выставления до исполнения
Adverse selection per fill — средний move цены против нас после исполнения
Queue velocity correlation — корреляция между скоростью расхода очереди и последующим движением цены
Социальный стакан: ордера команды внутри стены
Трёхуровневая модель видимости: личные ордера, подписки и командные позиции внутри стены
Уровень 1: Биржа или торговая платформа
Если вы — биржа или торговый терминал, вы обладаете абсолютным знанием о позиции каждого ордера каждого пользователя. Платформа может показать каждому пользователю: сколько «чужого» объёма стоит до и после его ордера, не раскрывая имена других участников.
Уровень 2: Платформа Marketmaker.cc — личные ордера + социальный слой
В Marketmaker.cc мы планируем реализовать трёхуровневую модель видимости ордеров внутри стены:
🔴 Личные ордера пользователя — базовый слой. Каждый трейдер видит все свои ордера с индивидуальными метриками.
🟡 Ордера подписок (signal providers) — трейдеры, которые делятся позициями по подписке. Opt-in механизм: лидер сам решает, показывать ли позиции.
🟢 Ордера команды (trading team / fund) — самый ценный слой для профессиональных групп. Решает проблемы: конфликт ордеров, распределение ликвидности, командный risk monitoring, обучение.
Модель разрешений
┌─────────────────────────────────────────────────────────────┐
│ Ордер трейдера │
│ │
│ Видим: │
│ ├── Самому трейдеру → ВСЕГДА (🔴) │
│ ├── Подписчикам → если трейдер включил (🟡) │
│ │ ├── Задержка отображения → настраивается (0s–60s) │
│ │ ├── Показывать размер → да / скрыть / округлить │
│ │ └── Показывать ETA → да / нет │
│ └── Команде → если состоит в команде (🟢)│
│ ├── Задержка → настраивается (0s–5s) │
│ ├── Показывать размер → да (для risk management) │
│ └── Видимость для роли → trader / manager / viewer │
└─────────────────────────────────────────────────────────────┘
Полная прозрачность: DEX-биржи и on-chain ордербук
На DEX-биржах с on-chain ордербуком — прежде всего Hyperliquid — каждый ордер привязан к конкретному адресу кошелька. Мы можем видеть не просто агрегированную стену, а каждый отдельный ордер каждого участника.
Однако для работы с этими данными в реальном времени необходимо поднять собственную ноду блокчейна Hyperliquid.
🤖 Автоматическое выделение ордеров манипуляторов
Четвёртый слой визуализации — алгоритмическая разметка ордеров по типу участника: маркетмейкеры, спуферы, retail. Алгоритмы классификации работают на нескольких уровнях: детекция спуфинга, классификация маркетмейкеров, детекция squeeze-сценариев, цифровой слепок трейдера.
Анализ позиции ордера внутри плотности ордербука — это следующий эволюционный шаг от «смотрю на стакан» к «понимаю микроструктуру рынка». Это территория, где пересекаются:
Теория массового обслуживания (queueing theory) — для моделирования очередей
Stochastic order flow models — для оценки fill probabilities
Machine learning — для детекции спуфинга и прогнозирования поведения стен
Инженерия низкой задержки — для получения и обработки данных в реальном времени
На сегодняшний день ни один продукт на крипторынке не предлагает полноценной визуализации «стены как мини-стакана» с позициями пользовательских ордеров, оценкой ETA, детекцией спуфинга и queue-aware бэктестингом в едином интерфейсе.
Мы в Marketmaker.cc работаем над тем, чтобы эта аналитика была доступна каждому трейдеру — от соло-скальпера до проп-команды.