Como executar TWAP e VWAP pela API da Hyperliquid
-
twap vwap hyperliquid
-
hyperliquid execution api
-
trading algorítmico twap
-
divisão de ordens grandes na hyperliquid
-
vwap em perpétuos on-chain
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.
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
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:
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.



