DOM on Chart
DOM on Chart отрисовывает живую книгу ордеров (Depth of Market) как визуальный оверлей непосредственно на ценовом графике. Ордера бидов показаны на одной стороне, ордера асков — на другой, обновляясь в реальном времени через WebSocket. Это даёт немедленный визуальный контекст о выставленной ликвидности ордеров без переключения на отдельный DOM-виджет.
Как это работает
Индикатор подписывается на поток книги ордеров через WebSocket и получает периодические снимки выставленных лимитных ордеров на каждом ценовом уровне. Для каждого уровня известен общий выставленный объём на стороне бидов (ожидающие покупатели) и стороне асков (ожидающие продавцы).
Эти данные отрисовываются как вертикальный оверлей на правой части графика, выровненный с ценовой осью:
- Объём бидов (ордера на покупку) показан расширяющимся влево от ценовой оси.
- Объём асков (ордера на продажу) показан расширяющимся вправо от ценовой оси (или в противоположном визуальном направлении, в зависимости от режима отображения).
Оверлей обновляется с настроенным интервалом опроса, обеспечивая практически реальное отображение того, где ликвидность покоится в книге.
Тип индикатора
Overlay — отрисовывается на стороне ценовой оси графика. Не занимает отдельную панель подграфика.
Настройки
Видимость
| Parameter | Тип | Default | Описание |
|---|
showBids | boolean | true | Показывать сторону бидов (ордера на покупку) |
showAsks | boolean | true | Показывать сторону асков (ордера на продажу) |
Цвета
| Parameter | Тип | Default | Описание |
|---|
bidColor | color | #3b82f6 | Цвет для ордеров бидов |
askColor | color | #ef4444 | Цвет для ордеров асков |
Глубина и размеры
| Parameter | Тип | Default | Описание |
|---|
depthLevels | number | 5000 | Количество ценовых уровней для отображения с каждой стороны книги |
opacity | number | 0.6 | Общая прозрачность оверлея (0.0–1.0) |
widthPercent | number | 25 | Ширина оверлея как процент от ширины графика |
Параметр depthLevels контролирует, насколько глубоко в книгу ордеров расширяется визуализация. Для большинства символов 5000 уровней покрывает значительный ценовой диапазон. Уменьшите это значение на очень ликвидных символах, где тысячи уровней существуют вблизи спреда, или увеличьте на неликвидных символах, где нужно видеть всю книгу.
widthPercent определяет, сколько горизонтального пространства графика занимает оверлей. При 25% (по умолчанию) DOM-оверлей занимает правую четверть области графика. Увеличьте для лучшего разрешения объёма; уменьшите для сохранения большего пространства для ценового действия.
Режим отображения
| Parameter | Тип | Default | Описание |
|---|
displayMode | select | histogram | Стиль визуализации: histogram, cluster, area |
Каждый режим отображения предлагает разное визуальное представление одних и тех же данных книги ордеров:
| Режим | Описание | Лучше для |
|---|
histogram | Горизонтальные столбцы на каждом ценовом уровне, длина пропорциональна объёму | Точный поуровневый анализ, обнаружение отдельных крупных ордеров |
cluster | Уровни группируются по ценовому диапазону в блоки | Обзор зон ликвидности верхнего уровня, меньше визуального шума |
area | Заполненный график области, показывающий кумулятивную или поуровневую глубину | Плавная визуализация общей формы книги |
Кумулятивный режим
| Parameter | Тип | Default | Описание |
|---|
cumulative | boolean | false | Показывать кумулятивную глубину вместо объёма на уровень |
При включении каждый ценовой уровень показывает сумму всего объёма от лучшей цены до этого уровня, а не только объём на конкретном уровне. Это создаёт монотонно возрастающую кривую, показывающую общую доступную ликвидность на каждой ценовой точке.
- Кумулятивный выкл. (по умолчанию): каждый столбец представляет объём именно на этом ценовом уровне. Крупные отдельные ордера хорошо видны.
- Кумулятивный вкл.: каждый столбец представляет общий доступный объём вплоть до этой цены. Показывает общий профиль глубины и как быстро ликвидность убывает.
Частота обновления
| Parameter | Тип | Default | Описание |
|---|
pollIntervalMs | number | 500 | Миллисекунды между обновлениями книги ордеров |
Меньшие значения обеспечивают более актуальные обновления, но увеличивают сетевую и рендеринговую нагрузку. Большие значения легче для производительности, но показывают менее актуальный снимок.
| Стиль торговли | Рекомендуемый интервал |
|---|
| Скальпинг | 250мс |
| Дей-трейдинг | 500мс (по умолчанию) |
| Свинг-трейдинг | 1000–2000мс |
| Позиционная торговля | 2000–5000мс |
Группировка цен
| Parameter | Тип | Default | Описание |
|---|
groupStep | number | 0 | Шаг группировки ценовых уровней (0 = автоматически на основе масштаба графика) |
При значении 0 (по умолчанию) индикатор автоматически группирует ценовые уровни на основе текущего масштаба графика. При приближении показываются индивидуальные тиковые уровни; при отдалении уровни группируются для предотвращения визуального шума.
Задайте конкретное значение для переопределения автоматического поведения. Например, groupStep: 10 на BTCUSDT группирует каждые 10 ценовых уровней ($10 каждый) в один столбец.
Визуальные улучшения
| Parameter | Тип | Default | Описание |
|---|
useGradient | boolean | true | Применять градиентную окраску по расстоянию глубины |
showLabels | boolean | true | Показывать метки объёма на значимых уровнях |
При включённом useGradient уровни ближе к лучшей цене рендерятся более насыщенным цветом, а глубокие уровни затухают. Это создаёт интуитивный визуальный эффект глубины.
При включённом showLabels значения объёма отображаются как текстовые метки на уровнях, превышающих порог значимости. Это позволяет избежать загромождения графика метками на каждом уровне, обеспечивая при этом чёткую маркировку крупных выставленных ордеров.
Фильтры объёма
| Parameter | Тип | Default | Описание |
|---|
filterMinVolume | number | 0 | Минимальный объём для отображения уровня (0 = показывать все) |
filterHighlightVolume | number | 0 | Подсвечивать уровни с объёмом выше этого порога (0 = без подсветки) |
filterHighlightColor | color | #fbbf24 | Цвет для подсвеченных высокообъёмных уровней |
Фильтр подсветки — одна из наиболее полезных функций для обнаружения крупных выставленных ордеров (стенок):
- Установите
filterHighlightVolume на значение, представляющее значительный ордер для символа (например, 100 BTC для BTCUSDT).
- Уровни, превышающие этот порог, рендерятся цветом подсветки, делая стенки немедленно видимыми.
Используйте filterHighlightVolume для обнаружения крупных стенок ордеров. Снизьте pollIntervalMs для скальпинга (250мс), увеличьте для свинг-трейдинга (2000мс+) для снижения нагрузки рендеринга.
Отображение валюты
| Parameter | Тип | Default | Описание |
|---|
volumeCurrency | select | BASE | Отображать объём в базовом активе (BASE) или котировочном (USDT) |
- BASE: показывает объём в торгуемом активе (например, BTC). Более интуитивно для понимания размеров ордеров.
- USDT: показывает объём в долларовом выражении. Лучше для сравнения между разными активами.
Чтение DOM-оверлея
Определение стенок
Стенка — это один ценовой уровень (или узкая зона) с непропорционально большим выставленным объёмом. Стенки выглядят как длинный столбец, значительно выступающий за соседние. Они представляют:
- Стенки бидов: крупные ордера на покупку ниже текущей цены. Могут выступать как поддержка — цена может отскочить от стенки. Однако стенки также могут быть спуфинговыми (выставленными и отменёнными).
- Стенки асков: крупные ордера на продажу выше текущей цены. Могут выступать как сопротивление — цена может быть отвергнута на стенке.
Анализ формы книги
Общая форма DOM-оверлея раскрывает ландшафт ликвидности:
- Симметричная книга: примерно равный объём бидов и асков на сопоставимых расстояниях. Сбалансированный рынок без направленного перекоса.
- Книга с преобладанием бидов: значительно больше объёма на стороне бидов. Указывает на поддержку снизу, но также может означать, что крупные покупатели размещают пассивные ордера для накопления.
- Книга с преобладанием асков: значительно больше объёма на стороне асков. Указывает на сопротивление сверху.
- Тонкая книга: очень мало объёма на любой стороне. Среда низкой ликвидности, где цена может двигаться быстро при малых ордерах.
Динамические изменения
Следите за этими паттернами в реальном времени:
- Удаление стенки: крупная стенка, внезапно исчезающая, вероятно была отменена (спуфинг) или исполнена. Если исполнена, это значимое событие.
- Миграция стенки: стенка, перемещающаяся ближе к текущей цене, предполагает, что участник корректирует точку входа — потенциально более агрессивный.
- Ликвидационный вакуум: пробел в книге (отсутствие выставленных ордеров на нескольких ценовых уровнях) указывает на потенциальную зону быстрого движения.
Сочетание с другими индикаторами
| Индикатор | Синергия |
|---|
| OB Imbalance | OB Imbalance показывает историческую временную серию дисбаланса книги; DOM on Chart показывает текущий живой снимок. Вместе — тренд + текущее состояние. |
| Trades Filter | Уровни высокой активности из Trades Filter, совпадающие с текущими стенками DOM, имеют более сильную значимость. |
| Volume Profile | POC (точка контроля) из Volume Profile в сочетании со стенкой DOM на том же уровне = высокоубеждённая поддержка/сопротивление. |
| Absorption | Если цена приближается к стенке DOM и индикатор Absorption активируется, стенка активно поглощает агрессивные ордера — сильная защита уровня. |
Оповещения
DOM on Chart поддерживает следующее событие оповещения:
| Событие | Описание |
|---|
high_volume | Срабатывает, когда выставленный ордер на одном уровне превышает настраиваемый порог объёма |
Это оповещение уведомляет вас о появлении значимой стенки в книге, даже если вы не следите за графиком активно.
Примечания по производительности
DOM on Chart рендерит потенциально большое количество элементов (до depthLevels столбцов на каждую сторону) и обновляет их с частотой pollIntervalMs. Для оптимальной производительности:
- Используйте
groupStep > 0 для уменьшения количества рендерируемых элементов на очень ликвидных символах.
- Увеличьте
pollIntervalMs, если замечаете задержки рендеринга.
- Установите
filterMinVolume > 0 для пропуска рендеринга тривиально малых уровней.
- Используйте режим
histogram для наименьшей нагрузки рендеринга. Режим area с градиентами немного более требователен к GPU.
Ограничения
- Снимки, а не непрерывный поток: DOM-оверлей показывает периодические снимки, а не непрерывный поток. Быстро меняющиеся ордера между снимками могут быть не видны.
- Риск спуфинга: крупные видимые стенки могут быть спуфинговыми ордерами, которые будут отменены до исполнения. Не полагайтесь на одну стенку как на окончательный сигнал.
- Только вершина книги: оверлей показывает выставленные лимитные ордера. Айсберг (скрытые) ордера не видны.
Итог
DOM on Chart переносит книгу ордеров непосредственно на ваш ценовой график, обеспечивая живой обзор того, где сконцентрированы выставленные ордера на покупку и продажу. Настраивая глубину, режим отображения, фильтры объёма и пороги подсветки, вы можете быстро определять крупные стенки, оценивать общую форму книги и обнаруживать ликвидационные вакуумы — всё без ухода с графика.