Обычный трейдер смотрит на свечной график, но свеча — это уже тень прошлого, постфактум. Между тем настоящая динамика рождается в глубине торгового стакана — Limit Order Book, где борьба заявок определяет будущий импульс.
Проблема в том, что историю стакана почти нигде не увидеть: розничные терминалы для частных клиентов дают лишь текущую таблицу DOM ( Depth of Market ) и это статичный срез без прошлого.
Чтобы увидеть то, на что обычный трейдер не обращает внимание я собрал инструмент, который превращает исторические данные L2 Order Book (стакан заданной глубиной) и Trades Stream (обезличенные сделки) в тепловые карты и позволяет изучать эволюцию заявок на Московской бирже через браузер с Deep Zoom — плавно, как в Google Maps.
Знаете Bookmap?

Если вы когда‑либо видели Bookmap, то идея проекта вам покажется знакомой. Bookmap — это профессиональный инструмент, который рисует тепловую карту ликвидности стакана и сделок в реальном времени: где стоят крупные заявки, как они двигаются, исчезают или наоборот «притягивают» цену. Но Bookmap дорог, закрыт и не работает с Московской биржей.
Что мы на самом деле видим?
Биржевой стакан — это не таблица в терминале и не набор случайных чисел. Это живая очередь намерений. Тысячи алгоритмов и людей размещают заявки на покупку (bid) и продажу (ask), формируя хрупкий баланс спроса и предложения. В каждый момент времени стакан отражает то, что участники хотят сделать, но ещё не сделали. И именно эти несовершившиеся действия двигают рынок.
Когда‑то впервые открыть глаза на это помогли работы Nanex. Их система NxCore показала, что HFT‑алгоритмы оставляют следы — характерные узоры, вспышки ликвидности, провалы, которые на свечном графике просто растворяются. В их визуализации «Disturbing Liquidity» исчезновение 80% заявок за одну секунду выглядело как цифровой обвал — видимый только тем, кто смотрит внутрь книги ордеров, а не на результат на графике.

Другой источник — исследования Parasec, где анализировали глубину и «дыхание» ликвидности на биткоин‑биржах. Их визуализации тоже показали, что стакан — это не плоская таблица, а многослойная структура, где заявки добавляются, исчезают и перестраиваются, создавая паттерны, похожие на биение пульса.


В моей реализации я пытаюсь сделать так же. Код берет L2 Order Book (стакан глубиной 50) и Trades Stream (обезличенные сделки) и проходит путь от «хаоса массивов» до карты эволюции рынка.
Мой код представлен на GitHub: empenoso/MOEX-OrderBook-DeepZoom
Сначала все события объединяются во временные блоки, чтобы уместить недели данных в шаблон по горизонтали — без потери структуры. Далее строятся две тепловые карты: верхняя показывает абсолютные уровни цен и ликвидности, нижняя — относительное смещение вокруг mid‑price, чтобы видеть деформации книги ордеров независимо от тренда. Яркость пикселей кодирует объём (после логарифмической нормализации), а цвет — насыщенность ликвидности. Сделки накладываются поверх — как тонкая линия и серия точек разных размеров, привязанных к реальным объёмам.

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

Зачем это нужно?
Например для поиска аномалий:
Flash Crashes. Когда цена внезапно проваливается, трейдеры ищут виноватых в свечах или новостях. Но иногда причина банальна: на стороне bid просто исчез слой ликвидности, и рынок провалился в пустоту. Визуализация показывает это мгновенно — пустые коридоры, резкие «дыры» в глубине, которые на обычном графике не видны.
Spoofing. Ложные крупные заявки, которые появляются и исчезают, чтобы напугать участников или двинуть цену в нужную сторону. В стакане это выглядит как рваные по��осы «жирных» уровней, которые никогда не исполняются. Понять такую манипуляцию по свечам невозможно, но на тепловой карте она читается моментально. Польза? Видеть то, что скрыто от большинства — а значит принимать решения раньше толпы.
Отличная книга издана на русском на обе эти темы и написана относительно недавно в 2020 году: Flash Crash. История о трейдере‑самоучке, обвалившем финансовый рынок на 1 трлн $ (Лиам Воган).

Анализ микроструктуры. Стакан показывает, как именно цена проходит путь от уровня к уровню. Когда рынок упирается в крупную «плиту» заявок, визуализация помогает понять: это реальный интерес или просто бутафория? Цена отскакивает от плотных уровней, если там стоит живой спрос, и наоборот — легко «проедает» их, когда объёмы фиктивны. Дисбаланс bid/ask перед импульсом становится заметен как изменение наклона и плотности тепловой карты.
Обучение и Research. Для ML‑инженеров такой инструмент — находка. Прежде чем закармливать модель признаками, полезно глазами увидеть структуру данных: как меняется ликвидность, где возникают аномалии, какие зоны повторяются. Это позволяет строить более осмысленные фичи и проверять гипотезы не в абстракции, а на живой микроструктуре рынка.
Техническая часть
Стек: NumPy и Matplotlib для чисел и генерации PNG, Pillow (PIL) для оптимизации графики и, наконец, OpenSeadragon для работы в браузере. Эта комбинация позволяет эффективно обрабатывать гигабайты потенциальных данных.

Формат и структура
Данные хранятся в.npz — это бинарные архивы NumPy, идеальные для хранения огромных многомерных массивов. Структура проста и быстра: A/B — 50 уровней цен Ask/Bid (цены спроса и предложения), vA/vB — соответствующие им объемы. Такая структура, близкая к матрице, максимально эффективна для Data Engineering и скоростного анализа.

Пайплайн: от тика до тепловой карты
Биннинг (агрегация). Чтобы стабилизировать визуальное разрешение (ось X = 12 000px) и справиться с хаосом необработанных тиков (событий), мы агрегируем данные в фиксированные временные слоты. Это позволяет уместить неделю биржевой активности в HD карту без потери общей структуры и видимых аномалий.
Математика объемов (np.log1p). Ключевая деталь: логарифмирование объемов. Разница между ритейл‑заявкой и крупным фондом может достигать 4-х порядков. Линейная шкала убивает детали, делая мелкие, но важные намерения невидимыми. Функция np.log1p() сжимает этот разброс, позволяя на одной тепловой карте видеть как «бумажные» ордера, так и реальные ликвидные «плиты».
Генерация и Тайлинг. Мы создаем огромный PNG (до 12 000 пикселей в ширину), который затем Pillow нарезает на пирамиду мелких (256px) тайлов с манифестом.dzi. Это суть Deep Zoom: браузер загружает только видимые плитки, обеспечивая плавный, Google Maps‑подобный скроллинг и масштабирование (через OpenSeadragon) без необходимости загружать весь гигабайтный файл.
Примеры



Как запустить у себя?
Процесс максимально прост и понятен для любого разработчика:
Клонируйте репозиторий и установите зависимости:
git clone ..., затемpip install -r requirements.txt.Поместите файлы с историей стакана (ваши
.npz) в папкуnpz_data/.Запустите оркестратор:
python main.py(он нарежет данные, создаст Ultra‑HD карты и Deep Zoom тайлы).Запустите локальный сервер и откройте
http://localhost:8000.
Важный дисклеймер: мой код — это «плеер» (визуализатор), который умеет работать с готовым форматом. «Кассета» (исторические данные Московской Биржи) является платной. Скрипт ждет готовые .npz файлы, которые вы должны предоставить самостоятельно. Если нет доступа к платным данным, то можно самостоятельно накопить историю через API брокера — это бесплатно и доступно для частного лица.
Заключение
Мы привыкли смотреть на рынок через свечи — удобную, но упрощённую проекцию сложной динамики. Однако за каждым движением цены скрывается куда более интересный мир микроструктуры: заявки, очереди, исчезающие уровни, вспышки ликвидности, невидимые на обычном графике. Этот визуализатор — это попытка сделать этот скрытый слой таким же доступным, как карты в браузере: приблизить, отдалить, задержать взгляд и увидеть то, что раньше пролетало мимо.
Если вам интересно покопаться внутри рынка — забирайте репозиторий, улучшайте, экспериментируйте, дополняйте. Чем больше мы делаем таких инструментов, тем меньше рынок остаётся «чёрным ящиком» и тем больше у частных инвесторов п��является возможностей понимать происходящее, а не гадать.
Спасибо, что дочитали до конца. Если хотите увидеть живые примеры или пообщаться — пишите в Telegram. Буду рад обсудить, подсказать и услышать ваши идеи.
Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»
16 декабря 2025
