DOM z-score
Два индикатора стакана: полосы цены по 1 %, окрашенные по тому, насколько необычен объём заявок в них по сравнению с историей того же уровня. Карта стакана, а не сигнал на вход — это проверено на десяти месяцах истории.
Что это
DOM z-score ищет в стакане места, где лимитных заявок необычно много (стена) или необычно мало (пустота). Индикатор написал подписчик SpreadFighter Роман (mrzafod) и прислал готовым мерж-реквестом. Спасибо ему за вклад.
Это z-score объёма заявок в стакане. Не путайте его с индикатором Z-Score, который считает отклонение цены от скользящей средней.
Данные — те же, что у индикатора Depth of market: накопленный объём заявок на каждом баре в полосах от 1 до 10 % от цены, отдельно для бидов и асков.
Как считается
- Цена режется на полосы, по умолчанию по 1 % от цены.
- Для каждой полосы берётся объём заявок в ней сейчас.
- Этот объём сравнивается с тем, что стояло на этом же ценовом уровне раньше. История собирается назад до 200 баров, начиная за 20 баров до текущего. Сбор останавливается раньше, если в прошлом этот уровень оказывался по другую сторону от цены.
- Каждый замер по умолчанию делится на весь стакан своего бара. Так общий рост стакана или ралли цены не окрашивают все полосы сразу.
- Отклонение считается устойчивым z по медиане и MAD (медианному абсолютному отклонению): оно меньше реагирует на редкие выбросы в истории уровня.
- Полный цвет — при отклонении 5σ. Полосы с отклонением до 2σ не рисуются. Полоса появляется, только когда у неё набралось 50 замеров.
Как выглядит
Индикаторов два, считают они одинаково:
- DOM zscore highlighter рисуется поверх цены. Каждая полоса цены вокруг текущей цены, по умолчанию до ±8 %, окрашена на каждом баре.
- DOM zscore рисуется в отдельной панели. Аски уложены рядами вверх от нулевой линии, биды — вниз, по одному ряду на полосу, до ±10 % от цены. Высота ряда данных не несёт, значение передаёт только цвет.
| Цвет | Что значит |
|---|---|
| Зелёный под ценой | Стена в бидах: заявок на покупку больше обычного |
| Янтарный над ценой | Стена в асках: заявок на продажу больше обычного |
| Салатовый и красный | Самые сильные стены в бидах и асках, у полного цвета |
| Фиолетовый | Пустота: заявок меньше обычного |
| Нет цвета | Отклонение в пределах мёртвой зоны или мало замеров |
В панели DOM zscore есть ещё три элемента:
- Ask level и Bid level. Полосы от цены до выбранной (по умолчанию пятой) нарисованы втрое выше остальных, а на самой выбранной полосе стоит пунктирная линия.
- Ask/Bid imbalance — линия дисбаланса: объём асков от цены до Ask level против объёма бидов от цены до Bid level, от −1 до +1. Янтарная, когда перевешивают аски, зелёная — когда биды. Шкала нелинейная: небольшой перекос растянут, чтобы его было видно.
- Imbalance momentum — пунктирная линия: насколько дисбаланс изменился за последние 200 баров.
Настройки
| Параметр | По умолчанию | Что задаёт |
|---|---|---|
| Symbol | пусто | Чей стакан измерять. Пусто — символ графика |
| Bucket size (% of price) | 1 | Высота полосы в % от цены, от 0,2 до 4,2 |
| Depth (% away from price) | 8 в highlighter, 10 в панели | На сколько процентов от цены рисовать полосы в каждую сторону, не больше 10 |
| Ask level, Bid level | 5 | Только в панели: какую по счёту полосу от цены выделить |
| Window length (bars) | 200 | Сколько баров максимум брать в историю уровня |
| Normalize by | Share of book | Share of book — доля от всего стакана бара. Raw coins и Raw USD — объём в монетах или долларах без деления |
| Deviation measure | Robust z (median/MAD) | Robust z, обычный Z-score (window) или Percentile rank. Percentile rank не использует Sensitivity и Dead zone |
| Sensitivity (σ at full color) | 5 | При каком отклонении цвет полный |
| Dead zone (σ) | 2 | Отклонения до этого значения не рисуются |
| Minimum samples | 50 | Сколько замеров нужно, чтобы полоса появилась |
| Baseline gap (bars) | 20 | Сколько последних баров пропустить, чтобы свежая стена не попала в собственную историю |
| Momentum lookback (bars) | 200 | Только в панели: за сколько баров считать изменение дисбаланса |
Где найти
Найти: Indicators → поиск «DOM zscore». В списке индикаторы называются [SFM] DOM zscore highlighter и [SFM] DOM zscore, на графике — [SF] DOM Z-score и [SF] DOM Vol Z-Score. Индикаторы доступны на всех тарифах.
Проверка на истории
Мы проверили, держат ли стены цену. Период — 30 ноября 2025 — 22 сентября 2026, 8 бессрочных фьючерсов Binance USDT-M, таймфреймы 1h и 15m, настройки по умолчанию. Индикатор переписан на Python и сверен с кодом в приложении: на 215 063 окрашенных клетках ни одного расхождения. Гипотезы записаны до расчёта, каждую стену сравнивали с нейтральной полосой той же монеты на той же дистанции от цены.
Главное:
- Стена не держит цену. На полосах в пределах 3 % от цены стена пробивается за 12 часов не реже нейтральной полосы, а чаще: у бидов 23,8 % против 20,6 %, у асков 22,6 % против 16,1 %. Если учесть, насколько цена приблизилась к уровню, и её импульс, разница пропадает.
- Стена загорается, когда цена подходит к уровню. История полосы собирается, пока цена была дальше от неё, а дальше от цены стакан тоньше. Из полос, к которым цена подошла на 1,5 п.п. и больше, стеной окрашено 84 %, из отдалившихся — 1,4 %.
- У самой цены полосы часто пустые. На 1h полоса в пределах 1 % от цены набирает 50 замеров только в 22,6 % случаев.
- Сделки от стены не зарабатывают. Лимитный вход у края ближайшей стены, стоп за полосой, тейк 2R, комиссия 0,04 % на вход и выход: на 1h в среднем −0,074R на сделку, не лучше тех же правил от нейтральных полос.
- Связка с картой ликвидаций не подтвердилась. Зона ликвидаций Liquidation Map со стеной пробивается так же, как без стены. Из 14 заранее записанных проверок не прошла ни одна.
В отчёте предложена правка для второй версии: сравнивать полосу не с историей того же ценового уровня, а с историей полос на той же дистанции от цены. Она снижает долю стен у приблизившихся полос с 84 % до 11,5 % и окрашивает почти все полосы у цены. В приложении сейчас первая версия.
Отчёт называет три кандидата для проверки вперёд. Два относятся ко второй версии: стена в бидах пробивается чуть реже нейтральной полосы, а пустота над ценой — чаще. Третий — линия дисбаланса в панели DOM zscore: когда перевешивают аски, дальнейшая доходность в среднем чуть ниже. Строгий порог, записанный заранее, эти эффекты не прошли, поэтому это кандидаты, а не сигналы.
Полный отчёт с таблицами и графиками — на странице бэктестов в приложении.
Как пользоваться
Как картой стакана: где ликвидность толще обычного, а где тоньше. Стена в текущей версии часто означает просто «цена подошла к уровню», поэтому как сигнал на вход её брать не стоит.
Полоса без цвета у самой цены не значит, что стакан там обычный. Чаще всего у неё ещё не набралось 50 замеров.
Связанные статьи
- Depth of market — глубина стакана в полосах от 1 до 10 % от цены.
- Z-Score — z-score цены, а не стакана.
- Liquidation Map — прогноз зон ликвидаций.
- Spoofing, Layering — подсветка токсичной активности в книге заявок.