Проблема: тонкие стаканы
По умолчанию Arbitron использует лучшие цены покупки и продажи (BBA) — верхний уровень стакана — для расчёта спредов и принятия решений об открытии сделок. Это лучшие доступные цены в данный момент. Проблема в том, что по лучшей цене может быть лишь мизерный объём ликвидности. Если на лучшем аске всего 0.5 SOL, а ваш размер ордера — 10 SOL, биржа исполнит часть ордера по лучшей цене, а остаток — по прогрессивно худшим ценам вглубь стакана. Это называется проскальзывание (slippage).
На высоколиквидных парах вроде BTC-USDT на Binance это редко проблема — на верхних уровнях обычно стоят сотни тысяч долларов. Но на менее ликвидных парах, маленьких биржах или экзотических токенах разрыв между тем, что показывает BBA, и тем, что вы реально получите, может съесть всю прибыль от спреда. Множитель глубины решает эту проблему, рассчитывая реалистичную цену исполнения до принятия решения о сделке.
Почему тонкие стаканы — обычное явление в крипто-перпетуалах? Три структурные причины. Первая: ликвидность фрагментирована между 18+ активными биржами — то, что выглядит как монета с капитализацией $10 млн, на деле это 18 отдельных стаканов, каждый с долей от общей глубины. Вторая: маркетмейкеры концентрируют ликвидность на одном-двух верхних уровнях и оставляют широкие провалы ниже — профиль красиво смотрится на скриншоте, но испаряется в момент прихода реального ордера. Третья: азиатские «нерабочие» часы, выходные и предновостные окна — маркетмейкеры уходят целиком, и глубина может схлопнуться на 50–90% за несколько минут. Спред, который выглядел прибыльным в 03:00 UTC, к 04:00 уже может быть без подложки — а логика по одному BBA это никак не отличит.
Как это работает: VWAP вместо BBA
Когда вы устанавливаете Множитель глубины больше 0, Arbitron заменяет BBA на средневзвешенную по объёму цену (VWAP) при расчёте спредов. Вместо того чтобы смотреть только на одну лучшую цену, система симулирует проход по стакану для исполнения всего ордера и вычисляет среднюю цену, которую вы реально заплатите или получите.
Проверяемая глубина равна вашему Размеру ордера, умноженному на Множитель глубины. Например, если Order Size = 10 SOL и Множитель глубины = 2, система рассчитывает VWAP на глубине 20 SOL на каждой бирже. Это значит, что она проходит по стакану, накапливая уровни до заполнения 20 SOL, а затем вычисляет средневзвешенную цену: общая стоимость делённая на общее количество.
Алгоритм обрабатывает каждый уровень по порядку — начиная с лучшей цены, забирая максимально доступный объём на каждом уровне, и переходя к следующему. Если на верхнем аске 8 SOL по $150.00, а на следующем уровне 12 SOL по $150.05, то VWAP для 20 SOL будет (8 × 150.00 + 12 × 150.05) ÷ 20 = $150.03. Полученная цена VWAP всегда равна или хуже лучшей цены BBA — никогда лучше.
Выбор правильного значения
Значение 0 полностью отключает функцию — спреды считаются по сырым ценам BBA. Это нормально для высоколиквидных пар, где на верхних уровнях стакана всегда достаточно объёма. Значение 1 проверяет ликвидность ровно на ваш размер ордера — минимальная разумная проверка. Значение 2–3 — рекомендуемый диапазон для большинства настроек: гарантирует достаточную глубину для поглощения ордера с комфортным запасом. Высокие значения 5–10 — консервативные, подходят для менее ликвидных пар, где нужна дополнительная уверенность.
Чем выше множитель, тем глубже система смотрит и тем хуже (консервативнее) становится цена VWAP. Это значит, что спреды будут казаться уже при высоком множителе, и вы будете видеть меньше торговых сигналов. Это по замыслу — система открывается только при наличии реальной ликвидности на прибыльных уровнях, фильтруя фантомные возможности, которые привели бы к убыткам от проскальзывания.
Практические ориентиры по типу пары: BTC-USDT или ETH-USDT на топ-5 биржах (Binance, Bybit, OKX, Bitget) — множитель 0–1 обычно достаточно, глубина на верхних уровнях с запасом перекрывает типовой размер ордера. SOL, AVAX, MATIC и аналогичные mid-cap на тех же биржах — множитель 2–3 ловит моменты, когда маркетмейкеры отступают. Low-cap альты или mid-cap на маленьких биржах (Gate.io, MEXC, KuCoin) — нижняя граница 3–5; рассматривайте 5–10, если торгуете объёмом. Самый чистый способ откалибровать — поставить множитель 2, прогнать карточку несколько дней и смотреть на счётчик «VWAP insufficient depth» в диагностике. Если пропусков меньше 5% — множитель адекватен. Если больше 20% — пара структурно тонкая для этого размера; уменьшайте номинал или меняйте площадку, а не снижайте множитель.
Что происходит при недостаточной глубине
Если в стакане недостаточно ликвидности для заполнения запрошенной глубины (Размер ордера × Множитель глубины), расчёт VWAP не возвращает результат и тик спреда молча пропускается. Торговый сигнал не генерируется. Это намеренный механизм безопасности — если стакан слишком тонок для проверки, система отказывается действовать, а не гадает.
Вы можете отслеживать частоту таких пропусков через метрику «VWAP insufficient depth» в диагностике. Если пропуски происходят часто, это может означать, что пара слишком неликвидна для вашего размера ордера или множитель слишком высок. Рассмотрите уменьшение множителя или размера ордера.
Практический пример
Допустим, у вас карточка на TOKEN-USDT между Биржей A и Биржей B. Order Size = 100 токенов, Множитель глубины = 2. Система рассчитает VWAP на глубине 200 токенов на каждой бирже. На Бирже A аск-сторона: 50 токенов по $1.200, 80 токенов по $1.201, 100 токенов по $1.205. Проход 200 токенов: 50 × 1.200 + 80 × 1.201 + 70 × 1.205 = VWAP = $1.2022. А сырой лучший аск — $1.200.
Система использует $1.2022 вместо $1.200 для расчёта спреда на аск-стороне Биржи A. Разница в 0.18% может показаться незначительной, но на паре с общим спредом 0.4% потеря 0.18% на проскальзывании только на одной ноге уполовинивает прибыль. Множитель глубины обнаруживает это до открытия сделки, а не после исполнения.
Тот же пример без множителя глубины показывает, что идёт не так. При множителе 0 система видит аск $1.200 на Бирже A и бид $1.205 на Бирже B (верх стакана) — брутто-спред 0.42%, заметно выше порога открытия. Срабатывает рыночный ордер. Через две миллисекунды он прокатывается по уровням 50 + 80 + 70 токенов, и реальный VWAP исполнения на A — $1.2022; параллельный walk проскальзывания на B опускает бид-VWAP до $1.2031. Реализованный брутто-спред: 0.075%, а не 0.42%. После тейкер-комиссий на двух биржах (0.10% round-trip на ликвидных альтах) получаем гарантированный убыток. Стакан кричал «тонко» — но логика по одному BBA не слышит. Множитель глубины — это и есть механизм «слышать».
Ключевые моменты
Множитель глубины влияет на расчёт спредов как для решений об открытии, так и о закрытии сделок. Он не меняет реальное исполнение ордеров: ордера всегда размещаются как рыночные по лучшей доступной цене. Функция использует данные стаканов в реальном времени, а не кешированные или задержанные снапшоты.
Цены VWAP используются для порогов спреда (триггеры Open Spread и Close Spread) и для расчёта исполнимого спреда при закрытии позиций. Установка множителя в 0 полностью отключает функцию без влияния на производительность. Допустимый диапазон — от 0 до 50.
Мониторинг встроен. Панель диагностики каждой карточки показывает: текущие VWAP-спреды на сторонах открытия и закрытия, разницу между сырым BBA и VWAP (фактический прогноз проскальзывания), счётчик пропусков «VWAP insufficient depth» и среднюю глубину, наблюдаемую на запрошенном уровне. Используйте их как дашборд здоровья стакана. Если прогноз проскальзывания постепенно растёт в течение сессии — маркетмейкеры уходят с ликвидностью; имеет смысл закрыть позиции, уменьшить размер или поставить карточку на паузу до восстановления глубины.
Типовой трабл-шутинг: если карточка не срабатывает несмотря на очевидный спред по BBA — множитель, скорее всего, слишком высокий; снизьте с 5 до 3 или с 3 до 2 и проверьте, начнут ли проходить сигналы. Если сделки срабатывают, но фактическое проскальзывание систематически превышает прогноз — стакан обновляется медленнее фида (на real-time инкрементальных фидах Arbitron редко, но при перегрузке биржи возможно); добавьте Notify on Slippage с порогом раннего предупреждения. Если пропуски доминируют на одной конкретной бирже из пары — узкое место именно она; рассмотрите более глубокую альтернативу для того же символа.