Matching engine (движок сопоставления ордеров) — это “сердце” централизованной биржи: система, которая принимает ордера, поддерживает стакан и определяет, по какой цене и в какой очередности исполняются сделки. Если упрощать: именно matching engine решает, чей ордер будет исполнен первым и почему вы получили именно такую цену.
Эта страница объясняет механику исполнения без маркетинговых обещаний: очередность, частичные исполнения, влияния ликвидности и почему алгоритмы вроде TWAP/VWAP помогают крупным заявкам. Термины по рынку: ордербук и order flow.
Из чего состоит matching engine
На практике движок биржи включает несколько логических модулей:
- Order gateway — принимает заявки (API/UI), проверяет формат и ограничения.
- Risk checks — проверка баланса, маржи, лимитов и правил инструмента.
- Order book — структура данных стакана: bid/ask, уровни, очереди.
- Matching logic — правила сопоставления (приоритеты, частичное исполнение).
- Trade/position ledger — фиксация сделок, обновление позиций и PnL.
- Market data — стрим котировок, сделок, глубины, “ленты”.
На CEX вы видите часть этой системы как стакан и ленту сделок, но внутри ещё много проверок и очередей.
Стакан и очередность: главный принцип price-time priority
В большинстве биржевых моделей базовый принцип такой:
- Price priority: лучшая цена имеет приоритет.
Для покупки — выше bid лучше; для продажи — ниже ask лучше.
- Time priority: при одинаковой цене исполняется тот, кто встал раньше.
Это называется price-time priority. Именно поэтому “встать лимиткой в стакан” — это не просто “поставить цену”, а ещё и занять очередь на этой цене.
Связанные термины:
- структура стакана — order book,
- типы заявок — order types.
Как исполняются ордера: market, limit, stop
Market-ордер Исполняется сразу по лучшим доступным ценам в стакане (по факту “съедает” ликвидность). Минус: при тонком стакане растёт проскальзывание (см. slippage).
Limit-ордер Вы задаёте цену. Он либо сразу матчится (если пересёк спред), либо становится в стакан и ждёт. Лимит часто используется для контроля цены и для статуса maker.
Stop-ордера (trigger) На CEX стоп — это обычно “условие превращения” в market/limit после триггера. В момент резкого движения стоп может исполниться хуже ожидаемого из-за стакана и задержек.
Partial fill: почему ордер исполняется частями
Если вы отправили ордер на размер больше, чем доступно на лучшей цене, движок выполнит:
- часть по лучшей цене,
- затем “пойдёт по стакану” дальше, пока не заполнит объём или не закончится ликвидность по заданным условиям.
Это частичное исполнение (partial fill) и оно нормально. Именно оно создаёт среднюю цену исполнения и может приводить к проскальзыванию при больших объёмах.
Maker/Taker и комиссии: почему это связано с движком
По смыслу:
- maker — добавляет ликвидность (ордер встаёт в стакан),
- taker — забирает ликвидность (исполняется сразу по стакану).
Комиссии обычно различаются: см. maker/taker и комиссии.
Важный нюанс: лимитный ордер может стать taker, если он выставлен “внутрь” спреда и матчится сразу. Поэтому управление типом исполнения — это не “лимит vs маркет”, а “встал в стакан vs пересёк стакан”.
Почему возникают задержки и “плохое исполнение”
Даже на CEX возможны ситуации, когда ожидания по цене расходятся с фактом. Основные причины:
- тонкая ликвидность и большой размер ордера (см. ликвидность);
- быстрое движение и обновление стакана быстрее вашего подтверждения;
- очередь на цене: вы далеко в хвосте и вас “не успели” исполнить;
- латентность (задержка сети, API, перегрузка);
- защитные механизмы биржи (лимиты, риск-чек, price band и т. п.).
Результат ощущается как проскальзывание и “не туда” — это следствие механики очередей и стакана.
Order flow и лента: как движок формирует «картину рынка»
Order flow (поток ордеров) — это то, что реально происходит “внутри”:
- какие ордера добавляются,
- какие снимаются,
- какие исполняются рыночными.
Движок фиксирует сделки и отдаёт рынку:
- обновления стакана,
- принты в ленте.
Именно поэтому анализ order flow и чтение стакана order book — это попытка понять активность участников через то, что движок публикует наружу.
Почему крупные ордера “ломают” цену
Крупный маркет-ордер:
- быстро съедает лучшие уровни,
- уходит на более плохие цены,
- двигает цену против себя (market impact).
На ликвидных инструментах эффект меньше, на неликвидных — намного сильнее. Поэтому большие объёмы обычно исполняют более аккуратно.
TWAP/VWAP как способы “исполнить аккуратнее”
Алгоритмы исполнения дробят ордер на серии меньших:
- TWAP — равными порциями по времени,
- VWAP — с учётом объёмов (старается “быть как рынок”).
Цель — снизить impact и проскальзывание, не “показать” рынку всю заявку сразу и не сдвинуть цену слишком сильно. Подробно — TWAP/VWAP.
Практика: как трейдеру улучшить исполнение
- Для входа/выхода большими объёмами — избегайте “чистого маркет-ордера”.
- Используйте лимит и понимайте очередь (price-time priority).
- В высокую волатильность увеличивайте допуски и уменьшайте размер сделки.
- Для чувствительных инструментов используйте дробление (алго-исполнение, TWAP/VWAP).
- Следите за ликвидностью и глубиной стакана перед сделкой (см. order book).
FAQ
Почему мой лимитный ордер исполнился как taker? Потому что он пересёк текущий стакан (по сути стал рыночным) и исполнился сразу.
Почему стоп исполнился хуже, чем цена триггера? Триггер запускает ордер, но исполняется он по доступной ликвидности. В резком движении стакан может “убеждать” быстрее.
Можно ли “встать первым” в очереди? Только если вы выставили цену раньше других на этом уровне или поставили лучше цену. Иначе вы будете исполняться после тех, кто в очереди впереди.
