Esta página foi traduzida automaticamente. O original em inglês é a versão canônica. Ler em inglês →
Pular para o conteúdo principal

Liquidação e vencimento

Esta página trata das opções na Hypercall Exchange principal. Elas são de estilo europeu e liquidadas financeiramente em USDC. No vencimento, as posições são liquidadas automaticamente contra o preço de liquidação do ativo subjacente, e o valor de liquidação é creditado ou debitado da sua conta.

Horário de vencimento​

Ativos subjacentesHorário de vencimento
BTC, ETH08:00 UTC
Ações e índices (SPCX, SP500, BOT, MU, NVDA, META, MSFT, AAPL, SNDK, BABA)20:00 UTC

20:00 UTC corresponde a 16:00 no horário de Nova York enquanto o horário de verão dos EUA está em vigor. O vencimento é fixado em UTC, portanto não muda com o horário de verão.

No vencimento:

  • Novas ordens são rejeitadas
  • Ordens abertas são canceladas
  • As posições entram no processo de liquidação

O motor verifica instrumentos vencidos a cada minuto.

Ciclo de vida do instrumento​

Os instrumentos passam por três estados:

EstadoDescriçãoNegociação
ActiveNegociação normalHabilitada
Expired Pending PriceAguardando o preço de liquidaçãoDesabilitada
SettledLiquidação concluída, posições encerradasN/A

Transições de estado​

  1. Active para Expired Pending Price: o horário de vencimento do contrato foi atingido
  2. Expired Pending Price para Settled: o preço de liquidação está disponível e todas as posições foram liquidadas

Quando um instrumento entra em Expired Pending Price, todas as ordens abertas são canceladas e novas ordens são rejeitadas com "Instrument has expired".

Preço de liquidação​

O preço de liquidação é uma média robusta de 30 minutos do preço do oráculo da Hyperliquid para o ativo subjacente, calculada nos 30 minutos que terminam no vencimento.

ParâmetroValor
Fonte de preçoPreço do oráculo da Hyperliquid (oraclePx) para o perpétuo do ativo subjacente. BTC e ETH usam os perpétuos principais da Hyperliquid; ações e índices usam os perpétuos HIP-3 xyz, por exemplo xyz:NVDA.
Janela30 minutos, terminando no horário de vencimento
AmostragemCada atualização distinta do oráculo dentro da janela, pelo seu timestamp da Hyperliquid
Mínimo de amostras500
Cálculo da médiaMediana das médias aparada

Como a média é calculada​

  1. Coleta. A Hypercall registra cada novo preço do oráculo observado entre o vencimento menos 30 minutos e o vencimento. Leituras repetidas da mesma atualização contam uma única vez, e nada publicado após o vencimento é usado.
  2. Aparo. As amostras são ordenadas por preço e os 5% superiores e os 5% inferiores são descartados.
  3. Agrupamento. Os preços restantes são divididos em aproximadamente √n grupos e é calculada a média de cada grupo.
  4. Mediana dessas médias de grupo. Esse é o preço de liquidação.

O aparo e a mediana das médias tornam o preço difícil de mover com alguns poucos prints fora da curva perto do vencimento, ao mesmo tempo em que acompanham a janela inteira.

Se não houver amostras suficientes​

Uma janela com menos de 500 amostras nunca é usada. Se o próprio registro da Hypercall estiver incompleto (por exemplo, após um reinício dentro da janela), ela reconstrói a janela a partir de um histórico arquivado do mesmo preço do oráculo da Hyperliquid e aplica o mesmo mínimo de 500 amostras e o mesmo cálculo de média. Se nenhuma das fontes tiver amostras suficientes, o instrumento permanece em Expired Pending Price e a liquidação aguarda. A Hypercall não liquida com base em uma janela parcial nem em um preço de fallback.

Isso é diferente de como as posições são marcadas durante uma interrupção do oráculo. As verificações de margem e as liquidações de contas continuam avaliando as posições pelo último preço spot registrado, e ordens que aumentam o risco são rejeitadas quando esse preço tem mais de 30 segundos. Veja Modos de Falha. O último preço registrado nunca é usado como preço de liquidação.

Cálculo do valor de liquidação​

A liquidação é o valor intrínseco da opção ao preço de liquidação:

Opções de compra (calls):

Valor de liquidac¸a˜o=max⁡(0,S−K)×Q\text{Valor de liquidação} = \max(0, S - K) \times Q

Opções de venda (puts):

Valor de liquidac¸a˜o=max⁡(0,K−S)×Q\text{Valor de liquidação} = \max(0, K - S) \times Q

Onde:

  • SS = Preço de liquidação
  • KK = Preço de exercício (strike)
  • QQ = Tamanho da posição (com sinal: positivo para long, negativo para short)

Opções fora do dinheiro (OTM) são liquidadas a zero e removidas. O prêmio da opção é pago em caixa quando você negocia, então a liquidação movimenta apenas o valor intrínseco. Isso se aplica tanto a contas de margem padrão quanto a contas de margem de portfólio.

Exemplos​

Call comprada (ITM):

  • Posição: Long 2 BTC-100000-C
  • Preço de liquidação: $105,000
  • Intrínseco: max(0, 105000 - 100000) = $5,000
  • Valor de liquidação: 5,000×2=∗∗+5,000 × 2 = **+10,000** (creditado)

Call vendida (ITM):

  • Posição: Short 2 BTC-100000-C
  • Preço de liquidação: $105,000
  • Valor de liquidação: 5,000×−2=∗∗−5,000 × -2 = **-10,000** (debitado)

Put comprada (OTM):

  • Posição: Long 1 BTC-100000-P
  • Preço de liquidação: $105,000
  • Intrínseco: max(0, 100000 - 105000) = $0
  • Valor de liquidação: $0 (vence sem valor)

Processo de liquidação​

Quando a liquidação ocorre:

  1. Preço obtido: o preço de liquidação de 30 minutos finalizado
  2. Valor calculado: o valor intrínseco é calculado para cada posição
  3. Caixa movimentado: todas as opções de um mesmo ativo subjacente com o mesmo vencimento são liquidadas em um único lote, compensadas por conta
  4. Posição removida: a posição é encerrada e removida do portfólio
  5. Evento emitido: uma mensagem PositionExpired é enviada no canal WebSocket portfolio

A liquidação é processada com garantias de idempotência. Reprocessamentos ou reinícios não podem causar liquidação duplicada.

Quem paga, por modo de margem​

  • Margem padrão: uma conta que deve a liquidação a paga integralmente com seu caixa na Hypercall.
  • Margem de portfólio: uma conta que deve a liquidação paga primeiro com seu caixa na Hypercall e depois com um empréstimo do pool de empréstimos de PM. O que o pool não conseguir financiar se torna uma obrigação pendente, devida dentro do período de regularização. Veja Financiamento de PM.

Se um pagador de margem de portfólio no lote não puder pagar integralmente, as contas credoras nesse lote dividem o caixa arrecadado de forma proporcional, e o restante é registrado como um crédito pendente que é pago, com juros, à medida que o pagador quita a dívida. O instrumento é liquidado de qualquer forma; ele nunca fica parado por causa de uma obrigação não paga.

Eventos WebSocket​

PositionExpired​

Enviado no canal portfolio quando uma posição é liquidada:

{
"type": "PositionExpired",
"wallet_address": "0x...",
"symbol": "BTC-20250131-100000-C",
"position_size": "2",
"settlement_price": "5000",
"settlement_value": "10000",
"settlement_entry_price": "3200",
"cost_basis": "6400",
"net_pnl": "3600",
"timestamp": 1738310400000
}
CampoDescrição
position_sizeTamanho da posição com sinal (positivo = long, negativo = short)
settlement_priceValor intrínseco por contrato
settlement_valueValor total da liquidação em caixa
settlement_entry_priceSeu preço de entrada por contrato
cost_basisCusto base da posição na liquidação
net_pnlP&L da liquidação líquido do custo base, excluindo taxas

Mercado vencido​

Enviado no canal market_updates quando um instrumento vence:

{
"type": "MarketUpdate",
"action": "Expired",
"symbol": "BTC-20250131-100000-C",
"strike": "100000",
"is_call": true,
"underlying": "BTC",
"expiry": 1738310400,
"timestamp": 1738310400000
}

Endpoints da API​

Listar instrumentos por status​

GET /instruments?currency=BTC&status=EXPIRED_PENDING_PRICE

O padrão de status é ACTIVE. Passe EXPIRED_PENDING_PRICE, SETTLED, uma lista separada por vírgulas ou all.

Obter pagamentos de liquidação​

GET /settlement-payouts?wallet=0x...

Retorna os registros de liquidação da sua conta. Parâmetros opcionais: symbol, ledger_applied, limit (padrão 50, máximo 100) e offset.

Resposta:

{
"success": true,
"data": [
{
"id": 1,
"wallet": "0x...",
"symbol": "BTC-20250131-100000-C",
"expiry_ts": 1738310400,
"position_size": "2",
"settlement_price": "5000",
"settlement_value": "10000",
"settlement_entry_price": "3200",
"cost_basis": "6400",
"net_pnl": "3600",
"ledger_applied": true,
"is_seen": false,
"created_at": 1738310460000
}
],
"pagination": { "limit": 50, "offset": 0, "count": 1 },
"error": null
}

Tratamento de falhas​

Preço de liquidação indisponível​

Se o preço de liquidação não puder ser finalizado no vencimento:

  • O instrumento permanece em Expired Pending Price
  • A negociação já está bloqueada
  • O motor tenta novamente a cada verificação de vencimento, uma vez por minuto
  • O caixa só é movimentado depois que existir um preço de liquidação que atenda à regra de 500 amostras

Reinício do sistema​

O estado da liquidação é durável. Se o sistema reiniciar:

  • Os instrumentos vencidos são retomados na inicialização
  • A liquidação continua automaticamente
  • As garantias de idempotência impedem liquidação duplicada

Parâmetros​

ParâmetroValorDescrição
Intervalo de verificação de vencimento60 segundosCom que frequência o motor verifica vencimentos e tenta novamente liquidações pendentes
Janela de liquidação30 minutosTermina no horário de vencimento
Mínimo de amostras500Com menos amostras, a janela não é usada
Aparo5% em cada caudaRemovido antes do cálculo da média

Boas práticas​

  1. Monitore os vencimentos: acompanhe as datas de vencimento das suas posições pelo endpoint de portfólio
  2. Planeje com antecedência: encerre as posições antes do vencimento se quiser evitar a liquidação
  3. Observe os últimos 30 minutos: o preço de liquidação é definido pelo oráculo ao longo dessa janela, não pelo preço no instante do vencimento
  4. Assine o WebSocket: receba eventos PositionExpired em tempo real para notificação imediata
  5. Mantenha uma reserva de margem: mantenha caixa ou margem suficiente para possíveis liquidações de posições vendidas ITM

Veja também: