Перейти к основному содержимому

DOM z-score

Два индикатора стакана: полосы цены по 1 %, окрашенные по тому, насколько необычен объём заявок в них по сравнению с историей того же уровня. Карта стакана, а не сигнал на вход — это проверено на десяти месяцах истории.

Что это​

DOM z-score ищет в стакане места, где лимитных заявок необычно много (стена) или необычно мало (пустота). Индикатор написал подписчик SpreadFighter Роман (mrzafod) и прислал готовым мерж-реквестом. Спасибо ему за вклад.

Это z-score объёма заявок в стакане. Не путайте его с индикатором Z-Score, который считает отклонение цены от скользящей средней.

Данные — те же, что у индикатора Depth of market: накопленный объём заявок на каждом баре в полосах от 1 до 10 % от цены, отдельно для бидов и асков.

Как считается​

  1. Цена режется на полосы, по умолчанию по 1 % от цены.
  2. Для каждой полосы берётся объём заявок в ней сейчас.
  3. Этот объём сравнивается с тем, что стояло на этом же ценовом уровне раньше. История собирается назад до 200 баров, начиная за 20 баров до текущего. Сбор останавливается раньше, если в прошлом этот уровень оказывался по другую сторону от цены.
  4. Каждый замер по умолчанию делится на весь стакан своего бара. Так общий рост стакана или ралли цены не окрашивают все полосы сразу.
  5. Отклонение считается устойчивым z по медиане и MAD (медианному абсолютному отклонению): оно меньше реагирует на редкие выбросы в истории уровня.
  6. Полный цвет — при отклонении 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 level5Только в панели: какую по счёту полосу от цены выделить
Window length (bars)200Сколько баров максимум брать в историю уровня
Normalize byShare of bookShare of book — доля от всего стакана бара. Raw coins и Raw USD — объём в монетах или долларах без деления
Deviation measureRobust z (median/MAD)Robust z, обычный Z-score (window) или Percentile rank. Percentile rank не использует Sensitivity и Dead zone
Sensitivity (σ at full color)5При каком отклонении цвет полный
Dead zone (σ)2Отклонения до этого значения не рисуются
Minimum samples50Сколько замеров нужно, чтобы полоса появилась
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 — подсветка токсичной активности в книге заявок.