Эта страница переведена автоматически. Оригинал на английском языке является каноническим. Читать на английском
Перейти к основному содержимому

Ликвидация

Ликвидация защищает систему от аккаунтов, которые больше не могут выполнять свои маржинальные обязательства. Когда собственный капитал аккаунта опускается ниже поддерживающей маржи, процесс ликвидации передаёт позиции платёжеспособным контрагентам.

Условия срабатывания

Ликвидация запускается, когда аккаунт становится недостаточно обеспеченным:

Портфельная маржа:

Equity<Maintenance Margin Required\text{Equity} < \text{Maintenance Margin Required}

Стандартная маржа:

Maintenance Margin<0\text{Maintenance Margin} < 0

Где поддерживающая маржа = собственный капитал − требуемая MM.

Система непрерывно опрашивает все аккаунты с позициями для проверки их состояния.

Машина состояний

Аккаунты проходят через четыре состояния ликвидации:

ЗдоровыйЭквити > MM требуемогоВсе ордера разрешеныПредликвидацияЛьготный период 60 секУвеличивающие риск - заблокированыУменьшающие риск - разрешеныЛиквидацияГолландский аукцион активенВсе ордера заблокированыЛиквидированПозиции переданыЭквити < MMЛьготный период истекАукцион завершенПополнение / Закрытие позицийКлючевые параметры Грейс-период: 60 секунд Частичная ликвидация: ≤5 позиций Полная ликвидация: >5 позиций Штраф за ликвидацию: стимулирует ликвидаторов Страховой фонд: покрывает неплатёжеспособность ADL: если страховой фонд исчерпанВосстановление: внесите залог или закройте позиции во время PreLiquidationдля возврата в состояние Healthy. После начала InLiquidation восстановление невозможно.WebSocket транслирует изменения состояния по каналу liquidation.Каскад неплатежеспособности1Эквити счетаПользователь несет убыток до уровня эквити2Страховой фондПокрывает недостаток при недостаточности эквити3ADL (Авто-делевериджинг)Прибыльные контрагенты делевериджатся
СостояниеОписаниеОграничения на ордера
HealthyСобственный капитал > требуемой MMНет
PreLiquidationСобственный капитал < MM, действует льготный периодОрдера, увеличивающие риск, блокируются
InLiquidationИдёт аукционВсе ордера блокируются
LiquidatedАукцион завершёнАккаунт очищен

Переходы между состояниями

  1. Healthy → PreLiquidation: аккаунт опускается ниже порога MM
  2. PreLiquidation → Healthy: аккаунт восстанавливается выше MM (пользователь внёс средства или закрыл позиции)
  3. PreLiquidation → InLiquidation: льготный период истёк без восстановления
  4. InLiquidation → Liquidated: аукцион успешно завершён

Льготный период перед ликвидацией

Когда аккаунт переходит в состояние пред-ликвидации:

  1. Ордера, увеличивающие риск, блокируются немедленно
  2. Ордера, снижающие риск (закрытие позиций), остаются разрешёнными
  3. Начинается 60-секундный льготный период
  4. Если аккаунт восстанавливается (собственный капитал > MM) до истечения льготного периода, он возвращается в состояние Healthy
  5. Если по истечении льготного периода аккаунт по-прежнему недостаточно обеспечен, начинается ликвидационный аукцион

Льготный период даёт пользователям время, чтобы:

  • Внести дополнительное обеспечение
  • Закрыть позиции для снижения маржинальных требований
  • Отреагировать на резкие движения рынка

Ликвидационный аукцион

По истечении льготного периода начинается голландский аукцион:

Аукцион при платёжеспособности (собственный капитал > 0)

Начальная цена = собственный капитал × (1 − штраф), снижается со временем.

Ликвидаторы делают ставки на принятие позиций аккаунта в обмен на:

  • Собственный капитал аккаунта (за вычетом штрафа)
  • Ответственность за все позиции

Штраф создаёт стимул для участия ликвидаторов.

Аукцион при неплатёжеспособности (собственный капитал < 0)

Если аккаунт неплатёжеспособен (отрицательный собственный капитал), страховой фонд выплачивает бонус, чтобы стимулировать ликвидаторов принять убыточные позиции.

Передача позиций

По завершении ликвидации:

  1. Все позиции передаются от ликвидируемого аккаунта ликвидатору
  2. Ликвидатор получает (при платёжеспособности) или платит (при неплатёжеспособности получает бонус) стоимость расчёта
  3. Корень маржи обновляется в блокчейне
  4. Состояние аккаунта переходит в Liquidated

Частичная и полная ликвидация

ТипУсловиеПоведение
Частичная≤ 5 позицийЛиквидация отдельных позиций до восстановления MM
Полная> 5 позицийЛиквидация всего аккаунта

Частичная ликвидация детерминирована:

  • Позиции упорядочиваются по единому алгоритму (не случайно)
  • Ликвидатор получает позиции в определённом порядке
  • Процесс останавливается, когда аккаунт возвращается в здоровое состояние

Каскад покрытия убытков при неплатёжеспособности

Если ликвидация не позволяет вернуть полную стоимость, убытки поглощаются в следующем порядке:

  1. Собственный капитал аккаунта: ликвидируемый пользователь поглощает убыток в пределах своего капитала
  2. Страховой фонд: покрывает дефицит, если капитала недостаточно
  3. ADL (автоматическое сокращение плеча): если страховой фонд исчерпан, прибыльные контрагенты пропорционально подвергаются принудительному сокращению позиций
  4. Социализация убытков: последняя линия защиты (в настоящее время не реализована)

Страховой фонд

Страховой фонд:

  • Пополняется за счёт штрафов при ликвидации
  • Покрывает неплатёжеспособные ликвидации
  • Восполняется за счёт торговых комиссий и штрафов
  • Имеет целевой минимальный резерв

ADL (автоматическое сокращение плеча)

Если страховой фонд не может покрыть убытки:

  • Выбираются контрагенты с прибыльными позициями
  • Позиции принудительно закрываются по марк-цене
  • Приоритет отдаётся позициям с наибольшей прибылью и плечом
  • Затронутые пользователи получают уведомление

Эндпоинты API

Получить статус ликвидации

GET /liquidation/status?wallet=0x...

Ответ:

{
"success": true,
"data": {
"wallet": "0x...",
"state": "pre_liquidation",
"margin_mode": "portfolio",
"equity": "4500.00",
"mm_required": "5000.00",
"maintenance_margin": "-500.00",
"entered_pre_liq_at": 1737312000000,
"mm_shortfall": "500.00",
"auction_id": null
}
}

Получить историю ликвидаций

GET /liquidation/history?wallet=0x...&limit=20

Возвращает историю переходов состояний для аккаунта.

Получить публичную историю ликвидаций

GET /liquidations?limit=50

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

Параметры запроса

  • cursor: непрозрачный курсор, возвращённый предыдущей страницей.
  • limit: размер страницы, по умолчанию 50, максимум 100.
  • wallet: необязательный фильтр по кошельку.
  • status или state: необязательный фильтр по состоянию перехода ликвидации. Допустимые значения: healthy, pre_liquidation, in_liquidation и liquidated.
  • margin_mode: необязательный фильтр по режиму маржи. Допустимые значения: standard и portfolio.
  • liquidation_mode: необязательный фильтр по режиму ликвидации. Допустимые значения: partial и full.

Ответ: PublicLiquidationsResponse с записями переходов ликвидации и page.next_cursor для следующего запроса.

Получить детали аукциона

GET /liquidation/auction/{auction_id}

Возвращает статус аукциона, позиции и детали расчёта.

Уведомления по WebSocket

Изменения состояния ликвидации транслируются в канале liquidation:

{
"type": "LiquidationStateChange",
"wallet": "0x...",
"previous_state": "healthy",
"new_state": "pre_liquidation",
"equity": "4500.00",
"mm_required": "5000.00",
"shortfall": "500.00",
"auction_id": null,
"timestamp": 1737312000000
}

Подпишитесь, чтобы получать обновления по вашему кошельку в реальном времени.

Параметры

ПараметрЗначениеОписание
poll_interval5 секундЧастота проверки состояния
grace_period60 секундВремя до начала аукциона
min_shortfall_threshold0Минимальный дефицит для запуска пред-ликвидации
partial_liquidation_threshold5 позицийНиже этого порога применяется частичная ликвидация

Рекомендации

Для трейдеров

  1. Следите за маржинальным коэффициентом: держите собственный капитал существенно выше MM (рекомендуемый запас — 2x)
  2. Настройте оповещения: используйте WebSocket для раннего обнаружения пред-ликвидации
  3. Держите резерв наготове: имейте запасное обеспечение для быстрого внесения
  4. Используйте стоп-лоссы: автоматизируйте сокращение позиций до наступления ликвидации

Проверка состояния

Регулярно проверяйте свой маржинальный статус:

# Portfolio margin
curl "https://api.hypercall.xyz/portfolio?wallet=0x..."

# Look for:
# - equity vs maintenance_margin_required
# - margin_ratio (equity / IM)

Восстановление в течение льготного периода

Если вы попали в пред-ликвидацию:

  1. Внесите обеспечение через процесс пополнения
  2. Закройте позиции, чтобы снизить маржинальные требования
  3. Отмените открытые ордера, увеличивающие риск

Действия, снижающие риск, разрешены всегда, даже в состоянии пред-ликвидации.

В блокчейне и вне блокчейна

КомпонентРасположениеПримечания
Мониторинг состоянияВне блокчейнаОпрос каждые 5 секунд
Переходы состоянийВне блокчейнаЛогируются и сохраняются
Таймер льготного периодаВне блокчейнаНастраиваемый
Исполнение аукционаВ блокчейнеПередача позиций через контракт Controller
РасчётВ блокчейнеПеревод стоимости и обновление корня маржи

Внесетевой движок отвечает за обнаружение и оркестрацию; исполнение в блокчейне обеспечивает финальность расчёта.


См. также: