Saltar al contenido

    Pulsa / para buscar, y [ o ] para ir a la página anterior o siguiente.

    Cómo funciona por dentro

    PnL con impacto asimétrico

    Cómo salda el Exchange un cierre y dónde toma el protocolo su parte de una operación.

    Las posiciones se abren al precio medio de Hyperliquid, y un cierre usa el precio medio del bloque en que se ejecuta. No hay spread, ni slippage, ni funding, ni comisión sobre el tamaño de la posición, ni gas a tu cargo. A una pérdida nunca se le cobra más que la pérdida: mientras la cola está vacía, su comisión sale de lo que recibe el LP, y mientras hay reclamos en cola, no se cobra.

    En un cierre ganador, el protocolo aplica a la ganancia un recorte de impacto asimétrico. No es una comisión sobre tu nocional ni un spread sobre el precio: multiplica la ganancia por un factor que depende de cuánto se movió el precio entre la entrada y la salida. En una ganancia muy pequeña se lleva la mayor parte; a medida que el movimiento crece, se lleva menos. Un cierre ganador pasa por cuatro pasos, en orden:

    1. Zona muerta. La ganancia se mide como si la salida fuera un 0.002% del precio de entrada (la entrada dividida por 50,000) menos favorable. Una ganancia menor queda en cero.
    2. Retención. Si el precio se movió una cantidad dentro de la banda de la curva de pago vigente, el movimiento se recorta un poco más antes de calcular nada más.
    3. Impacto. La ganancia restante se escala con la fórmula de abajo.
    4. Comisión por ganancia. El 2% de la ganancia escalada es la comisión; tú recibes el resto. Un cierre firmado con una clave de sesión que indica un builder aprobado también le paga a ese builder el 0.5% de la ganancia escalada (consulta Códigos de builder); las claves de la propia app no indican ninguno.

    Dos curvas de pago

    El contrato fija dos curvas de pago. Solo se diferencian en la banda de movimientos que retienen:

    Curva Banda de movimientos de precio retenidos Retención máxima
    Estándar 0.0075%–0.06% 0.0118% con un movimiento de 0.0338%
    Fuera de horario 0.003%–0.1% 0.0204% con un movimiento de 0.0418%

    La curva fuera de horario se aplica en períodos tranquilos, como fines de semana y noches, cuando el libro de órdenes es más delgado. Un keeper dedicado cambia entre las dos según un calendario publicado; puede elegir una de estas dos curvas y nada más, y todos los cierres de una misma transacción se saldan con la misma curva. Fuera de la banda, y en sus bordes, no se retiene nada. Dentro de ella, un movimiento mayor siempre paga más.

    Propiedades

    • Asimétrica. Solo se escalan los cierres ganadores. Los cierres con pérdida no pagan nada extra.
    • Según el movimiento, no según la posición. La parte que se conserva no depende de si cierras una posición pequeña o grande. Un nocional de referencia por mercado fija la pendiente; el tamaño de tu operación no entra en el cálculo.
    • Los movimientos mayores conservan más. El recorte se reduce de forma suave a medida que crece el movimiento, hasta un techo: una ganancia nunca conserva más del 90% antes de la comisión. Dentro de la banda de retención, la parte que se conserva es menor que la de la curva suave, pero el pago sigue subiendo con cada tick del movimiento.

    La fórmula

    Todos los valores son enteros y cada división redondea hacia abajo. Los precios son brutos (el precio de Hyperliquid por la escala de precio del mercado); los valores wad llevan 18 decimales, así que 1e18 es uno.

    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
    

    La retención de una curva con banda (a, z) (en millonésimas del precio de entrada) y escala k, para un movimiento de precio favorable p = |exit − entry| dentro de la banda, en unidades brutas, con u la posición de p dentro de la banda:

    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
    

    Cada paso redondea hacia abajo. h está en unidades brutas escaladas por 1e18; la única división por entry de arriba convierte el movimiento retenido en un wad. pnl en sí nunca se retiene: es lo que el evento de cierre informa como ganancia.

    A medida que crece el movimiento, ambos términos se reducen, el denominador se acerca a uno y la parte conservada se acerca a 1 − b. Cuando el movimiento se acerca a cero, los términos crecen sin límite y la ganancia escalada cae hacia cero; si el denominador de cualquiera de los dos términos redondea a cero, la escala es cero. Una pérdida es simplemente min(N · |exit − entry| / entry, margin), sin zona muerta y sin escala.

    Parámetros desplegados

    Parámetro BTC ETH
    Zona muerta 0.002% 0.002%
    Tasa base b 10% 10%
    Multiplicador de tasa rm 15,000 15,000
    Multiplicador de posición pm 814.598 483.979
    Nocional de referencia rn $100,000 $100,000

    Lo que eso significa para quien gana, contando la zona muerta:

    Movimiento del precioGanancia conservada · BTCGanancia conservada · 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%
    Parte de la ganancia bruta que conserva un cierre ganador después de la zona muerta y la escala de impacto, antes de la comisión por ganancia. Calculada con los parámetros desplegados; la parte no depende del tamaño de la posición.

    Por qué el término de tamaño es fijo

    En una versión de esta curva que dependiera del tamaño, el segundo término crecería con el nocional real de la posición, así que las operaciones más grandes perderían una parte mayor de su ganancia. Con este apalancamiento, eso empujaría a los traders a abrir muchas posiciones pequeñas (más transacciones, más estado, más gas) sin mejorar la economía de nadie. Aquí, en cambio, el segundo término usa un nocional de referencia fijo por mercado, así que el recorte es el mismo porcentaje para cualquier tamaño de posición.

    Por qué este diseño

    Con este apalancamiento, ni una comisión sobre el nocional ni un spread sobre el precio podrían sostener un LP: o serían demasiado pequeños para importar o demasiado grandes para que alguien los pagara. La escala de impacto pone el costo donde escala con el resultado: la ganancia de una operación ganadora. Las pérdidas nunca pagan extra.

    La curva también pone fricción en las ganancias pequeñas, incluidas las que podrían venir de distorsionar el libro por un momento. Pero no es una comprobación de precio, y no hace que la manipulación deje de ser rentable; consulta Riesgos.

    Del PnL al pago

    El resultado ajustado entra en las reglas de cierre de Solvencia y cola: una ganancia se paga como adjusted menos la comisión por ganancia (y la comisión de builder, cuando hay builder), o va a la cola cuando al LP le falta efectivo; una pérdida entra en el LP menos la comisión por pérdida, o en la reserva aparte mientras hay reclamos en cola. La app y los servicios usan una versión en TypeScript de estas fórmulas que se comprueba, wei por wei, contra vectores de prueba generados por los contratos y contra valores observados on-chain.

    Última actualización: