Как стать автором
Обновить

Как биржи манипулируют книжкой ордеров: технический анализ стакана и ботов

Время на прочтение11 мин
Количество просмотров3.3K

Механика биржевой торговли в криптовалютах нередко воспринимается как нейтральная инфраструктура: вы выставляете лимитный ордер, он попадает в стакан, и дальше всё решает рынок. На практике это не совсем так.

Ретейл-участник видит лишь результат исполнения, в то время как большинство решений принимаются до фактической сделки — на уровне реакции на сам факт появления вашего ордера. Эти реакции происходят за миллисекунды, и инициируют их не люди, а торговые боты, встроенные в инфраструктуру самой платформы или подключённые к ней через публичные 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: «ложные» ордера в действии

Что это: выставление крупных лимитных ордеров, которые не планируется исполнять — цель которых создать иллюзию интереса к уровню.

Принцип действия:

  1. Алгоритм выставляет большую заявку (например, 150 BTC) в BID на 2 тика ниже текущей цены.

  2. Другие участники видят «стену» и считают это уровнем поддержки.

  3. Они выставляют свои ордера выше «стены», чтобы успеть раньше.

  4. 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: выжигатель ликвидности

Что это: резкое движение ценой до уровней, где размещено скопление стоп-ордеров, с целью вызвать волну ликвидаций или принудительных продаж.

Пример сценария:

  1. Цена «висит» возле ключевого уровня поддержки (допустим, $89,100 по BTC).

  2. Алгоритм продаёт крупный объём по рынку, пробивает уровень.

  3. Срабатывают стопы и ликвидации на фьючерсах → каскад продаж.

  4. Бот выкупает ликвидность на $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 слой для реакции.

Сценарий в реальном времени:

  1. Вы размещаете лимитный ордер на покупку.

  2. Бот видит через WS stream появление новой заявки.

  3. Проверяет: не улучшает ли она BID. Если да — отменяет свою выше неё.

  4. Если вы отменяете заявку — он возвращает свою.

Вы не замечаете этого визуально, но для системы вы — “сигнал”.

Эти действия возможны, потому что 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 секунд.

  • Видны ликвидации/слив стопов (если фьючерсы).

Где смотреть:

Анализ «жизни» уровней

# 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.

Что делать с этим анализом

  1. Логировать уровни и TTL — найти повторяющиеся паттерны.

  2. Собирать heatmap по времени суток — когда spoofing активнее.

  3. Подсвечивать аномалии прямо в UI/боте — показывать нестабильные уровни как «недостоверные».

Дополнительные материалы

Любой, кто умеет парсить WebSocket, может начать фиксировать аномалии — и получать понимание, кто делает рынок, а кто бежит за ним. :)

Полезные материалы:

Главное - понимать его структуру

Ты не обязaн «бороться» с манипуляциями — ты можешь:

  • Узнавать их по сигнатурам.

  • Оценивать достоверность сигналов по глубине стакана.

  • Фильтровать уровни по стабильности, TTL, плотности.

  • Принимать решения не из интерфейса, а из данных.

Заключение

Рынок — это поведение. Стакан — это язык.
Если ты научишься читать, а не реагировать, ты получишь преимущество, недоступное 90% участников.

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

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

У нас имеются открытые вакансии(не по айти специальности) подойдет для студентов, фрилансеров - ссылка на вакансии.

Если тебе близка эта аналитика — добро пожаловать.

Теги:
Хабы:
+7
Комментарии11

Публикации

Работа

Ближайшие события