Короткий ответ
Hyperliquid считает её как liq_price = price - side * margin_available / position_size / (1 - l * side), где side это 1 для лонга и -1 для шорта, l это единица, делённая на поддерживающее плечо, а margin_available это стоимость счёта минус требуемая поддерживающая маржа для кросс-позиции или изолированная маржа минус это же требование для изолированной. Поддерживающая маржа это половина начальной маржи на максимальном плече актива, что ставит её между 1,25 % номинала на активе 40x и 16,7 % на активе 3x.
Словами: возьмите цену, по которой оценивают позицию, и сдвиньте её на ту маржу, которую вы ещё можете потерять, разложенную по размеру, с небольшой поправкой, потому что само поддерживающее требование уменьшается, пока цена идёт против вас.
Четыре входа
price: маркировочная цена, по которой оценивают позицию.position_size: размер в единицах актива, а не в долларах.side: 1 для лонга, -1 для шорта.margin_available: стоимость счёта минус требуемая поддерживающая маржа для кросс-позиции; изолированная маржа минус это же требование для изолированной.l: единица, делённая на поддерживающее плечо, которое вдвое больше максимального плеча актива. На активе с уровнями маржи поддерживающее плечо берут у того уровня, в который попадает стоимость позиции по цене ликвидации.
Разобранный пример
Возьмём рынок, где максимальное плечо 20. Начальная маржа на этом плече это 5 % номинала, значит поддерживающая маржа 2,5 %, поддерживающее плечо 40, а l равно 0,025.
Откройте лонг на 0,1 единицы по маркировочной цене 100 000, изолированно, с плечом десять.
| Шаг | Цифра |
|---|---|
| Номинал | 0.1 x 100,000 = 10,000 |
| Изолированная маржа, при 10x | 10,000 / 10 = 1,000 |
| Требуемая поддерживающая маржа, 2,5 % | 0.025 x 10,000 = 250 |
| Доступная маржа | 1,000 - 250 = 750 |
| Цена ликвидации, лонг | 100,000 - 750 / 0.1 / 0.975 = 92,307.69 |
Лонг ликвидируют на 92 307,69, примерно на 7,7 % ниже входа. Та же позиция в шорт, с side равным -1, даёт 100,000 + 750 / 0.1 / 1.025, то есть 107 317,07, примерно на 7,3 % выше входа. Эта несимметричность и есть поправочный член, а не комиссия.
Держите её вместо этого в кроссе, на счёте стоимостью 1000 без других позиций, и цифры будут те же. При стоимости счёта 2000 margin_available становится 1750, а цена ликвидации падает до 82 051,28. Именно это имеет в виду документация, когда говорит, что цена ликвидации кросс-позиции не зависит от заданного плеча: цену двигает только обеспечение, которое стоит за ней.
Почему оценка это не срабатывание
- До открытия показанная оценка зависит от ликвидности в стакане в этот момент, и документация говорит, что она может быть неточной.
- Когда позиция открыта, платежи фандинга двигают стоимость вашего счёта каждый час, как и нереализованный результат ваших других кросс-позиций.
- При недостатке маржи оценка предполагает, что счёт пополнен до требования по начальной марже.
- Уровни маржи делают поддерживающее плечо зависимым от стоимости позиции по цене ликвидации, так что крупную позицию судят по более строгому уровню, чем мелкую.
- Комиссий и фандинга в формуле нет вовсе. Со счёта они всё равно уходят и тем самым двигают цену, которая срабатывает.
Ликвидации используют маркировочную цену, которая соединяет цены внешних бирж с состоянием собственного стакана Hyperliquid. В волатильный день она может стоять далеко от последней сделки, так что ликвидация может сработать по цене, которой ваш график никогда не печатал. Документация советует следовать точной формуле, а не уровню на графике.
Что считает этот сайт, а что оставляет в стороне
Калькулятор лестницы расставляет ступени позиции, построенной ступенями, и сообщает запас до ликвидации при полной лестнице, на той же арифметике, что и код агента. Он не считает комиссии, фандинг за время удержания и проскальзывание; первые два считает калькулятор стоимости позиции.
Собственная оценка агента следует формуле выше, а поддерживающее плечо актива читается у площадки. Она остаётся оценкой, и именно поэтому пилот подбирает размер позиции так, чтобы при всех заполненных ступенях цена ещё могла уйти против неё на 100 % до любой ликвидации. Смысл в запасе, а не в последнем знаке после запятой.