Вы открываете 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

Комментарии (34)


  1. MAXH0
    09.08.2026 16:19

    Информация известная мне со времён Форекс бирж. Подозреваю, что она старше некоторых читателей Хабра ..


    1. Pruto Автор
      09.08.2026 16:19

      А знаете как обойти мм ?)


      1. sdramare
        09.08.2026 16:19

        Играйте на реальном рынке где есть SEC и FINRA регуляции.


        1. Pruto Автор
          09.08.2026 16:19

          там рынок эффективный и меньше шансов найди edge думаю


          1. DonStron
            09.08.2026 16:19

            и меньше шансов найди edge думаю

            То есть вы "играете" где-то на непонятном сервере, который не подчиняется никакому регулятору, эту "ибржу" невозможно проверить на честность, над ними нет никакого надзорного органа и ищете ТАМ "edge"?

            Фактически вы играете с наперсточниками в подземном переходе, пытаетесь что-то анализировать, искать небольшие преимущества, даже видите часть их "трюков", но упускаете главное: эти "держатели" этих сомнительных "бирж" в любой момент могут свалить со всеми вашими деньгами врассыпную :)

            А после этого вы ещё говорите, что "именно на таких мелочах профессиональные участники начинают обгонять остальных". Где тут профессионализм? Профессионал вообще в сомнительные тему не полезет ;)


            1. Pruto Автор
              09.08.2026 16:19

              я с вами согласен, но за 3г не попадал под баны бирж или что-то такое


  1. gybson_63
    09.08.2026 16:19

    Мне кажется гайды по выигрышу в казино чуть надежнее и не такие скучные.


    1. Pruto Автор
      09.08.2026 16:19

      Это не гайд, много текста, согласен, но короче «не торгуйте» нет смысла писать)


      1. Tetragramaton
        09.08.2026 16:19

        не гайд верно
        не гайд верно


  1. A_V_E
    09.08.2026 16:19

    Там коротко собрал главный вывод и что с этим делать, как получить преимущество над большинством трейдеров

    А вывод в статье такой: идите на мой телеграм-канал, там будет объяснено. Спойлер: нет, не будет. На момент публикации статьи последний пост канала - о публикации статьи на хабре.

    Вывод - перед нами типичный представитель infogypsy typica, in vivo.


    1. Pruto Автор
      09.08.2026 16:19

      На статью много времени потратил, вывод есть. А как обыграть мм опишу отдельно, иначе книга бы вышла


  1. inv2004
    09.08.2026 16:19

    Как раз чтобы не сливали реальные деньги а использовали точный симулятор с задержками и стаканом я сделал https://hfts.app/


  1. glorden
    09.08.2026 16:19

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


    1. Pruto Автор
      09.08.2026 16:19

      Было бы странно на мой взгляд в 26г не делать редактуры через llm честно говоря)


      1. vis_inet
        09.08.2026 16:19

        Отнюдь.

        Ничего странного нет в человеческих статьях.


        1. Pruto Автор
          09.08.2026 16:19

          Мб я не так высказался. Я написал полностью статью от руки, и попросил отредактировать и дать замечания GPT, потому что сам не часто пишу и только учусь, что-то поправил, что-то оставил


          1. ideavi
            09.08.2026 16:19

            Наверное, в этом и есть состав претензии. Лучше и естественнее наоборот: не в человеческий текст добавлять ИИ-пассажи, а использовать его как литературного невольника (уж такой эвфемизм, простите), а затем править его косяки и перефразировать.

            Статья у вас упускает массу вещей, которые вы просто не можете зарегистрировать вашими скриншотами стакана, и не выводите из опыта, логики и наблюдений. Скажем так, она наивна.

            Как эксперт, торговавший публично больше 12 лет, я вам так скажу: ликвидность в таких каналах вы можете видеть только нарисованную, и больше никакую. Нужна честная — ступайте в офлайн-обменник. Потом напишите здесь о разнице в накладных расходах :-)


            1. Pruto Автор
              09.08.2026 16:19

              Я бы все же разделял "не настоящая" и "нарисованная") Нарисованная, да, вся, но реальными объемами. А "не настоящая" - та которой никогда и не было


              1. ideavi
                09.08.2026 16:19

                Настоящая ликвидность параллелится между большой массой народа, с учетом множества факторов. Её нельзя вот так однозначно отобразить, потому что это многомерная штука, включающая как честные факторы (очередность, категорию клиента и др.), так и паразитные (фронт-раннеров).

                Даже если это всё честно вывалить, это ничего не исправит — были тут 10 лет назад такие парни GKFX и ещё кто-то, не помню название (найду, если надо), и у них всё было честно и открыто, однако они все расходы на честность возлагали на клиента, и торговать было ОЧЕНЬ дорого.


          1. Astroscope
            09.08.2026 16:19

            Было бы странно на мой взгляд в 26г не делать редактуры через llm честно говоря)

            Нет, не странно. Вернее не так: зависит. Если вы пишете для собственного удовольствия и/или для удовольствия предполагаемого читателе - обычно это всегда примерно одно и то же с той лишь оговоркой, что со вторым не всегда удается точно попасть в свою аудиторию, то выглядит крайне глупо отдавать то, что вы делаете для удовольствия, автомату. Возможно, у вас другие цели написания текста, и удовольствие предполагаемого читателя от прочтения текста в ваши планы либо вообще не входит, либо имеет незначительное, пренебрежимое, остаточное значение против других причин.

            потому что сам не часто пишу и только учусь

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

            что-то поправил, что-то оставил

            Опечатки, грамматика - да, с этим случаются удручающе глупые ошибки, так и не найденные при вычитке перед публикацией. По крайней мере могу судить по личному опыту. Но если у вас есть мысль и вы ее думаете - записывайте, как записывается, а если не нравится, как записалось - переписывайте иначе. Если за вас это сделает автомат - штош, не обижайтесь неудовольствию читателей, рассчитывавших на удовольствие от прочтения ваших мыслей, записанных вашей рукой.


      1. Ndochp
        09.08.2026 16:19

        При прямом запрете редактуры ИИ в правилах ресурса? @moderator у нас тут человек с добровольным признанием.


        1. Pruto Автор
          09.08.2026 16:19

          Не очень понимаю в чем суть претензии, идея, текст, данные все свое) То что проверена орфография и логика через GPT не может являться нарушением, так можно начать рукописную копию со временем начать спрашивать)


          1. Ndochp
            09.08.2026 16:19

            https://habr.com/ru/companies/habr/articles/1019036/ Пункт 4

            Не следует размещать тексты … отредактированные при помощи нейросетей;


  1. RomanDrDev
    09.08.2026 16:19

    Не вижу примеров на Python и Rust. Почему они указаны в хабах?


    1. Pruto Автор
      09.08.2026 16:19

      сорри, не знал что такие правила, у меня инфрастуктура на этом построена, в прошлом посте описывал, убери в след. раз


  1. sha256man
    09.08.2026 16:19

    Я, конечно, хомяк, но тут упрощено до бессмыслицы:

    Допустим, BTC сейчас стоит $100 000.

    Маркет-мейкер выставляет одновременно:

    Buy - $99 999
    Sell - $100 001


    в какой-то момент X обе эти заявки не могут быть выполнены, т.к. нахлеста цен нет даже для кукла )

    а в разные моменты эти заявки конечно могут выполниться. Но хомяку васе точно так же можно выставить две заявки и ждать. Это скальпинг называется )



    1. Pruto Автор
      09.08.2026 16:19

      Хомяк в этот момент станет мм с плохой комиссией)


    1. Sild
      09.08.2026 16:19

      Эти заявки и не должны быть выполнены, они формируют стакан А исполнятся они когда приходят новые ордера на продажу (<= 99_999) и покупку (>= 100_001) Исполненные ордера в стакан не попадают, на то он и стакан

      Перечитал 3 раза, понял о каком “моменте Х” речь


  1. anyagixx
    09.08.2026 16:19

    Удались а


  1. qorbuild
    09.08.2026 16:19

    Cравнение снапшота из WebSocket-фида с состоянием матчинг-движка — это сравнение двух разных вещей, и мне кажется, отсюда растёт весь эффект.

    Во-первых, 100 мс до отправки — это очень много. На ликвидной паре топ книги за это время переворачивается несколько раз. Во-вторых, большинство биржевых фидов не событийные, а conflated: они не шлют каждое изменение, а склеивают их и отдают срез с интервалом. То есть картинка, по которой вы считаете доступный объём, вообще никогда не существовала как одновременное состояние книги — это склейка.

    Про «перепрыгнутый» уровень 0.03681. Уровень в стакане это не одна заявка, а очередь из многих. У маркет-мейкеров доля отменённых заявок обычно за 90%, и отмена уровня целиком между вашим снапшотом и матчингом — событие рядовое, а не аномалия.

    При этом ваша гипотеза проверяемая, и данных у вас для этого достаточно. Возьмите не книгу, а ленту сделок: если уровень был реальным и его действительно перепрыгнули, то по этой цене в тот момент не должно быть ни одной сделки вообще ни у кого. Если сделки там есть — уровень выбрали другие, вы просто опоздали в очередь. Если сделок нет ни одной, и так на всех 500 ордерах, вот это уже разговор.


    1. Pruto Автор
      09.08.2026 16:19

      Как раз второй случай, частичное заполнение и перепрыгивание уровней на 500+ выборке.


  1. house2008
    09.08.2026 16:19

    Не совсем понял, вы выставили лимитный ордер на 1.1111$ а он заполнился на 1.1112 (хуже) ? Очень странно, вроде лимитные ордера или заполнились или нет, у меня было частичное заполнение по моей цене, но никогда под другой худшей не заполнялось. Даже Гугл сказал лимитный ордер должен заполниться только по выставленной цене.

    Даже если часть стакана исчезнет за эти 100 мс

    Гугл говорит 10 миллисек может происходить обновление стакана у Bybit например

    Push Frequencies by Depth

    • Level 1 data: Push frequency is 10ms.

    • Level 50 data: Push frequency is 20ms.

    • Level 200 data: Push frequency is 100ms.

    • Level 500 data: Push frequency is 100ms.

    • Level 1000 data: Push frequency is 200ms

    На мой взгляд на нерегулируемных биржах стакан показывает погоду. Привожу пример который встречал недавно, ARXUSDT монета (скрин будет ниже), в стакане по 100к$ buy и sell показывает orderbook API на Bybit. Потом 21 Июля в стакан выставляют sell на 1 млн $, buy так и остался на 100к$, при этом цена ни на грамм не изменилась, что это такое я так и не понял. По одной низколиквидный монете вообще видел в стакане было по 100к$ с обеих сторон, потом в sell залетает стенка на 5 ! млн $ и просто стоит несколько дней, цена не меняется. Либо это крупный игрок что-то задумал и я просто не дождался развязки, но это всё выглядит очень странно.

    скрин

    Спойлер: у вас нет шансов.

    Ну купил я биткоен в лонг на 15m не по 65089, а по 65091, ну ок, я переживу, ведь у меня таргет фикса по 67к например, то есть зашел в лонг на 0.001% хуже чем хотел, даже на минутках это просто погрешность.

    Если у вас плохо заполняются ордера, можно попробовать использовать только высоколиквидные активы, можно по turnover24 сортировать.


  1. Old_paranoid
    09.08.2026 16:19

    А я немного скучаю по временам Бетси (btc-e), особенно по ламповому чату, вот там то можно было все, что надо, выяснить, про мм, про стакан, про книгу заявок и торговлю "по чату", и там как раз бывали моменты ничем не спровоцированных проколов, иногда на десятки процентов, когда мм тормозил с ликвидностью. Ну так мужики в чате говорили...


  1. Slav2
    09.08.2026 16:19

    Маркет мейкер не занимается ковырянием прибыли по доллару, он двигает цену на десятки процентов вверх-вниз. А то с чем вы имеете дело, так это обычные боты. Они не играют против рынка, не создают "стен", а постоянно переставляют заказы вслед за движением цены. Можете проанализировать и вырезать из стакана заказов эти объемы, оставив только объемы сохраняющиеся на протяжении 15 минут и более на каждом уровне. И вот с ними уже работать.