Ejecutar TWAP y VWAP con la API de Hyperliquid

6 may 2026
  • twap vwap hyperliquid

  • hyperliquid execution api

  • trading algorítmico TWAP

  • división de órdenes grandes en Hyperliquid

  • VWAP en perpetuos on-chain

Cuando una orden es lo suficientemente grande, ejecutarla directamente a mercado puede generar un impacto de precio considerable (market impact): tu propia orden de compra puede empujar el precio hacia arriba y hacer que el costo promedio termine siendo mucho mayor al esperado. Para resolver este problema, las mesas profesionales usan distintos algoritmos de ejecución. TWAP, o precio promedio ponderado por tiempo, y VWAP, o precio promedio ponderado por volumen, son dos de los más clásicos.

La API abierta de Hyperliquid permite que desarrolladores individuales implementen estos algoritmos también en mercados de perpetuos on-chain. En este artículo veremos sus principios, formas de implementación y escenarios de uso. Si no quieres escribir código, OneKey Perps ofrece una entrada práctica para operar perpetuos on-chain sin tener que construir tu propio motor de ejecución.

Qué es TWAP

La idea central de TWAP es dividir una orden grande en partes iguales a lo largo del tiempo. El sistema envía una orden pequeña cada cierto intervalo, de modo que el precio final de ejecución se acerque al precio promedio ponderado por tiempo durante ese periodo.

Ejemplo: si necesitas comprar 1 millón de dólares en contratos perpetuos de BTC durante 1 hora, un TWAP podría dividir la orden en 60 partes y ejecutar aproximadamente 16,700 dólares por minuto. Así, sin importar las fluctuaciones de corto plazo, el precio promedio final tenderá a parecerse al precio promedio de esa hora, evitando el impacto de una sola orden grande.

La ventaja de TWAP es que es simple de implementar y no depende de datos de volumen en tiempo real. Su desventaja es que no distingue entre momentos de alta y baja actividad: seguirá enviando órdenes incluso en periodos de poca liquidez, donde el deslizamiento puede ser mayor.

Qué es VWAP

VWAP va un paso más allá: no solo considera el tiempo, sino también el volumen negociado. El algoritmo estima la distribución histórica o en tiempo real del volumen y asigna más ejecución a los periodos con mayor actividad, y menos a los periodos con menor volumen. El objetivo es que el precio promedio de ejecución se acerque al precio promedio ponderado por volumen del mercado.

VWAP requiere datos históricos o en tiempo real de volumen, por lo que es más complejo que TWAP. Sin embargo, en mercados donde la liquidez se concentra en ciertos horarios, puede ayudar a reducir los costos de ejecución.

Por qué estas estrategias son importantes on-chain

En los mercados de perpetuos on-chain, la profundidad de liquidez y la eficiencia del descubrimiento de precio pueden variar mucho según la hora. Además, las características de un motor de emparejamiento on-chain hacen que el impacto de una orden grande sobre el libro pueda diferir ligeramente del de un exchange centralizado.

Revisar la documentación oficial de Hyperliquid ayuda a entender la profundidad del libro de órdenes y la estructura de comisiones, información clave para ajustar parámetros como tamaño de cada tramo, tolerancia de deslizamiento y duración total de la ejecución.

Comparación entre TWAP y VWAP

CriterioTWAPVWAP
Variable principalTiempoVolumen y tiempo
ComplejidadBajaMedia a alta
Datos necesariosPrecio y estado de la ordenDatos de volumen, trades y precio
Mejor usoEjecución simple y predecibleMercados con patrones claros de liquidez
Riesgo principalEjecutar en momentos de baja liquidezParámetros mal calibrados por datos incompletos

TWAP suele ser mejor punto de partida para desarrolladores individuales porque es más fácil de probar, auditar y mantener. VWAP puede ser más eficiente cuando tienes datos confiables y suficiente historial para estimar la distribución de volumen.

Implementar TWAP con la REST API de Hyperliquid

Idea básica

La lógica consiste en enviar subórdenes de forma repetida mediante el endpoint de órdenes de Hyperliquid, esperando un intervalo predefinido entre cada ejecución:

import time
import math

def execute_twap(exchange, info, coin, total_size, is_buy, duration_seconds, num_slices):
    """
    Divide total_size en num_slices órdenes iguales y las ejecuta
    durante duration_seconds segundos.
    """
    slice_size = total_size / num_slices
    interval = duration_seconds / num_slices

    for i in range(num_slices):
        # Obtener el precio de marca actual
        ctx = info.meta_and_asset_ctxs()
        mark_px = get_mark_price(ctx, coin)

        # Orden a mercado con tolerancia de deslizamiento.
        # También podría usarse una orden límite cerca del mejor bid/ask.
        result = exchange.market_open(
            coin=coin,
            is_buy=is_buy,
            sz=round(slice_size, 4),
            slippage=0.005  # 0.5% de tolerancia
        )

        print(f"[{i+1}/{num_slices}] Ejecución: {result}")

        if i < num_slices - 1:
            time.sleep(interval)

    print("Ejecución TWAP finalizada")

En un entorno de producción deberías agregar, como mínimo, lógica de reintentos ante errores, manejo de ejecuciones parciales y mecanismos de pausa cuando el mercado se mueve de forma extrema.

Mejora: usar órdenes límite para reducir costos

Cambiar cada suborden a una orden límite, con un precio ligeramente mejor que el mercado, puede reducir costos al buscar comisiones de maker. El riesgo es que la orden no se ejecute. Una solución común es usar un tiempo máximo de espera: si la orden límite no se llena dentro del plazo definido, se cancela y se reemplaza por una orden a mercado.

def place_with_timeout(exchange, coin, is_buy, sz, limit_px, timeout_seconds=30):
    result = exchange.order(
        coin=coin,
        is_buy=is_buy,
        sz=sz,
        limit_px=limit_px,
        order_type={"limit": {"tif": "Gtc"}}
    )

    oid = result["response"]["data"]["statuses"][0]["resting"]["oid"]

    time.sleep(timeout_seconds)

    # Revisar si la orden sigue abierta
    open_orders = get_open_orders(coin)

    if any(o["oid"] == oid for o in open_orders):
        exchange.cancel(coin=coin, oid=oid)

        # Completar el remanente con una orden a mercado
        exchange.market_open(
            coin=coin,
            is_buy=is_buy,
            sz=get_remaining_size(oid),
            slippage=0.01
        )

Este enfoque puede ser útil cuando quieres equilibrar costo y certeza de ejecución. Aun así, debes controlar cuidadosamente el tamaño de cada tramo, el tiempo de espera y la tolerancia de deslizamiento.

Calcular VWAP en tiempo real con datos de trades vía WebSocket

Para calcular VWAP necesitas acumular el precio multiplicado por volumen y dividirlo entre el volumen acumulado:

class VWAPTracker:
    def __init__(self):
        self.cumulative_pv = 0.0  # suma de price * volume
        self.cumulative_v = 0.0   # suma de volume

    def on_trade(self, price, size):
        self.cumulative_pv += price * size
        self.cumulative_v += size

    @property
    def vwap(self):
        if self.cumulative_v == 0:
            return None
        return self.cumulative_pv / self.cumulative_v

Al suscribirte por WebSocket al flujo de operaciones de Hyperliquid, cada trade puede activar el callback on_trade y actualizar el VWAP en tiempo real. Luego, el algoritmo de ejecución compara ese valor con el precio actual de mercado para decidir si enviar la siguiente suborden, ajustar el tamaño o esperar.

El formato completo de suscripción WebSocket debe revisarse en la documentación oficial de Hyperliquid.

Sugerencias para configurar parámetros

  • Duración total: cuanto más grande sea la orden en relación con la liquidez del mercado, más sentido tiene extender la ejecución.
  • Número de tramos: más tramos reducen el impacto por orden, pero aumentan la complejidad operativa y la exposición al movimiento del mercado.
  • Tamaño mínimo: evita tamaños demasiado pequeños que puedan generar ineficiencias por comisiones o restricciones del mercado.
  • Tolerancia de deslizamiento: debe ser suficiente para evitar rechazos frecuentes, pero no tan amplia como para aceptar ejecuciones claramente desfavorables.
  • Protección de precio: define un umbral de pausa o cancelación si el mercado se aleja demasiado del precio inicial.
  • Monitoreo: registra cada suborden, precio, tamaño, estado de ejecución, comisiones y motivo de cualquier error.

Comparación con otros algoritmos de ejecución en DEX

  • dYdX también permite colocar órdenes mediante REST API, por lo que puede implementarse una lógica TWAP similar.
  • GMX usa un mecanismo basado en oráculos de precio, así que el diseño de algoritmos de ejecución sigue una lógica distinta.
  • Hyperliquid utiliza un modelo de libro de órdenes más parecido al de exchanges centralizados, por lo que mucha experiencia práctica de TWAP y VWAP se puede adaptar de forma más directa.

¿No quieres escribir código? Prueba OneKey Perps

No todos los usuarios necesitan implementar algoritmos de ejecución desde cero. OneKey Perps ofrece una interfaz clara para operar perpetuos on-chain, combinada con la firma segura de una billetera hardware OneKey. Esto permite operar en Hyperliquid sin escribir scripts ni mantener infraestructura propia.

Para operaciones de tamaño medio, una alternativa práctica es usar órdenes límite y dividir manualmente la entrada o salida en varias partes. No es un TWAP automatizado, pero puede ayudar a reducir el impacto de mercado si se hace con disciplina.

Si buscas un flujo más simple, descarga o prueba OneKey, conecta tu billetera y usa OneKey Perps como punto de partida para operar perpetuos on-chain con mayor control sobre tus firmas y tu gestión de órdenes.

Preguntas frecuentes

Q1: ¿TWAP o VWAP conviene más en Hyperliquid?

Para la mayoría de los desarrolladores individuales, TWAP es más fácil de implementar y suele ser más confiable al inicio. VWAP puede funcionar mejor cuando el mercado tiene patrones de volumen claros, pero requiere análisis de datos históricos y parámetros más cuidadosos. Una ruta razonable es empezar con TWAP y, después de recolectar datos, probar VWAP.

Q2: ¿Un algoritmo de ejecución elimina por completo el impacto de mercado?

No. Puede reducirlo de forma significativa, pero no eliminarlo. El límite final depende de la relación entre el tamaño de tu orden y la liquidez disponible. El algoritmo distribuye la ejecución en el tiempo y busca mejores momentos de liquidez, pero no cambia las condiciones estructurales del mercado.

Q3: ¿Cómo se evalúa el rendimiento de la ejecución?

Normalmente se compara el precio promedio real de ejecución contra un benchmark, como el TWAP o VWAP del periodo. Esta diferencia suele analizarse como Implementation Shortfall. Lo recomendable es guardar el detalle de cada suborden y hacer una revisión posterior con precios, tamaños, comisiones y deslizamiento.

Q4: ¿Una billetera hardware OneKey puede integrarse con scripts de ejecución?

Sí. OneKey soporta interfaces estándar de firma de Ethereum. Un script de ejecución puede enviar los mensajes a firmar mediante un servicio local de firma hacia la billetera hardware y, una vez firmados, transmitirlos a Hyperliquid. Para escenarios de baja frecuencia como TWAP, la latencia de firma suele ser manejable.

Q5: ¿Qué hacer si el mercado se mueve con fuerza durante la ejecución?

Conviene definir protecciones de precio. Por ejemplo, si el precio de mercado se aleja más de un umbral predefinido respecto al precio inicial, como 2%, el sistema puede pausar o cancelar la ejecución. Esto ayuda a evitar seguir acumulando una posición en condiciones claramente adversas.

Conclusión

TWAP y VWAP son herramientas útiles para reducir el costo de ejecución de órdenes grandes. La API abierta de Hyperliquid permite aplicar estas técnicas también en mercados de perpetuos on-chain. Ya sea mediante código o dividiendo manualmente una operación en varias partes, la lógica es la misma: distribuir la ejecución, reducir el impacto y controlar mejor el costo promedio.

Si quieres una forma práctica de operar sin construir tu propio sistema, OneKey Perps es un buen punto de partida para acceder a perpetuos on-chain con una experiencia más simple y firma segura desde OneKey.

Aviso de riesgo: las estrategias algorítmicas de ejecución no garantizan operar a un precio específico. La volatilidad, la falta de liquidez o fallas técnicas pueden hacer que el costo real se desvíe significativamente de lo esperado. El trading de contratos perpetuos implica alto riesgo y puede causar pérdidas parciales o totales del capital. Este artículo es solo una referencia técnica y no constituye asesoría financiera, legal ni de inversión. Opera con prudencia y solo después de entender los riesgos.

Asegura tu viaje cripto con OneKey

View details for Comprar OneKeyComprar OneKey

Comprar OneKey

La cartera de hardware más avanzada del mundo.

View details for Descargar aplicaciónDescargar aplicación

Descargar aplicación

Alertas de estafa. Todas las monedas soportadas.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Claridad cripto — a una llamada de distancia.