Como executar TWAP e VWAP pela API da Hyperliquid

Atualizado em 11 de mai. de 2026

Quando uma ordem é grande o suficiente, executar tudo a mercado pode causar um impacto relevante no preço (market impact): a própria ordem de compra empurra o preço para cima, elevando o custo médio acima do esperado. Para lidar com isso, mesas profissionais usam algoritmos de execução. Entre os mais clássicos estão o TWAP, preço médio ponderado pelo tempo, e o VWAP, preço médio ponderado pelo volume. Source: Hyperliquid docs.

A API aberta da Hyperliquid permite que desenvolvedores individuais implementem esses algoritmos no mercado de perpétuos on-chain. Neste artigo, vamos explicar como TWAP e VWAP funcionam, como implementá-los de forma prática e em quais cenários cada abordagem tende a fazer mais sentido. Para quem não quer escrever código, o OneKey Perps oferece um caminho mais simples para operar perpétuos on-chain, sem precisar criar a própria infraestrutura de execução.

O que é TWAP

TWAP significa Time-Weighted Average Price, ou preço médio ponderado pelo tempo. A ideia central é simples: dividir uma ordem grande em várias ordens menores, distribuídas de forma uniforme ao longo de um período.

Exemplo: suponha que você queira comprar US$ 1 milhão em contratos perpétuos de BTC ao longo de 1 hora. Uma execução TWAP poderia dividir a ordem em 60 partes, enviando uma ordem de cerca de US$ 16,7 mil por minuto. Assim, independentemente das oscilações pontuais, o preço médio final tende a ficar próximo do preço médio daquele intervalo, reduzindo o impacto de uma única ordem grande no livro.

A principal vantagem do TWAP é a simplicidade: ele não depende de dados de volume em tempo real. A desvantagem é que ele não diferencia períodos de alta e baixa liquidez. Mesmo em horários menos líquidos, o algoritmo continuará enviando ordens no mesmo ritmo, o que pode aumentar o slippage.

O que é VWAP

VWAP significa Volume-Weighted Average Price, ou preço médio ponderado pelo volume. Ele vai um passo além do TWAP: em vez de distribuir a execução apenas pelo tempo, o algoritmo também considera o volume negociado no mercado.

Na prática, uma estratégia VWAP estima a distribuição histórica ou atual de volume ao longo do período de execução. Em momentos de maior volume, ela executa uma parcela maior da ordem; em momentos de menor volume, reduz o tamanho das ordens. O objetivo é aproximar o preço médio de execução do VWAP do mercado.

O VWAP exige dados de volume em tempo real ou histórico e costuma ser mais complexo de implementar do que o TWAP. Em mercados nos quais a liquidez varia bastante ao longo do dia, porém, ele pode ajudar a reduzir custos de execução.

Por que essas estratégias importam em perpétuos on-chain

Em mercados de perpétuos on-chain, a profundidade de liquidez e a eficiência de descoberta de preço podem variar bastante conforme o horário, o ativo e as condições gerais do mercado. Além disso, o funcionamento de um motor de matching on-chain ou híbrido pode fazer com que o impacto de uma ordem grande no livro seja diferente do observado em corretoras centralizadas tradicionais.

A documentação oficial da Hyperliquid deve ser consultada para entender detalhes como profundidade do livro, tipos de ordem, limites e estrutura de taxas. Esses dados são importantes para definir parâmetros como tamanho das fatias, intervalo entre ordens, tolerância de slippage e regras de pausa.

TWAP vs. VWAP

CritérioTWAPVWAP
Base do algoritmoTempoVolume negociado
ComplexidadeMenorMaior
Dados necessáriosPreço e tempoPreço, volume histórico e/ou em tempo real
Melhor usoExecuções simples e previsíveisMercados com variação clara de liquidez
Risco principalExecutar em horários de baixa liquidezModelo de volume mal calibrado
Facilidade para desenvolvedores individuaisAltaMédia a alta

Para a maioria dos usuários técnicos que estão começando, TWAP costuma ser o primeiro passo mais razoável. VWAP faz mais sentido quando você já tem dados suficientes para entender o comportamento de volume do ativo e sabe validar se a execução está realmente melhorando.

Implementando TWAP com a REST API da Hyperliquid

Ideia básica

A lógica é enviar subordens em loop pela interface de ordens da Hyperliquid, aguardando um intervalo fixo entre cada envio:

import time
import math

def execute_twap(exchange, info, coin, total_size, is_buy, duration_seconds, num_slices):
    """
    Executa total_size em num_slices ordens iguais ao longo de duration_seconds segundos.
    """
    slice_size = total_size / num_slices
    interval = duration_seconds / num_slices

    for i in range(num_slices):
        # Obtém o preço de marcação atual
        ctx = info.meta_and_asset_ctxs()
        mark_px = get_mark_price(ctx, coin)

        # Ordem a mercado com tolerância de slippage
        # Também é possível usar ordens limitadas próximas ao book
        result = exchange.market_open(
            coin=coin,
            is_buy=is_buy,
            sz=round(slice_size, 4),
            slippage=0.005  # 0,5% de tolerância de slippage
        )

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

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

    print("Execução TWAP concluída")

Em produção, esse tipo de script precisa de proteções adicionais, como:

  • lógica de novas tentativas em caso de erro;
  • tratamento de ordens parcialmente executadas;
  • controle de tamanho mínimo por ordem;
  • limite de slippage;
  • pausa automática em caso de volatilidade extrema;
  • registro detalhado de cada execução para auditoria posterior.

Melhoria: usar ordens limitadas para reduzir custo

Trocar cada subordem de mercado por uma ordem limitada pode reduzir custos, especialmente quando há possibilidade de capturar taxa de maker. O trade-off é o risco de a ordem não ser executada.

Uma abordagem comum é usar um mecanismo de timeout: se a ordem limitada não for preenchida dentro de um período definido, o script cancela a ordem e envia uma ordem de mercado para completar a fatia restante.

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)

    # Verifica se a ordem ainda está aberta
    open_orders = get_open_orders(coin)

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

        # Completa a parte restante com ordem a mercado
        exchange.market_open(
            coin=coin,
            is_buy=is_buy,
            sz=get_remaining_size(oid),
            slippage=0.01
        )

Essa lógica deve ser adaptada ao tamanho da posição, à liquidez do ativo e à urgência da execução. Quanto mais agressiva for a conversão para mercado, maior a chance de execução completa, mas também maior o risco de slippage.

Calculando VWAP em tempo real com dados de WebSocket

Para calcular VWAP, é necessário acumular preço vezes volume e dividir pelo volume total negociado:

class VWAPTracker:
    def __init__(self):
        self.cumulative_pv = 0.0  # soma de price * volume
        self.cumulative_v = 0.0   # soma 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

Ao assinar o fluxo de negociações da Hyperliquid via WebSocket, cada trade recebido pode acionar o callback on_trade, atualizando o VWAP em tempo real. A estratégia de execução, então, compara o VWAP calculado com o preço atual de mercado para decidir quando e como enviar a próxima subordem.

A especificação exata de assinatura WebSocket, campos de trade e formato das mensagens deve ser conferida na documentação oficial da Hyperliquid, pois esses detalhes podem mudar com o tempo.

Sugestões de parâmetros

Os parâmetros dependem do ativo, da liquidez e do tamanho relativo da ordem. Como ponto de partida técnico, considere:

ParâmetroSugestão prática
Número de fatiasMais fatias reduzem impacto, mas aumentam complexidade e exposição ao tempo
Intervalo entre ordensDeve refletir a liquidez média e a urgência da execução
Slippage máximoDeve ser definido antes da execução e respeitado pelo script
Timeout de ordem limitadaCurto demais pode virar mercado com frequência; longo demais pode deixar a execução incompleta
Limite de variação de preçoPausar se o mercado se mover contra a execução além de um limite predefinido
Tamanho mínimo por ordemDeve respeitar limites do mercado e evitar ordens economicamente ineficientes

Uma boa prática é começar com tamanhos pequenos, registrar todos os resultados e comparar a execução real com um benchmark de TWAP ou VWAP antes de aumentar o volume.

Comparação com outros algoritmos em DEXs

  • dYdX também oferece APIs de ordem e pode ser usado para implementar uma lógica semelhante de TWAP.
  • GMX usa um modelo baseado em oráculos de preço, então a lógica de execução e o impacto esperado podem ser diferentes.
  • A Hyperliquid usa um modelo de livro de ofertas mais próximo do observado em corretoras centralizadas, o que torna a experiência de TWAP/VWAP mais diretamente transferível para quem já conhece execução em order book.

Não quer programar? Use o OneKey Perps

Nem todo usuário precisa criar um algoritmo de execução do zero. O OneKey Perps oferece uma interface simples para negociar perpétuos on-chain, com a segurança de assinatura de uma carteira de hardware OneKey. Para quem opera na Hyperliquid e quer uma experiência mais prática, isso reduz a necessidade de manter scripts, infraestrutura, chaves em ambiente de execução e monitoramento próprio.

Para ordens de porte médio, uma alternativa simples é usar o OneKey Perps para executar manualmente em partes, com ordens limitadas e controle de preço. Essa abordagem não substitui um algoritmo profissional, mas pode ajudar a reduzir impacto de mercado sem exigir código.

Se você procura um fluxo mais seguro e direto para negociar perpétuos on-chain, baixe ou experimente a OneKey e acesse o OneKey Perps. Use com cautela, defina limites antes de operar e evite aumentar tamanho de posição apenas porque a interface facilita a execução.

Perguntas frequentes

Q1: TWAP ou VWAP: qual é melhor para usar na Hyperliquid?

Para a maioria dos desenvolvedores individuais, TWAP é mais fácil de implementar e mais confiável como ponto de partida. VWAP pode funcionar melhor quando há padrões de volume mais previsíveis no mercado, mas exige análise histórica, dados em tempo real e calibração mais cuidadosa. Uma abordagem prudente é começar com TWAP e só avançar para VWAP depois de acumular dados suficientes.

Q2: algoritmos de execução eliminam totalmente o impacto de mercado?

Não. Eles podem reduzir o impacto, mas não eliminá-lo. O limite real depende da relação entre o tamanho da ordem e a liquidez disponível. O papel do algoritmo é distribuir a execução ao longo do tempo e, no caso do VWAP, em períodos de maior volume, não garantir um preço específico.

Q3: como avaliar se a execução foi boa?

Uma métrica comum é comparar o preço médio efetivo da execução com um benchmark, como o TWAP ou VWAP do período. Essa diferença costuma ser analisada como Implementation Shortfall. Para isso, registre cada subordem, horário, preço, quantidade, taxa e status de execução.

Q4: uma carteira de hardware OneKey pode ser integrada a scripts de execução?

Sim. A OneKey suporta interfaces padrão de assinatura Ethereum. Um script pode enviar a mensagem a ser assinada para um serviço local de assinatura conectado à carteira de hardware e, depois da confirmação, transmitir a ordem para a Hyperliquid. Em estratégias de baixa frequência, como TWAP com intervalos maiores, a latência da assinatura tende a ser menos relevante.

Q5: o que fazer se o mercado se mover muito durante a execução?

É recomendável definir proteções de preço. Por exemplo, se o preço de mercado se afastar mais de um limite predefinido em relação ao início da execução, como 2%, o script pode pausar automaticamente e aguardar estabilização ou encerrar a execução. Isso ajuda a evitar continuar acumulando posição em um cenário muito desfavorável.

Conclusão

TWAP e VWAP são ferramentas úteis para reduzir custo de execução em ordens grandes. Com a API aberta da Hyperliquid, essas técnicas também podem ser aplicadas ao mercado de perpétuos on-chain. Seja por código ou por execução manual em partes, a lógica principal é a mesma: distribuir a ordem no tempo, reduzir impacto no livro e buscar um custo médio mais controlado.

Para quem prefere uma experiência mais simples, o OneKey Perps é um bom ponto de partida prático para operar perpétuos on-chain com uma carteira OneKey, sem precisar implementar algoritmos próprios.

Aviso de risco: estratégias algorítmicas de execução não garantem preenchimento a um preço específico. Volatilidade, baixa liquidez, falhas técnicas e atrasos de assinatura ou transmissão podem fazer o custo real ficar muito diferente do esperado. A negociação de contratos perpétuos envolve alto risco e pode causar perda parcial ou total dos fundos. Este conteúdo é apenas uma referência técnica e não constitui aconselhamento financeiro, jurídico ou de investimento. Avalie os riscos e opere de acordo com sua própria situação.

Proteja sua jornada criptográfica com o OneKey

View details for Comprar OneKeyComprar OneKey

Comprar OneKey

A carteira de hardware mais avançada do mundo.

View details for Transferir aplicaçãoTransferir aplicação

Transferir aplicação

Negocie ativos globais. Comece em poucos minutos, apenas com o seu email.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Clareza Cripto—A uma chamada de distância.