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 subjacentes | Horário de vencimento |
|---|---|
| BTC, ETH | 08: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:
| Estado | Descrição | Negociação |
|---|---|---|
| Active | Negociação normal | Habilitada |
| Expired Pending Price | Aguardando o preço de liquidação | Desabilitada |
| Settled | Liquidação concluída, posições encerradas | N/A |
Transições de estado
- Active para Expired Pending Price: o horário de vencimento do contrato foi atingido
- 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âmetro | Valor |
|---|---|
| Fonte de preço | Preç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. |
| Janela | 30 minutos, terminando no horário de vencimento |
| Amostragem | Cada atualização distinta do oráculo dentro da janela, pelo seu timestamp da Hyperliquid |
| Mínimo de amostras | 500 |
| Cálculo da média | Mediana das médias aparada |
Como a média é calculada
- 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.
- Aparo. As amostras são ordenadas por preço e os 5% superiores e os 5% inferiores são descartados.
- Agrupamento. Os preços restantes são divididos em aproximadamente √n grupos e é calculada a média de cada grupo.
- 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):
Opções de venda (puts):
Onde:
- = Preço de liquidação
- = Preço de exercício (strike)
- = 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: 10,000** (creditado)
Call vendida (ITM):
- Posição: Short 2 BTC-100000-C
- Preço de liquidação: $105,000
- Valor de liquidação: 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:
- Preço obtido: o preço de liquidação de 30 minutos finalizado
- Valor calculado: o valor intrínseco é calculado para cada posição
- 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
- Posição removida: a posição é encerrada e removida do portfólio
- Evento emitido: uma mensagem
PositionExpiredé enviada no canal WebSocketportfolio
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
}
| Campo | Descrição |
|---|---|
position_size | Tamanho da posição com sinal (positivo = long, negativo = short) |
settlement_price | Valor intrínseco por contrato |
settlement_value | Valor total da liquidação em caixa |
settlement_entry_price | Seu preço de entrada por contrato |
cost_basis | Custo base da posição na liquidação |
net_pnl | P&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âmetro | Valor | Descrição |
|---|---|---|
| Intervalo de verificação de vencimento | 60 segundos | Com que frequência o motor verifica vencimentos e tenta novamente liquidações pendentes |
| Janela de liquidação | 30 minutos | Termina no horário de vencimento |
| Mínimo de amostras | 500 | Com menos amostras, a janela não é usada |
| Aparo | 5% em cada cauda | Removido antes do cálculo da média |
Boas práticas
- Monitore os vencimentos: acompanhe as datas de vencimento das suas posições pelo endpoint de portfólio
- Planeje com antecedência: encerre as posições antes do vencimento se quiser evitar a liquidação
- 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
- Assine o WebSocket: receba eventos
PositionExpiredem tempo real para notificação imediata - Mantenha uma reserva de margem: mantenha caixa ou margem suficiente para possíveis liquidações de posições vendidas ITM
Veja também:
- Liquidação: O que acontece se a margem for insuficiente
- Margem de portfólio: Como as posições afetam a margem
- Financiamento de PM: Como as contas de margem de portfólio pagam a liquidação
- Margem padrão: Cálculo de margem por posição