Вы открываете Binance / Bybit / OKX и т.п., смотрите на график, нажимаете Buy и думаете, что только что купили актив на рынке
На самом деле вы сделали гораздо более интересную вещь: отдали заявку в чужую инфраструктуру, где профессиональные участники заранее знают, где стоит ликвидность, как устроен стакан и какие заявки сейчас находятся в очереди
И самое неприятное - вы почти всегда играете против участников, которые технически и информационно находятся на другом уровне
Спойлер: у вас нет шансов. Сейчас покажу почему на реальных примерах
Если не хотите читать лонгрид - смело мотайте в конец статьи. Там коротко собрал главный вывод и что с этим делать, как получить преимущество над большинством трейдеров
Начнем, главный ваш конкурент, знакомьтесь - маркет-мейкер.
По сути, такой же игрок, как и вы, только у которого официально привилегированное положение: низкие комиссии, более быстрый и приоритетный доступ к инфраструктуре биржи и возможность работать с огромным количеством заявок.
Как зарабатывает ММ? На простом примере.
Допустим, BTC сейчас стоит $100 000.
Маркет-мейкер выставляет одновременно:
Buy - $99 999
Sell - $100 001
Если кто-то продаёт ему BTC по $99 999, а через некоторое время другой участник покупает у него по $100 001 — маркет-мейкер заработал $2 на одном BTC, не угадав вообще ничего о направлении рынка.
Его преимущество не в том, что он знает, куда завтра пойдёт BTC.
Его преимущество в том, что он может делать это тысячи и десятки тысяч раз, постоянно переставляя заявки вслед за рынком.
А теперь представьте, что между его покупкой и продажей проходит не несколько минут, а миллисекунды.
И при этом у него:
комиссия существенно ниже вашей;
заявки отправляются и снимаются быстрее;
гораздо больше возможностей по API;
собственные серверы находятся максимально близко к инфраструктуре биржи;
одновременно работают десятки алгоритмов;
а риск позиции можно мгновенно захеджировать на другой бирже.
Получается довольно интересная ситуация.
Вы и маркет-мейкер смотрите на один и тот же BTC, но играете в разные игры.
Вы смотрите на график и решаете: покупать или продавать?
ММ смотрит на:
стакан → поток заявок → сделки → другие биржи → свою позицию → стоимость исполнения следующего ордера.
И здесь появляется ещё один важный момент.
Маркет-мейкеру совершенно не обязательно держать огромную реальную ликвидность в стакане постоянно. Его задача — управлять заявками так, чтобы в каждый конкретный момент получать максимальную вероятность исполнения при приемлемом риске.
И вот тут мы подходим к самому интересному.
А что вообще означает цифра в стакане?
Допустим, вы открываете стакан и видите:
$871 ликвидности до вашей цены.
Вы делаете простой вывод:
«Я спокойно могу зайти на $50 — глубины хватает с огромным запасом».
Но откуда вы знаете, что эти $871 действительно можно исполнить?
Вы видите только снимок состояния книги заявок, который биржа передала вам через API/WebSocket.
А теперь давайте посмотрим на реальный ордер, который я отправил в такую книгу
что произошло с моими $50
Я торгую арбитраж на нескольких криптобиржах и сохраняю стакан непосредственно перед отправкой каждого ордера.
Поэтому в этом случае у меня есть сразу две вещи:
что биржа показывала в стакане и что реально произошло с моим ордером.
Возьмём один конкретный пример.
За 100 мс до отправки моего ордера стакан выглядел так:
Стакан до входа
Биды - цена / количество / объём в долларах
0.03683 11 770 $433 0.03681 4 410 $162 0.03678 4 730 $174 0.03677 2 750 $101 ← наша лимитка
Я собирался продать на $50 по цене 0.03677.
До моей цены в стакане отображалось:
$433 + $162 + $174 = $769
То есть ликвидности было больше, чем достаточно.
Причём я специально выбрал небольшой размер ордера. Даже если часть стакана исчезнет за эти 100 мс, я ожидал нормального исполнения.
Ордер отправлен.
Через 8 миллисекунд приходят первые исполнения.
И вот тут начинается странное.
Что реально исполнилось
0.036832 $0.74 0.036782 $0.73
Итого:
$1.47.
Из запрошенных $50 исполнилось меньше трёх процентов.
Остаток ордера мы сняли через несколько секунд.
На первый взгляд можно сказать:
«Ну и что? Стакан просто изменился».
И это действительно первое объяснение, которое приходит в голову.
Но здесь есть одна деталь, которая делает ситуацию гораздо интереснее.
Куда делся уровень $162?
Посмотрите ещё раз на стакан:
0.03683 $433 0.03681 $162 ← здесь была ликвидность 0.03678 $174
А теперь посмотрите на реальные исполнения:
0.03683 $0.74 ← исполнилось 0.03681 $0 ← ничего 0.03678 $0.73 ← исполнилось
Наш ордер перепрыгнул через уровень 0.03681, на котором, согласно стакану, находилось ещё $162.
И вот здесь возникает вопрос:
как ордер смог получить исполнение по 0.03678, если между ним и 0.03683 находился уровень 0.03681 с заявленным объёмом?
Если этот объём действительно находился в книге заявок в момент обработки нашего ордера, сначала должна была исполниться заявка на 0.03681.
Но этого не произошло.
Давайте посмотрим на стакан после
Через несколько секунд мы получили уже такую картину:
0.03678 40 $1.5 0.03677 2 890 $106 0.03675 1 740 $64
И это тоже интересно.
На верхнем уровне осталось всего около $1.5 ликвидности.
То есть фактически доступный объём оказался примерно там, где мы его и увидели по реальным исполнениям.
А вот что произошло с остальными уровнями — уже гораздо интереснее.
Так что же мы на самом деле наблюдаем?
Здесь важно не делать поспешный вывод.
Этот эксперимент не доказывает, что биржа специально рисует стакан.
Есть несколько возможных объяснений:
заявка на уровне могла быть снята между моментом получения стакана и моментом исполнения;
данные WebSocket могли отражать состояние книги с задержкой;
market-data feed и matching engine могли видеть разные состояния книги в конкретный момент;
могла сыграть роль специфика реализации самой торговой системы.
Но для нас как для трейдера есть одна вещь, которая важнее того, почему это произошло.
Объём, который мы видели в стакане, не гарантировал нам исполнение.
И именно это я решил проверить дальше.
Потому что один странный ордер можно списать на случайность.
А что будет, если посмотреть не на один ордер, а на все мои входы на этой бирже за несколько дней?
А если посмотреть не на один ордер?
Один странный случай ещё ничего не доказывает.
Стакан мог обновиться между двумя событиями, данные могли прийти с задержкой, заявка могла быть снята — вариантов достаточно.
Поэтому я взял 500 своих ордеров на этой бирже и для каждого сравнил:
что показывал стакан непосредственно перед отправкой;
какие уровни должен был пройти ордер;
какие исполнения (fills) я получил фактически;
какие ценовые уровни в реальности были пропущены.
И картина сохранилась.
Проблема не исчезла на большой выборке.
Мы снова и снова получали ситуации, когда стакан показывал ликвидность на промежуточном уровне, но в реальных исполнениях этого уровня не было.
То есть это уже не история про один неудачный ордер.
Мы наблюдаем систематически повторяющееся расхождение между тем, что показывает стакан, и тем, что реально доступно для исполнения.
И вот здесь для меня как для разработчика торгового бота начинается самое интересное.
Потому что если такое происходит один раз - можно сказать:
«Ну, не повезло».
Если такое происходит на сотнях ордеров - закладывать отображаемый объём стакана непосредственно в торговую стратегию уже нельзя.
ВЫВОД
После всего этого может возникнуть вопрос: а зачем вообще так глубоко разбираться в стакане?
Потому что цена на экране - это ещё не рынок.
Рынок - это реальная ликвидность, очередность заявок, скорость их изменения и то, что действительно исполняется, а не просто цифры, которые вы видите в терминале.
Если вы научитесь отличать реальную ликвидность от отображаемой, понимать плотность стакана и видеть, как она меняется перед вашим ордером, вы перестаёте принимать решения на основании цифр, которые могут оказаться недоступными уже через несколько миллисекунд.
И здесь появляется преимущество.
Пока один трейдер смотрит на стакан и думает:
«Здесь стоит $100 000 — можно спокойно заходить».
другой понимает:
«Из этих $100 000 реально доступно гораздо меньше. Если я сейчас отправлю свой объём, цена исполнения будет совсем другой».
Первый рассчитывает сделку по нарисованной ликвидности.
Второй - по реальной.
И именно на таких мелочах профессиональные участники начинают обгонять остальных.
Вы не становитесь маркет-мейкером и не получаете волшебную кнопку «заработать».
Но вы перестаёте быть тем человеком, который смотрит на стакан как на готовую истину.
Вы начинаете понимать, что происходит внутри рынка.
А это уже совсем другой уровень торговли.
Это общий принцип. Конкретные примеры по биржам, способы проверки стакана и практические советы о том, как научиться отличать реальную ликвидность от фантомной, я разбираю в своём Telegram-канале -> https://t.me/bylabdata

