> For the complete documentation index, see [llms.txt](https://docs.nexus.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nexus.xyz/exchange/pt-br/trading/trading/perpetuals/liquidations.md).

# Liquidações

Quando uma posição é liquidada, como calcular o seu próprio preço de liquidação, a ordem que o motor envia e a cascata que absorve um déficit.

A liquidação protege a plataforma contra a insolvência. Quando uma conta não consegue mais sustentar suas posições abertas, o motor de risco as fecha e, se o fechamento deixar um déficit, absorve esse déficit por meio de uma cascata fixa: primeiro o fundo de seguro, depois as contrapartes lucrativas e, por fim, a suspensão do mercado.

O motor da exchange aplica tudo o que está nesta página. A derivação formal, com fórmulas numeradas, está no [capítulo de liquidação do Math Engine](https://docs.nexus.xyz/math-engine/liquidation-engine). Os rótulos de fórmula abaixo, como (L.1), (L.4) e (L.7), se referem a ele.

### A condição de disparo

Uma conta é liquidada quando o seu patrimônio cai até **ou abaixo** da sua margem de manutenção total:

```
liquidate  ⟺  equity ≤ Σ maintenance_margin                            (L.4)
```

**O limite é inclusivo.** Um patrimônio exatamente igual à margem de manutenção é liquidado. Uma conta sem posições abertas nunca é liquidada.

Os dois lados são recalculados a partir do preço de marca atual em cada avaliação:

```
equity             = collateral + Σ size × (mark − entry) × direction   (L.1, L.2)
maintenance_margin = size × mark × maintenance_margin_rate              (L.3)
```

Três detalhes mudam a resposta na prática:

* **O patrimônio leva o financiamento em conta.** O financiamento acumulado que é devido a você conta a favor do patrimônio, e o financiamento que você deve conta contra ele. Uma conta que parece estar no vermelho antes do financiamento pode estar saudável depois dele, e vice-versa.
* **A margem de manutenção acompanha o preço de marca.** Ela é uma fração do valor nocional ao preço de marca *atual*, não ao de entrada. Portanto, um preço de marca em queda reduz a exigência sobre uma posição long ao mesmo tempo em que reduz o patrimônio. Os dois lados se movem, e só a diferença entre eles importa.
* **Um preço de marca igual a zero ou abaixo disso é tratado como ausente** e o preço de entrada é usado no lugar, o que torna o PnL não realizado dessa posição exatamente zero. Essa é a sentinela de inicialização sem estado para "ainda sem envio do oráculo". Sem ela, uma posição long mostraria uma perda fantasma catastrófica contra um preço de marca zero.

### Quando a liquidação é pausada

A liquidação depende de um preço de marca confiável, então a plataforma para de liquidar quando não tem um.

Se nenhuma atualização de preço aceita chegar para um mercado dentro de `oracle_staleness_seconds`, que é de **30 segundos em todos os mercados listados**, a política de preço desatualizado desse mercado entra em vigor. A política padrão, que é a que todos os mercados listados executam, **falha de forma fechada** (fails closed):

| Enquanto o preço de marca estiver desatualizado    |                                                                  |
| -------------------------------------------------- | ---------------------------------------------------------------- |
| Liquidações                                        | **Pausadas**                                                     |
| Ordens que aumentam o risco                        | **Rejeitadas**                                                   |
| Ordens que reduzem o risco e ordens apenas reduzir | Continuam aceitas                                                |
| Ordens de liquidação já em andamento               | Continuam aceitas                                                |
| Recuperação                                        | **Automática** no próximo preço atualizado, sem ação de operador |

Duas consequências decorrem disso para um trader. Você **não pode ser liquidado com um preço de marca congelado**. Um feed desatualizado não deve liquidar ninguém com base em um preço que talvez já não seja real. Você também **não pode aumentar a exposição** nesse mercado enquanto ele estiver desatualizado, porque uma conta que não pode ser liquidada não deve ter permissão para crescer.

Isso é diferente de uma suspensão. Um mercado desatualizado se recupera sozinho quando os preços voltam; um mercado suspenso exige que um operador o retome.

### Como calcular o seu próprio preço de liquidação

A plataforma nem sempre informa esse número, por isso vale a pena calculá-lo você mesmo. Consulte [Por que a API pode não informar um preço de liquidação](#why-the-api-may-not-give-you-a-liquidation-price).

Comece pelo **preço de falência**, o preço de marca no qual a perda da posição esgota exatamente a garantia que a sustenta:

```
p_bankruptcy = entry − direction × collateral / size                    (L.7)
```

`direction` é `+1` para uma posição long e `−1` para uma posição short. Resolver (L.4) na igualdade em função do preço de marca dá o **preço de liquidação**, o preço de marca no qual o disparo ocorre:

```
p_liquidation = p_bankruptcy / (1 − direction × maintenance_margin_rate)
```

Para uma posição long, o preço de liquidação fica **acima** do preço de falência: você é liquidado enquanto ainda resta garantia, e a distância entre os dois preços é o colchão que a taxa de margem de manutenção compra. Para uma posição short, a ordem se inverte. O Math Engine enuncia isso como um invariante: `p_bankruptcy < p_liquidation < mark` para uma posição long saudável.

> **Esta forma fechada é exata para uma única posição.** Para uma conta com margem cruzada que mantém várias posições, não existe preço de liquidação por posição: o patrimônio depende do preço de marca de todos os mercados ao mesmo tempo, então uma posição pode ser liquidada por um movimento em um mercado que você nem está acompanhando. Somente a condição no nível da conta (L.4) é bem definida. Use `POST /orders/preview` para uma projeção com várias posições em vez de aplicar a fórmula posição por posição.

**A alavancagem não aparece na fórmula.** O preço de liquidação é definido pela taxa de margem de *manutenção* e pela sua garantia, e a alavancagem não afeta nenhuma das duas. Aumentar a alavancagem permite abrir uma posição maior com a mesma garantia, e essa posição *maior* tem o seu próprio preço de liquidação. A alavancagem nunca move o preço de liquidação de uma posição que você já mantém. Consulte [Margem](/exchange/pt-br/trading/trading/perpetuals/margining.md).

### Exemplo prático

Este exemplo usa uma posição em `BTC-USDX-PERP` e os parâmetros desse mercado: `initial_margin_rate = 0.02`, `maintenance_margin_rate = 0.01`, `tick_size = 0.5`, `liquidation_sweep_depth_bps = 500`.

> **As taxas de margem são configuradas por mercado e são ajustadas entre versões.** Leia as que se aplicam a você em `GET /markets/{market_id}/risk-params`, e não neste exemplo. A aritmética abaixo é o método, não uma cotação.

Você deposita **2.000 USDX** e abre um **long de 1 BTC a 60.000**.

| Etapa                          | Valor                                 |
| ------------------------------ | ------------------------------------- |
| Margem inicial necessária      | `1 × 60,000 × 0.02` = **1.200,00**    |
| Garantia livre após a abertura | `2,000 − 1,200` = **800,00**          |
| Preço de falência (L.7)        | `60,000 − 2,000 / 1` = **58.000,00**  |
| Preço de liquidação            | `58,000 / (1 − 0.01)` = **58.585,86** |

Verificando a condição de disparo nesse preço de marca: o PnL não realizado é `1 × (58,585.86 − 60,000)` = **−1.414,14**, então o patrimônio é `2,000 − 1,414.14` = **585,86**, e a margem de manutenção é `1 × 58,585.86 × 0.01` = **585,86**. O patrimônio é exatamente igual à margem de manutenção, e o limite é inclusivo, então a posição é liquidada nesse preço de marca, e não um tick abaixo.

O preço de falência **não** depende da taxa de margem de manutenção. Só a sua garantia o define. A taxa decide apenas o quanto acima dele a liquidação é disparada. Uma taxa de manutenção mais alta afasta mais o preço de liquidação do preço de falência e, portanto, mais para dentro da sua posição.

Toda a garantia de **2.000 USDX** sustenta a posição, não apenas os 1.200 de margem inicial. É isso que margem cruzada significa. Os 800 livres são colchão para esta posição, e é por isso que o preço de falência é 58.000, e não 58.800.

### A ordem que o motor envia

A liquidação fecha a posição contra o livro de ofertas, em duas tentativas limitadas.

1. **Ordem primária.** Uma ordem **limite IOC apenas reduzir** ao preço de falência, alinhada ao tick no sentido da executabilidade (uma venda arredonda para baixo, cedendo no máximo um tick). Como é uma ordem limite, ela é executada **somente ao preço de falência ou melhor**. Uma execução melhor que esse limite gera lucro de spread, que é creditado ao fundo de seguro.
2. **Varredura de backstop.** Se a ordem primária expirar com quantidade não executada, o motor envia **exatamente uma** ordem limite IOC de acompanhamento a `mark × (1 ∓ liquidation_sweep_depth_bps / 10,000)`. Em todos os mercados listados essa profundidade é de **500 bps**, então a varredura alcança 5% além do preço de marca e não vai além disso. Isso limita o slippage realizado da liquidação à profundidade definida pela política de cada mercado.

Continuando o exemplo, com o preço de marca em 58.585,86:

| Tentativa | Lado  | Quantidade | Preço limite                                                                |
| --------- | ----- | ---------- | --------------------------------------------------------------------------- |
| Primária  | Venda | 1 BTC      | **58.000,0** (o preço de falência, já alinhado ao tick)                     |
| Varredura | Venda | restante   | `58,585.86 × 0.95` = 55.656,57, alinhado ao tick para baixo em **55.656,5** |

Execuções piores que o preço de falência só podem vir da varredura. Elas se tornam **dívida incobrável** e entram na cascata abaixo. A varredura é totalmente suprimida quando a profundidade não é positiva, quando não resta nada a fechar ou quando o mercado não tem um preço de marca utilizável.

**Dimensionamento.** Todos os mercados listados rodam no modo **Full** hoje: a liquidação fecha a posição inteira. O motor também implementa o modo **Partial**, que fecha apenas o excesso acima do maior tamanho que a garantia sustenta a 1,5× a taxa de margem inicial, deixando um restante saudável ((L.10), (L.11)). Nenhum mercado listado está configurado para usá-lo.

### O que absorve um déficit

Se o fechamento deixar a conta com um déficit de caixa, a cascata é executada em uma ordem fixa.

| Degrau | Absorve                                                                                                                                                                                                       | Esgotado ou indisponível →                                                                             |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| 1      | Lucro de spread das execuções melhores que o preço de falência                                                                                                                                                | creditado ao fundo de seguro                                                                           |
| 2      | **Fundo de seguro**. Consulte o [capítulo do fundo de seguro do Math Engine](https://docs.nexus.xyz/math-engine/insurance-fund)                                                                               | próximo degrau                                                                                         |
| 3      | **Desalavancagem automática** contra contrapartes lucrativas                                                                                                                                                  | próximo degrau                                                                                         |
| 4      | **Suspensão do mercado**: `adl_exhausted` quando o conjunto de contrapartes não consegue cobrir a posição residual; `uncovered_system_loss` quando o déficit é em caixa e não resta posição para desalavancar | registrado como um passivo explícito no livro-razão, nunca cunhado nem descartado; a retomada é manual |

Um mercado suspenso para de negociar até que um operador o retome. `uncovered_system_loss` também exige que a perda pendente seja quitada antes da retomada. Esses são 2 dos **7** motivos pelos quais um mercado pode ser suspenso; os outros são ação de operador, uma falha ao aplicar a posição no meio de uma execução, o [circuit breaker de movimento máximo](/exchange/pt-br/trading/trading/perpetuals/discovery-bounds.md), um reinício do ator de risco cujo estado o supervisor não conseguiu comprovar como atual e uma divergência de parâmetros de mercado após o commit.

### Desalavancagem automática

Quando o fundo de seguro não consegue absorver o déficit, a posição residual é fechada contra contrapartes lucrativas do outro lado. Isso está ativo em todos os mercados listados.

**Para ser selecionado, você precisa manter uma posição que esteja** no mesmo mercado, no lado oposto ao da posição falida, e **lucrativa ao preço de marca**. Uma posição com prejuízo nunca é desalavancada. Contas reservadas do sistema nunca são selecionadas, e a busca se limita a contas com exposição ativa naquele mercado.

A ordem de seleção segue uma pontuação de prioridade, em ordem decrescente, com empates exatos resolvidos pelo identificador de conta em ordem crescente, para que a ordenação seja determinística em um replay:

```
priority_score = pnl_percent × leverage                                 (L.12)

pnl_percent = unrealized_pnl / (size × entry)
leverage    = size × mark / initial_margin_required
```

**O tamanho da posição não determina o seu lugar na fila.** O que determina é o lucro percentual, multiplicado pela alavancagem. Considere dois shorts a um preço de marca de 58.585,86 em `BTC-USDX-PERP`:

| Contraparte | Tamanho | Entrada | PnL não realizado | PnL % | Alavancagem | Pontuação  |
| ----------- | ------- | ------- | ----------------- | ----- | ----------- | ---------- |
| **A**       | 0,5 BTC | 61.000  | 1.207,07          | 3,96% | 48,02×      | **1,9005** |
| **B**       | 2 BTC   | 59.000  | 828,28            | 0,70% | 49,65×      | 0,3485     |

A tem um quarto do tamanho de B e menos de uma vez e meia o seu lucro, mas é desalavancada **primeiro**. A sua entrada está longe o bastante do preço de marca para que o seu retorno percentual seja mais de cinco vezes o de B, com praticamente a mesma alavancagem.

Os dois são shorts, e os dois precisam estar **lucrativos ao preço de marca** para serem elegíveis. Um short com entrada *abaixo* de 58.585,86 está com prejuízo aqui e nunca é selecionado, por maior ou mais alavancado que seja.

**O que você cede é limitado ao seu lucro não realizado** na parte desalavancada. Esse lucro cobre a dívida incobrável. Uma contraparte também é avaliada em relação ao preço pelo qual será fechada, e não apenas pelo preço de marca usado na sua pontuação, então um candidato cuja posição seria apurada com prejuízo é excluído, em vez de ser desalavancado com prejuízo.

Consulte: `GET /markets/{market_id}/adl-events` para o histórico de um mercado, `GET /account/{address}/adl-history` para o seu próprio.

### Por que a API pode não informar um preço de liquidação

O objeto `Position` tem um campo `liquidationPrice`, e ele é `null` com frequência. Quando é, um campo irmão informa o motivo.

* **`GET /positions` é servido pelo indexador**, que não espelha o estado do módulo de margem. Nessa leitura, `liquidationPrice` é `null` e `liquidationPrice_error` é **sempre** `margin_state_not_mirrored`. O mesmo vale para `leverage`, que atualmente é sempre `null`.
* **`GET /account` é repassado pelo motor**, que mantém o estado de margem, e não traz o campo irmão de erro.
* **`POST /orders/preview`** retorna `projected_post_trade_liquidation_price` junto com `required_initial_margin` e `projected_post_trade_equity`, projetados para uma ordem antes que você a envie.

Projete o seu cliente levando em conta duas consequências. Um preço de liquidação `null` significa *não calculado*, nunca *não pode ser liquidada*, então não o trate como sinal de segurança. E **zero é um preço real**. Uma posição cujo preço de liquidação é zero, na prática, não pode ser liquidada. O campo não sobrecarrega mais `"0"` para indicar ausência, então agora os dois casos podem ser diferenciados.

Não derive a alavancagem de `initialMargin`. Isso se reduz a `1 / initial_margin_rate`, uma constante por mercado, e não a sua alavancagem real.

### Assunção de posição (takeover)

O motor implementa um modelo alternativo no qual uma posição liquidada é transferida atomicamente, por inteiro, para uma conta de liquidação reservada por mercado, em vez de ser fechada contra o livro dentro da chamada de liquidação. Ele é habilitado por classe de risco por meio de `TAKEOVER_ENABLED_CLASSES`.

**Nenhum ambiente o habilita.** Todos os 32 mercados configurados são da classe de risco `core`, a variável não está definida em nenhum manifesto de implantação, e não definida significa que nenhuma classe está habilitada. Portanto, toda liquidação hoje segue o caminho de fechamento no livro descrito acima. Esta página vai mudar quando a assunção de posição for ativada.

> **A conta de liquidação é uma conta interna do motor,** uma por mercado, derivada sob um prefixo de identificador reservado. Ela faz parte do motor da exchange, não é um endereço externo, e nunca é selecionada como contraparte de [desalavancagem automática](#auto-deleveraging). Consulte [Arquitetura](/exchange/pt-br/overview/architecture.md).

### Como reduzir o seu risco de liquidação

* **Adicione garantia.** Cada unidade de garantia livre afasta o preço de falência e, portanto, o preço de liquidação.
* **Reduza o tamanho.** Fechar parte de uma posição diminui a exigência de manutenção proporcionalmente.
* **Acompanhe o preço de marca, não a última negociação.** A liquidação é avaliada em relação ao [preço de marca](/exchange/pt-br/trading/trading/perpetuals/price-oracles.md), que por construção é 95% preço de índice. Uma negociação em um livro raso não liquida você; um movimento no índice, sim.
* **Faça uma prévia antes de enviar.** `POST /orders/preview` informa o preço de liquidação projetado e o patrimônio após a negociação para uma ordem, sem enviá-la.
* **Lembre-se de que a margem cruzada é compartilhada.** Um único conjunto de garantias sustenta todas as posições. Uma perda em um mercado consome o colchão de todas elas.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.nexus.xyz/exchange/pt-br/trading/trading/perpetuals/liquidations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
