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

    Нажмите /, чтобы искать, и [ или ], чтобы перейти к предыдущей или следующей странице.

    Как это устроено

    PnL с асимметричным влиянием

    Как Exchange рассчитывает закрытие и где протокол берёт свою долю со сделки.

    Позиции открываются по средней цене Hyperliquid, а закрытие использует среднюю цену того блока, в котором исполняется. Нет ни спреда, ни проскальзывания, ни фандинга, ни комиссии с размера позиции, и газ с вас не берут. За убыток никогда не берут больше самого убытка: пока очередь пуста, комиссия с него вычитается из того, что получает LP, а пока в очереди есть требования, она не взимается.

    При прибыльном закрытии протокол применяет к прибыли асимметричный дисконт влияния. Это не комиссия с номинала и не спред к цене: прибыль умножается на коэффициент, который зависит от того, насколько цена сдвинулась между входом и выходом. С очень маленькой прибыли он забирает большую часть; чем больше движение, тем меньше он забирает. Прибыльное закрытие проходит четыре шага по порядку:

    1. Мёртвая зона. Прибыль считается так, будто цена выхода на 0.002% от цены входа (цена входа, делённая на 50,000) хуже. Меньшая прибыль обращается в ноль.
    2. Удержание. Если цена сдвинулась на величину внутри полосы действующей кривой выплат, движение ещё немного укорачивается, прежде чем считать что-то дальше.
    3. Влияние. Оставшаяся прибыль масштабируется по формуле ниже.
    4. Комиссия с прибыли. 2% от скорректированной прибыли — это комиссия; остальное получаете вы. Закрытие, подписанное сеансовым ключом, в котором указан одобренный билдер, ещё и платит этому билдеру 0.5% от скорректированной прибыли (см. Коды билдеров); собственные ключи приложения билдера не указывают.

    Две кривые выплат

    В контракте зафиксированы две кривые выплат. Они различаются только полосой движений, на которых делается удержание:

    Кривая Полоса движений цены с удержанием Наибольшее удержание
    Стандартная 0.0075%–0.06% 0.0118% при движении на 0.0338%
    Внерабочая 0.003%–0.1% 0.0204% при движении на 0.0418%

    Внерабочая кривая действует в спокойные периоды, например по выходным и ночью, когда стакан тоньше. Отдельный кипер переключается между ними по опубликованному расписанию; он может выбрать одну из этих двух кривых и ничего больше, а все закрытия в одной транзакции рассчитываются по одной кривой. Вне полосы и на её границах ничего не удерживается. Внутри неё большее движение всё равно всегда приносит больше.

    Свойства

    • Асимметрия. Масштабируются только прибыльные закрытия. Убыточные закрытия не платят ничего сверх убытка.
    • Зависит от движения, а не от позиции. Сохраняемая доля не зависит от того, закрываете вы маленькую позицию или большую. Крутизну задаёт эталонный номинал для каждого рынка; размер вашей сделки в расчёт не входит.
    • Чем больше движение, тем больше остаётся. Дисконт плавно уменьшается с ростом движения, но есть потолок: до комиссии прибыль никогда не сохраняет больше 90%. Внутри полосы удержания сохраняемая доля ниже, чем на гладкой кривой, но выплата всё равно растёт с каждым тиком движения.

    Формула

    Все значения — целые числа, и каждое деление округляется вниз. Цены сырые (цена Hyperliquid, умноженная на ценовой масштаб рынка); значения в формате wad имеют 18 знаков после запятой, так что 1e18 — это единица.

    db       = entry / D                                  deadband in raw units, D = deadbandDivisor
    d        = |exit − entry| − db                        zero or less: no gain
    pnl      = N · d / entry                              N = margin × leverage
    move     = d · 1e18 / entry                           the move beyond the deadband, as a wad
    lo, hi   = entry · a / 1e6, entry · z / 1e6           the curve's band in raw units; in band when lo < |exit − entry| < hi
    move     = (d · 1e18 − h) / entry                     in band, h the holdback (below); zero or less: no gain
    gain     = N · move / 1e18   in band, else pnl
    term1    = 1e36 / (move · rm / 1e18)                  rm = rateMultiplier
    term2    = rn · 1e18 / (1e6 · move · pm / 1e18)       rn = referenceNotional, pm = positionMultiplier
    scale    = (1e18 − b) · 1e18 / (1e18 + term1 + term2) b = baseRate
    adjusted = gain · scale / 1e18
    

    Удержание кривой с полосой (a, z) (в миллионных долях цены входа) и масштабом k для благоприятного движения цены p = |exit − entry| внутри полосы, в сырых единицах, где u — положение p в полосе:

    w = hi − lo,   u = (p − lo) · 1e18 / w,   v = 1e18 − u,   t = u · v / 1e18
    standard:   h = k · w · (t · t / 1e18) / 1e18                  k = 3.597 · 1e18
    off-hours:  h = k · w · ((t · t / 1e18) · v / 1e18) / 1e18     k = 6.085 · 1e18
    

    Каждый шаг округляется вниз. h — в сырых единицах, масштабированных на 1e18; единственное деление на entry выше превращает удержанное движение в wad. Сам pnl никогда не удерживается: именно его событие закрытия сообщает как прибыль.

    С ростом движения оба слагаемых уменьшаются, знаменатель стремится к единице, а сохраняемая доля — к 1 − b. Когда движение стремится к нулю, слагаемые неограниченно растут, и скорректированная прибыль падает к нулю; если знаменатель любого из слагаемых округляется до нуля, масштаб равен нулю. Убыток — это просто min(N · |exit − entry| / entry, margin), без мёртвой зоны и без масштабирования.

    Развёрнутые параметры

    Параметр BTC ETH
    Мёртвая зона 0.002% 0.002%
    Базовая ставка b 10% 10%
    Множитель ставки rm 15,000 15,000
    Множитель позиции pm 814.598 483.979
    Эталонный номинал rn $100,000 $100,000

    Что это значит для выигравшего, с учётом мёртвой зоны:

    Движение ценыОстаётся прибыли · BTCОстаётся прибыли · ETH
    2 bp20.3%16%
    5 bp54.6%48.1%
    10 bp73.9%69%
    25 bp82.9%80.4%
    50 bp86.4%85%
    100 bp88.1%87.4%
    200 bp89.1%88.7%
    500 bp89.6%89.5%
    Доля исходной прибыли, которая остаётся при прибыльном закрытии после мёртвой зоны и коэффициента влияния, до комиссии с прибыли. Рассчитано по развёрнутым параметрам; доля не зависит от размера позиции.

    Почему слагаемое размера фиксировано

    В версии этой кривой, зависящей от размера, второе слагаемое растёт вместе с фактическим номиналом позиции, так что крупные сделки теряют большую долю прибыли. При таком плече это подталкивало бы трейдеров дробить сделки на множество мелких позиций (больше транзакций, больше состояния, больше газа), ничего не улучшая в экономике. Здесь второе слагаемое вместо этого использует фиксированный эталонный номинал для каждого рынка, поэтому дисконт в процентах одинаков для позиции любого размера.

    Почему так устроено

    При таком плече ни комиссия с номинала, ни спред к цене не смогли бы прокормить LP: они были бы либо слишком малы, чтобы что-то значить, либо слишком велики, чтобы кто-то их платил. Коэффициент влияния помещает стоимость туда, где она масштабируется с результатом, — в прибыль выигравшей сделки. Убытки никогда не платят сверх себя.

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

    От PnL к выплате

    Скорректированный результат попадает в правила расчёта из раздела Платёжеспособность и очередь: выигрыш выплачивается как adjusted минус комиссия с прибыли (и комиссия билдера, если билдер есть) или встаёт в очередь, когда LP не хватает денег; убыток идёт в LP за вычетом комиссии с убытка или в отдельный резерв, пока в очереди есть требования. Приложение и сервисы используют порт этих формул на TypeScript, который сверяется до последнего wei с тестовыми векторами, сгенерированными контрактами, и со значениями, наблюдаемыми ончейн.

    Обновлено: