Механика биржевой торговли в криптовалютах нередко воспринимается как нейтральная инфраструктура: вы выставляете лимитный ордер, он попадает в стакан, и дальше всё решает рынок. На практике это не совсем так.
Ретейл-участник видит лишь результат исполнения, в то время как большинство решений принимаются до фактической сделки — на уровне реакции на сам факт появления вашего ордера. Эти реакции происходят за миллисекунды, и инициируют их не люди, а торговые боты, встроенные в инфраструктуру самой платформы или подключённые к ней через публичные API.
В этой статье мы разберём, как устроен order book на биржах типа Binance, OKX и Bybit, и какие манипуляционные паттерны можно наблюдать в реальном времени. Мы изучим:
-
как работают стратегии spoofing, layering и фронт-ран;
-
как с технической точки зрения реализуются эти механики через API/WebSocket;
-
какие данные можно собрать для анализа подозрительного поведения;
-
и какие ошибки допускает большинство частных трейдеров, глядя на «стены» в стакане.
При этом фокус будет не на финансовых последствиях, а на техническом аспекте — алгоритмах, скорости реакции, структуре сообщений и особенностях взаимодействия с биржевыми серверами.
Если вы когда-либо ставили лимитный ордер и замечали, что крупные заявки перед вами исчезают в момент исполнения — это не случайность. Это — сигнал, который можно распознать, если понимать, как работает стакан на самом деле, а не по теории из пользовательского интерфейса.
⚠️ Предупреждение: цель статьи — технический разбор. Здесь не будет советов по инвестициям, «скрытых стратегий» и магических индикаторов. Только факты, алгоритмы и реальные данные.
Продолжим с базового — разберём, как на самом деле работает книга ордеров на уровне сети, какие типы ордеров туда попадают, и чем отличаются заявки, предназначенные для трейдинга — и для воздействия на поведение других участников.

Как устроена книга ордеров: структура, API, реактивность
Книга ордеров — это не просто таблица заявок, отображаемая в терминале. Это стриминг-система реального времени, построенная на изменениях состояния (event-driven), где каждая новая заявка, отмена или исполнение — это событие, влияющее на поведение других участников.
На уровне публичных API — например, WebSocket-интерфейса Binance или Bybit — стакан представляет собой последовательность snapshot + updates:
Snapshot (срез состояния)
Содержит пары цен и объёмов на стороне покупки (BID) и продажи (ASK) — как правило, 20–100 уровней глубины.
{
"lastUpdateId": 1027024,
"bids": [["50000.00", "0.003"], ["49900.00", "1.200"]],
"asks": [["50100.00", "0.300"], ["50200.00", "2.000"]]
}
Этот срез — не живой, это начальная точка. Вся актуальность — в разнице между этим срезом и последующими изменениями, которые приходят через WebSocket.
Real-time updates (depthDiff)
Каждое обновление содержит изменение в уровне ордера:
-
Изменение количества
-
Появление/удаление уровня
-
Смещение внутри книги (если идёт активная агрессия маркет-ордерами)
Эти обновления приходят с интервалом в десятки миллисекунд, и часто с задержкой даже при подписке на самый быстрый stream.
{
"u": 1027025,
"b": [["50000.00", "0.000"]], // удалён уровень
"a": [["50150.00", "0.800"]] // добавлен уровень
}
Пользовательский UI (терминал, график стакана, стек ордеров) отображает агрегированные и часто задержанные данные. Интерфейс не отражает реальную очередность исполнения, времени появления ордера и тем более его происхождение (бот / человек / тестовая заявка).
Большинство решений принимается до визуализации, то есть:
-
вы видите стену в стакане,
-
она исчезает в момент, когда вы нажимаете кнопку,
-
вы считаете это совпадением.
На практике:
-
ордер отменён по алгоритму,
-
ваше действие было спровоцировано,
-
сделка с вами — не цель, а средство анализа реакции.
Кто формирует стакан
Важно понимать: в стакан попадают только лимитные ордера, т.е. заявки с указанием цены. Это могут быть:
-
Ручные заявки розничных трейдеров;
-
Алгоритмические ордера от ботов (чаще всего);
-
Псевдо-объём, размещённый не для исполнения, а для воздействия на поведение других участников.
Терминалы и биржи вроде Binance, OKX, Bybit не раскрывают данных о происхождении ордера. Но это не значит, что отличить их невозможно.
Обнаружить неестественные паттерны можно по:
-
скорости появления/удаления уровней,
-
регулярности размещения на определённом расстоянии от mid-price,
-
резкому появлению и исчезновению крупных ордеров (≥50 BTC) без исполнения.
Любой WebSocket-клиент (Python/Go/Node.js) может слушать изменения в стакане
import websockets
import asyncio
import json
async def listen_depth():
uri = "wss://stream.binance.com:9443/ws/btcusdt@depth"
async with websockets.connect(uri) as websocket:
while True:
msg = await websocket.recv()
data = json.loads(msg)
print(data["b"], data["a"]) # bids / asks
asyncio.run
(listen_depth())
Достаточно 5–10 минут сбора, чтобы увидеть первые аномалии:
-
«прыгающие» уровни в одном ценовом диапазоне;
-
ордера-«стены», исчезающие при попытке выставить маркет-ордер;
-
повторяющиеся паттерны, свойственные алгоритмам.
Order Book — это динамичная, реактивная среда, где каждый ордер не просто стоит, а влияет. И если вы видите на определённой цене 100 BTC, это не значит, что кто-то действительно хочет купить по этой цене. Это может быть:
-
проверка вашей реакции,
-
настройка уровней ликвидности для бота,
-
или подготовка к инверсии движения цены.
В следующих главах мы подробно разберём, как именно эти заявки используются для манипуляций, и какие техники при этом применяются на уровне алгоритма.
Манипуляции в стакане: Spoofing, Layering, Stop-Hunt — как это работает на практике
Когда говорят «манипуляции на рынке», чаще всего представляют себе сговор, инсайдерскую торговлю или pump & dump. На деле наиболее эффективные манипуляции — это те, которые происходят в пределах правил самой биржи.

Сейчас мы рассмотрим три механики, которые применяются ежедневно, тысячами ботов, на любой крупной площадке с публичным Order Book.
1. Spoofing: «ложные» ордера в действии
Что это: выставление крупных лимитных ордеров, которые не планируется исполнять — цель которых создать иллюзию интереса к уровню.
Принцип действия:
-
Алгоритм выставляет большую заявку (например, 150 BTC) в BID на 2 тика ниже текущей цены.
-
Другие участники видят «стену» и считают это уровнем поддержки.
-
Они выставляют свои ордера выше «стены», чтобы успеть раньше.
-
Spoofer снимает заявку за миллисекунды до касания — часто до того, как пользовательский интерфейс вообще успевает её показать.
Почему работает: большинство трейдеров интерпретируют размер заявки как намерение. Это ошибка: на бирже намерение — это исполнение, не размещение.
Технический аспект:
-
Такие ордера имеют TTL (time-to-live) в 100–200 мс.
-
Боты используют WebSocket-мониторинг depth и собственные latency-оптимизированные API-запросы (в т.ч. через colocation).
Пример кода: логика spoof-бота (упрощённо):
if price_near_support():
place_limit_order(price=X, amount=150)
sleep(0.15)
cancel_order()
🧠 Примечание: spoofing запрещён на регулируемых рынках (например, NYSE), но в крипте его почти невозможно доказать — API не раскрывает намерения, только факт размещения.
2. Layering: каскад давления
Что это: выставление серии небольших заявок, равномерно распределённых по стакану, чтобы создать эффект давления или поддержки.
Цель: не напугать «стеной», а создать структурный тренд в изменении глубины книги.
Принцип:
-
Разместить 5–10 заявок, например, от 100 USDT до 0.01 BTC, через каждые 2 тика вниз.
-
Имитация реального объёма, разбитого по уровням.
-
Заявки «дышат»: часть отменяется, добавляются новые — это создаёт ощущение «живой ликвидности».
Чем отличается от spoofing:
-
Spoof — единичный большой ордер.
-
Layering — распределённая серия мелких заявок, которые сложнее идентифицировать как манипуляцию.
Реализация:
-
Бот получает mid-price.
-
Выставляет каскад лимиток от mid-3% до mid-0.5%.
-
Отменяет при попытке пробоя снизу.
Почему эффективно:
-
Строит визуальный контекст: трейдеры начинают «видеть тренд» и принимают решения на его основе.
3. Stop-Loss Hunting: выжигатель ликвидности
Что это: резкое движение ценой до уровней, где размещено скопление стоп-ордеров, с целью вызвать волну ликвидаций или принудительных продаж.
Пример сценария:
-
Цена «висит» возле ключевого уровня поддержки (допустим, $89,100 по BTC).
-
Алгоритм продаёт крупный объём по рынку, пробивает уровень.
-
Срабатывают стопы и ликвидации на фьючерсах → каскад продаж.
-
Бот выкупает ликвидность на $88,600 — и цена возвращается вверх.
Где используются:
-
На маржинальных рынках (Binance Futures, Bybit).
-
В парах с высокой волатильностью.
Технически:
-
Используется публичный Order Book + funding rates + открытый интерес.
-
Анализ зоны ликвидаций и массовых стопов — по внешним источникам или историческим данным.
Инструменты анализа:
-
TensorCharts (отображение стопов).
-
Coinalyze (open interest).
-
Собственные боты через WebSocket + исторический dump ордеров.
Реальные паттерны в данных
За 30 минут наблюдения через WebSocket можно зафиксировать десятки событий:
-
заявка > 50 BTC появляется и исчезает за 150 мс;
-
каскад BID-заявок идёт по восходящему тренду с плотностью 1 тик;
-
после пробоя уровня на фьючерсах всплеск в объёмах и возврат на ±0.5%.
Если логировать все изменения стакана (например, в Pandas), можно визуализировать «спуфинг-сигнатуру» — это когда:
-
крупная заявка появляется и исчезает не один раз,
-
в момент её присутствия цена идёт в её сторону,
-
а исполнение не происходит ни разу.
Манипуляции стаканом — это не фантазия и не теория заговора. Это легальные (или почти легальные) техники, которые используют алгоритмы, чтобы повлиять на толпу. Не обманывая напрямую, а формируя контекст, на основе которого большинство трейдеров делают выводы.
Кто за этим стоит: как устроены боты, манипулирующие ордербуком
Если вы думаете, что за спуфингом и layer'ингом стоит человек в терминале с горячими клавишами, который вручную отменяет заявки — это уже давно не так. Все описанные выше действия — продукт алгоритмов. Причём не всегда агрессивных, зачастую — нейтральных и даже рыночных по логике.
Разберём, как устроены эти алгоритмы, на уровне архитектуры, стека и типов решений.
Компоненты типичного HFT-бота
Упрощённо, инфраструктура “стаканного” бота состоит из трёх слоёв:
1. Market Data Listener (интерфейс WebSocket / UDP)
Подключение к потокам:
-
Order Book (depth updates)
-
Trades stream (исполненные сделки)
-
Funding, liquidation feed (если фьючерсы)
Обычно это WebSocket или low-latency UDP (у некоторых платформ: BitMEX, Kraken).
Требование: latency < 100 мс, желательно < 10 мс.
2. Execution Engine
Это ядро логики, принимающее решения:
-
Где разместить лимитный ордер.
-
Когда отменить.
-
Как сместить слой ордеров при изменении тренда.
Часто построен на правилах (все укрощено, прошу понять):
if spread < threshold and imbalance_ratio > 1.5:
place_spoof_bid(price = mid - 3 ticks, amount = 80 BTC)
Или даже на reinforcement learning: агентов обучают “ловить” реакции толпы.
3. Order Manager / Risk System
Отвечает за:
-
Отмену ордеров (по TTL или по сигналу).
-
Защиту от частого размещения / банов со стороны API.
-
Логгирование событий (для бэктеста и разбора).
Типичный стек
-
Язык: Python (быстрый прототип), Go или C++ (прод), Java (в банках).
-
Data layer: Redis / Kafka / TimescaleDB (для стриминга цен).
-
Execution: REST+WS API биржи (для исполнения) + отдельный latency-sensitive слой для реакции.
Сценарий в реальном времени:
-
Вы размещаете лимитный ордер на покупку.
-
Бот видит через WS stream появление новой заявки.
-
Проверяет: не улучшает ли она BID. Если да — отменяет свою выше неё.
-
Если вы отменяете заявку — он возвращает свою.
Вы не замечаете этого визуально, но для системы вы — “сигнал”.
Эти действия возможны, потому что API WS-стримов публикуют заявки в открытом виде, а биржи не ограничивают частоту подписки и обработки сообщений.
Обычное интернет-соединение:
-
Ping до Binance = ~80–100 мс
-
Время между событием и реакцией — ~300–500 мс
У HFT-инфраструктуры:
-
Co-location или edge-серверы (Amazon SG, Binance AWS-hosted)
-
Задержка ~5–15 мс, full round-trip execution < 30 мс
Даже разница в 100 мс может позволить ботам “увидеть” вашу заявку, отреагировать, изменить поведение, а вы — даже не поймёте, что стали частью теста.
Как выглядит “реакция” бота
Время (UTC) |
BID@49950 |
ASK@49960 |
Событие |
12:00:00.001 |
80 BTC |
10 BTC |
Стенка в BID |
12:00:00.020 |
80 BTC |
10 BTC |
Пользователь ставит 0.5 BTC выше |
12:00:00.030 |
ордер на 80 BTC снят |
10 BTC |
TTL или реакция бота |
12:00:00.050 |
60 BTC |
10 BTC |
Новый spoof ниже |
Пример из логов:
Open-source примеры
-
Freqtrade — торговый фреймворк, можно построить пассивного стаканного наблюдателя.
-
ccxt — библиотека для подключения к десяткам бирж.
-
Jesse — платформа для стратегий (с акцентом на backtest и визуализацию).
Технический анализ стакана: данные, паттерны, сигнатуры и простые скрипты
Когда вы смотрите на ордера в стакане, вас чаще всего интересует "где стоят крупные заявки" и "куда идёт рынок". Но настоящая информация — не в цене, а в скорости и структуре изменений. Здесь начинается технический анализ второго уровня — анализ книги ордеров во времени.
Какие данные можно (и нужно) анализировать
Биржи, поддерживающие глубину стакана через WebSocket:
-
Binance Spot/Futures → @depth, @aggTrade
-
OKX → order-book-channel
-
Bybit → orderBookL2_25 или orderBookL2_200
С этими потоками можно отслеживать:
-
Появление и исчезновение уровней (особенно крупных).
-
Скорость изменений (частота update'ов на одном уровне).
-
Объём по каждой цене и его "нервозность" (нестабильность).
Сигнатуры манипуляций
1. Spoofing pattern
-
Появляется крупная заявка (> 30 BTC).
-
Стоит < 500 мс.
-
Не сопровождается сделками по этой цене.
-
Исчезает при приближении best price.
Автоматическое обнаружение:
-
Логировать depth в DataFrame.
-
Отслеживать время "жизни" каждого уровня.
-
Искать short-TTL (>10 BTC, <0.5с).
Полезное для доп прочтения:
2. Layering pattern
-
Равномерное распределение 3+ лимитных ордеров на BUY/SELL с шагом ±1 тик.
-
Все — одинакового размера или кратны.
-
TTL — 1–3 секунды.
-
Появляются одновременно, исчезают "каскадом".
📌 Часто боты используют шаблон вида:
for offset in range(1, 5):
price = best_bid - offset * tick_size
place_limit_order(price, size)
3. Fake breakouts / stop-hunt
-
Уровень поддержки пробивается маркет-ордером.
-
Сразу после — серия небольших исполнений.
-
Возврат к предыдущему уровню за 5–10 секунд.
-
Видны ликвидации/слив стопов (если фьючерсы).
Где смотреть:
-
TensorCharts — тепловая карта стакана.
-
Coinalyze — CVD, Open Interest.
-
TradingLite — footprint-графики.
Анализ «жизни» уровней
# pip install websocket-client pandas
import websocket, json
import pandas as pd
from datetime import datetime
levels = {}
def on_message(ws, message):
data = json.loads(message)
bids = data['b']
now = datetime.utcnow()
for price, amount in bids:
if price not in levels:
levels[price] = {'created': now, 'last_seen': now}
else:
levels[price]['last_seen'] = now
def on_open(ws):
ws.send(json.dumps({"method": "SUBSCRIBE", "params": ["btcusdt@depth"], "id": 1}))
ws = websocket.WebSocketApp("wss://stream.binance.com:9443/ws", on_message=on_message, on_open=on_open)
ws.run
_forever()
Это простейшая заготовка, которую можно доработать:
-
логировать TTL,
-
отмечать «аномальные» уровни (живут < 500 мс),
-
считать статистику по слоям BID/ASK.
Что делать с этим анализом
-
Логировать уровни и TTL — найти повторяющиеся паттерны.
-
Собирать heatmap по времени суток — когда spoofing активнее.
-
Подсвечивать аномалии прямо в UI/боте — показывать нестабильные уровни как «недостоверные».
Дополнительные материалы
-
High-Frequency Trading in Cryptocurrency Markets — исследование с реальными данными (arXiv)
-
Binance Order Book Explained (by Bitquery)
-
btb-manager-telegram — проект, где реализован Telegram-UI для бота с логами стакана
Любой, кто умеет парсить WebSocket, может начать фиксировать аномалии — и получать понимание, кто делает рынок, а кто бежит за ним. :)
Полезные материалы:
-
“The Psychology of Order Book Trading” by Tomas Nesnidal
-
Flash Boys 2.0 (HFT в крипте) — от Paradigm
Главное - понимать его структуру
Ты не обязaн «бороться» с манипуляциями — ты можешь:
-
Узнавать их по сигнатурам.
-
Оценивать достоверность сигналов по глубине стакана.
-
Фильтровать уровни по стабильности, TTL, плотности.
-
Принимать решения не из интерфейса, а из данных.
Заключение
Рынок — это поведение. Стакан — это язык.
Если ты научишься читать, а не реагировать, ты получишь преимущество, недоступное 90% участников.
Спасибо за то, что дочитал. Увидимся — в логах, графиках, и, возможно, в нашем клубе.
Если вы увлекаетесь ручной торговлей - трейдингом, то приглашаем в наш торговый чат. Для всех у нас открыты двери узнать поподробнее вы сможете в статье - ссылка.
У нас имеются открытые вакансии(не по айти специальности) подойдет для студентов, фрилансеров - ссылка на вакансии.
Если тебе близка эта аналитика — добро пожаловать.
Автор: LehausIT