Hyperfolio
Guía

Tick size y lot size Hyperliquid 2026: szDecimals explicado

Tick size y lot size en Hyperliquid: 5 cifras significativas, szDecimals, orden mínima de 10 $, valores en vivo de BTC/ETH/HYPE y script Python contra rechazos.

22 de octubre de 202610 min

Resumen rápido: un precio en Hyperliquid puede tener como máximo 5 cifras significativas y como máximo 6 − szDecimals decimales en perps (8 − szDecimals en spot). Los precios enteros siempre son válidos. El tamaño no puede tener más de szDecimals decimales. Además, la orden tiene que valer al menos 10 $. Si fallas en algo de esto, el exchange responde "Price must be divisible by tick size" u "Order must have minimum value of $10".

Hyperliquid no publica un tick size fijo por mercado como muchos exchanges centralizados. El tick sale de dos reglas y del precio actual, así que cambia cuando una moneda cruza una potencia de diez. Eso pilla por sorpresa a quien programa bots o manda órdenes por API. En esta guía explicamos las reglas de la documentación oficial, mostramos los valores en vivo que sacamos de la API el 22 de octubre de 2026 (sobre las 07:05 UTC), repasamos los errores típicos y te damos un pequeño script en Python que redondea precios y tamaños bien. Si solo quieres ver las órdenes, posiciones y PnL de una wallet, Hyperfolio lo muestra en modo solo lectura, sin API keys.

De dónde sale szDecimals

Cada activo tiene un valor szDecimals. En perps está en el array universe de la petición info meta (o metaAndAssetCtxs). En spot está en cada token de spotMeta, y el que cuenta es el token base del par. szDecimals manda en las dos reglas: es el lot size (el paso de tamaño es 10^−szDecimals) y limita cuántos decimales puede tener el precio.

En nuestra foto, los 178 perps activos del DEX principal se reparten así: 98 tienen szDecimals = 0 (solo unidades enteras), 51 tienen 1, 22 tienen 2, 5 tienen 3, ETH tiene 4 y BTC tiene 5. Es decir, la mayoría de perps se operan en monedas enteras y los caros en fracciones muy pequeñas.

Regla 1: el precio (tick size)

Según la documentación de la API de Hyperliquid, un precio es válido cuando:

  • tiene como máximo 5 cifras significativas, y
  • tiene como máximo MAX_DECIMALS − szDecimals decimales, donde MAX_DECIMALS es 6 en perps y 8 en spot, y
  • como excepción, un precio entero siempre es válido, tenga las cifras significativas que tenga. 123456 vale aunque 12345.6 no.

Así que el tick efectivo es el mayor de dos pasos: el que permiten 5 cifras significativas al precio actual y 10^−(MAX_DECIMALS − szDecimals). Por encima de 100.000 $ el tick es directamente 1 $, porque solo caben enteros.

Ejemplos de la documentación (perps)

  • 1234.5 es válido, 1234.56 no (6 cifras significativas).
  • 0.001234 es válido, 0.0012345 no (más de 6 decimales).
  • Con szDecimals = 1, 0.01234 es válido pero 0.012345 no (más de 6 − 1 = 5 decimales).

Regla 2: el tamaño (lot size)

Los tamaños se redondean a los szDecimals del activo. Con szDecimals = 3, 1.001 es válido y 1.0001 no. Con szDecimals = 0 solo puedes operar unidades enteras: 8 XRP, nunca 8,5.

Regla 3: el mínimo de 10 $

La lista de errores de la documentación incluye MinTradeNtl, "Order must have minimum value of $10", y en spot MinTradeSpotNtl, "Order must have minimum value of 10 {quote_token}". Como el tamaño se redondea al paso de lote, la orden válida más pequeña suele quedar algo por encima de 10 $. Redondea hacia arriba, no hacia abajo, y deja un pequeño margen si el precio se está moviendo.

Valores en vivo: foto del 22 de octubre de 2026

Mark prices de metaAndAssetCtxs sobre las 07:05 UTC. La columna de tick aplica las reglas anteriores a ese precio, y el tamaño mínimo es el menor tamaño redondeado al lote que vale al menos 10 $ al mark. Comprobamos los ticks contra el l2Book en vivo: BTC tenía niveles en 82.465, 82.462, 82.461; ETH en 2.430,9 y 2.430,8; HYPE en 78,637 y 78,636; kPEPE en 0,004487 y 0,004486; XRP en 1,3399 y 1,3398.

PerpMark priceszDecimalsLot sizeTick sizeTick en % del precioTamaño mínimo para 10 $
BTC82.453,150,0000110,0012%0,00013
ETH2.430,4540,00010,10,0041%0,0042
SOL104,4320,010,010,0096%0,10
HYPE78,61920,010,0010,0013%0,13
XRP1,3395010,00010,0075%8
DOGE0,079639010,0000010,0013%126
kPEPE0,004486010,0000010,022%2.230

Hay dos cosas que llaman la atención. Primero, el tick de kPEPE lo limita la regla de 6 decimales y no las cifras significativas, así que es relativamente grueso (unos 2,2 puntos básicos). Segundo, el tick cambia con el precio: si XRP bajara de 1 $, 5 cifras significativas permitirían 0,99999 y el tick pasaría de 0,0001 a 0,00001. Si ETH superara los 10.000 $, su tick pasaría de 0,1 a 1. No fijes los ticks en el código: calcúlalos a partir del precio.

Ejemplos con números

  • BTC a 82453.5: 6 cifras significativas y no es entero, así que se rechaza. Manda 82453 o 82454.
  • ETH a 2430.45: 6 cifras significativas, rechazado. Manda 2430.4 o 2430.5.
  • HYPE a 78.6197: rechazado. Con 5 cifras significativas queda 78.620, que se envía como 78.62.
  • kPEPE a 0.0044865: 7 decimales, rechazado. Manda 0.004486 o 0.004487.
  • Tamaño de SOL 1.234: szDecimals = 2, rechazado. Manda 1.23.
  • Tamaño de XRP 7: el lote es válido, pero 7 × 1,3395 = 9,38 $, por debajo del mínimo de 10 $. Manda 8.
  • Token spot con szDecimals = 2: el precio puede tener hasta 8 − 2 = 6 decimales, siempre con el tope de 5 cifras significativas.

Las órdenes de mercado, los TP/SL y los precios con slippage también se redondean

Una orden de mercado en Hyperliquid es una orden límite agresiva con un precio tope (lo vemos en la guía de tipos de órdenes). Ese precio tope tiene que cumplir las mismas reglas. El SDK oficial de Python lo hace en su función de mercado: mueve el mid según el slippage y luego redondea a 5 cifras significativas y a 6 − szDecimals decimales en perps (8 en spot). Si calculas tú un precio de slippage o de trigger, por ejemplo mid × 1.03, redondéalo igual antes de enviarlo. Lo mismo vale para los precios de activación de TP/SL (guía de TP/SL).

Ceros finales y trampas de los float

La documentación de firmas cita los ceros finales como una causa habitual de errores de firma, y la página de tick size dice que hay que quitarlos. Manda "78.62", no "78.620". La función float_to_wire del SDK formatea con 8 decimales, lanza un error si eso cambia el valor y quita los ceros finales. Dos costumbres más ayudan:

  • Primero redondea con las reglas y luego formatea. Los float binarios como 0.1 + 0.2 no son exactos, así que pasa por un string o por Decimal al construir el valor que se envía.
  • Guarda en caché los szDecimals de meta al arrancar y refréscalos de vez en cuando, porque llegan listados nuevos y los valores pueden cambiar. Cada llamada a meta consume peso de petición (mira los rate limits).

Script en Python

Este script lee metaAndAssetCtxs, calcula el tick, el lote y el mínimo de 10 $ para varias monedas, e incluye las funciones round_px y round_sz para reutilizarlas. Solo lee datos públicos. Para mandar órdenes reales, empieza en la testnet y sigue nuestra guía de la API de Hyperliquid con Python.

import math
import requests

INFO = "https://api.hyperliquid.xyz/info"

def post(body):
    return requests.post(INFO, json=body, timeout=10).json()

def tick_size(px, sz_decimals, is_spot=False):
    """Smallest valid price step at this price level."""
    max_dec = (8 if is_spot else 6) - sz_decimals
    if px >= 1e5:                       # integer prices are always allowed
        return 1.0
    sig_step = 10 ** (math.floor(math.log10(px)) - 4)   # 5 significant figures
    return max(sig_step, 10 ** -max_dec)

def round_px(px, sz_decimals, is_spot=False):
    if px >= 1e5:
        return float(round(px))
    max_dec = (8 if is_spot else 6) - sz_decimals
    return round(float(f"{px:.5g}"), max_dec)

def round_sz(sz, sz_decimals):
    return round(sz, sz_decimals)

def min_size(px, sz_decimals, min_notional=10.0):
    step = 10 ** -sz_decimals
    return math.ceil(min_notional / px / step) * step

if __name__ == "__main__":
    meta, ctxs = post({"type": "metaAndAssetCtxs"})
    for a, c in zip(meta["universe"], ctxs):
        if a["name"] in ("BTC", "ETH", "SOL", "HYPE", "XRP", "DOGE", "kPEPE"):
            px, d = float(c["markPx"]), a["szDecimals"]
            print(f'{a["name"]:6} px={px:<12} szDecimals={d} lot={10**-d:g} '
                  f'tick={tick_size(px, d):g} min_size_$10={min_size(px, d):.{d}f}')

Salida del 22 de octubre de 2026, 07:04 UTC:

BTC    px=82453.1      szDecimals=5 lot=1e-05 tick=1 min_size_$10=0.00013
ETH    px=2430.45      szDecimals=4 lot=0.0001 tick=0.1 min_size_$10=0.0042
SOL    px=104.43       szDecimals=2 lot=0.01 tick=0.01 min_size_$10=0.10
DOGE   px=0.079639     szDecimals=0 lot=1 tick=1e-06 min_size_$10=126
kPEPE  px=0.004486     szDecimals=0 lot=1 tick=1e-06 min_size_$10=2230
XRP    px=1.3395       szDecimals=0 lot=1 tick=0.0001 min_size_$10=8
HYPE   px=78.619       szDecimals=2 lot=0.01 tick=0.001 min_size_$10=0.13

Un detalle: al redondear un precio al tick más cercano, elige la dirección a propósito. En una compra pasiva, redondea hacia abajo para no cruzar el spread sin querer (una orden post-only que cruzaría se rechaza con BadAloPx). En una compra límite agresiva, redondea hacia arriba para que el tope siga siendo al menos tan generoso como querías.

La agregación del libro no es el tick size

La petición l2Book y el feed de libro por WebSocket aceptan un parámetro opcional nSigFigs (de 2 a 5) que agrupa niveles. Con nSigFigs = 3, los niveles de BTC salían en 82.400, 82.300 y 82.200 en nuestra prueba. Es solo una agrupación visual: el tick operable sigue siendo 1 $. Los feeds del libro están en la guía de la API WebSocket.

Por qué importa también a traders, no solo a bots

  • Coste de cruzar: con un tick grueso como el de kPEPE, el spread mínimo ronda los 2,2 puntos básicos, que se suman a las comisiones y al slippage.
  • Cuentas pequeñas: el mínimo de 10 $ y los lotes enteros deciden la posición más pequeña que puedes abrir, algo a tener en cuenta cuando dimensionas con una calculadora de tamaño de posición.
  • Bots de grid y market making: los pasos de grid que no son múltiplos del tick se rechazan o tu código los redondea sin avisar. Mira la guía de market making.

Preguntas frecuentes

¿Cuál es el tick size en Hyperliquid?

No hay una tabla fija. Un precio puede tener hasta 5 cifras significativas y hasta 6 − szDecimals decimales en perps (8 − szDecimals en spot), y los enteros siempre valen. El 22 de octubre de 2026 eso suponía 1 $ en BTC, 0,1 $ en ETH y 0,001 $ en HYPE.

¿Qué significa "Price must be divisible by tick size"?

Que tu precio tiene demasiadas cifras significativas o demasiados decimales para ese activo. Redondea a 5 cifras significativas, luego a 6 − szDecimals decimales (8 − szDecimals en spot) y quita los ceros finales.

¿Cuál es el tamaño mínimo de orden en Hyperliquid?

La orden tiene que valer al menos 10 $ (10 unidades del token de cotización en spot) y el tamaño tiene que ser múltiplo del paso de lote 10^−szDecimals. Con BTC a unos 82.450 $ eran 0,00013 BTC.

¿Dónde encuentro szDecimals?

En el array universe de la respuesta info meta para perps, y en cada token de spotMeta para spot.

¿El tick size cambia?

Sí, con el precio. Cuando una moneda cruza una potencia de diez, la regla de 5 cifras significativas da otro paso. Por ejemplo, ETH por encima de 10.000 $ pasaría a un tick de 1 $.

¿Me afecta si opero desde la app de Hyperliquid?

La app redondea por ti. Estas reglas importan cuando usas la API, un bot o un front-end de terceros, o cuando te preguntas por qué se ajustó un precio límite.

Mira qué hicieron de verdad tus órdenes. Pega cualquier wallet en Hyperfolio y sigue posiciones, fills y PnL en una sola vista de solo lectura, gratis. ¿Operas en Hyperliquid? Usa el código HYPERFOLIO para un 4% de descuento en comisiones (cómo funciona el referido).

Prueba Hyperfolio gratis

Trackea tu portfolio Hyperliquid en tiempo real con PnL, Smart Money, Markets, Perp Calculator, portfolio multi-venue y alertas push.

HYPERLIQUID

-4% fees

Operar en Hyperliquid · 4% menos en fees

Hyperfolio es una app independiente, gratis y sin suscripción. Nos financiamos con referidos de Hyperliquid, espacio de publicidad y donaciones; agradecemos de verdad que operes con nuestro link.

Usar referido

Gratis para ti · mantiene Hyperfolio en marcha

Artículos relacionados

Guía

Mapa de liquidaciones de Hyperliquid: niveles reales (2026)

Construye un mapa de liquidaciones de Hyperliquid con posiciones reales on-chain en lugar de heatmaps estimados. Ejemplo con fecha de las 300 cuentas más grandes el 2 nov 2026, cómo leer clústeres y concentración, y un script en Python.

Guía

Mejor hora para tradear en Hyperliquid: horas y días (2026)

Cuándo se concentran el volumen y la volatilidad en Hyperliquid por hora UTC y día de la semana, medido con 672 velas horarias (4 oct a 1 nov 2026) de BTC, ETH, HYPE y SOL, qué implica para slippage, stops y funding, y un script en Python.

Guía

Ratio long/short en Hyperliquid: posicionamiento (2026)

Por qué el ratio long/short de todo Hyperliquid siempre es 1, cómo medirlo para un grupo de wallets con datos públicos, un ejemplo fechado con el top 100 del leaderboard y un script en Python.

Guía

Ratio de Sharpe en Hyperliquid: rentabilidad ajustada (2026)

Calcula los ratios de Sharpe y Sortino de cualquier wallet o vault de Hyperliquid con el endpoint público portfolio: la trampa de depósitos y retiradas, ejemplos fechados del leaderboard y de HLP y un script en Python.

Guía

Correlación y beta en Hyperliquid: cómo cubrir perps (2026)

Mide la correlación y la beta en Hyperliquid con la API pública de velas: matrices fechadas a 30 y 90 días de BTC, ETH, HYPE, SOL, XRP y DOGE, tres ejemplos de cartera y cobertura y un script en Python.

Guía

Volatilidad y ATR en Hyperliquid: stops, tamaño y apalancamiento

Mide tú mismo la volatilidad de Hyperliquid con la API pública de velas: volatilidad realizada y ATR de BTC, ETH, HYPE, SOL, XRP y DOGE en una captura fechada, con ejemplos de stop, tamaño y apalancamiento y un script en Python.