Kaique Mitsuo Silva Yamamoto
CriptoTrading automatizado

ADL: O Risco Oculto em Automação de Derivativos

O que é Auto-Deleveraging (ADL), como funciona o mecanismo de desalavancagem automática das exchanges, como o crash de outubro de 2025 expôs esse risco em estratégias delta-neutras, e como se proteger.

ADL (Auto-Deleveraging) é um dos mecanismos menos discutidos — e mais perigosos — para quem opera estratégias automatizadas em derivativos de cripto. Em resumo: a exchange pode fechar sua posição à força, mesmo que ela seja lucrativa, para cobrir a liquidação de outro trader.


Como Funciona o Processo de Liquidação (Contexto)

Quando um trader é liquidado em futuros/perpétuos, a exchange tenta fechar a posição no preço de liquidação ou melhor. O processo em ordem:

1. Trader A tem posição Long de US$1M com 20x alavancagem
   → BTC cai 5% → posição de Trader A é liquidada

2. Exchange tenta fechar a posição de Trader A no mercado:
   → Coloca ordem de venda de US$1M de BTC

3. Cenário 1 (normal): o mercado absorve a venda
   → Liquidação completa com sucesso
   → Fundo de Seguros (Insurance Fund) absorve qualquer diferença residual

4. Cenário 2 (ADL ativado): o mercado não tem liquidez suficiente
   → Insurance Fund é insuficiente
   → Exchange ativa ADL: força o fechamento de posições OPOSTAS e LUCRATIVAS

O que é ADL

ADL (Auto-Deleveraging) é o fechamento forçado de posições de contrapartes para cobrir liquidações que o Insurance Fund não conseguiu absorver.

Quem é afetado: as posições mais lucrativas na direção oposta à do trader liquidado são fechadas primeiro (ranqueamento por lucratividade + alavancagem).

Exemplo:

Trader A: Long 100 BTC com 20x → LIQUIDADO por queda de 5%
Insurance Fund: esgotado (mercado muito rápido)
ADL ativado:

Exchange busca os Shorts mais lucrativos:
→ Seu bot tem uma posição Short de 5 BTC no perpétuo (seu hedge)
→ ADL fecha sua posição Short automaticamente, no preço de marcação atual
→ Você recebe o lucro do short (bom), mas perde o HEDGE (ruim)
→ Sua posição Spot Long de 5 BTC agora está DESPROTEGIDA

O Crash de Outubro de 2025: Estudo de Caso

O maior evento de ADL da história do cripto ocorreu em outubro de 2025:

O que aconteceu:

  1. BTC caiu ~35% em menos de 6 horas (flash crash)
  2. Liquidações em cascata: primeiro os longs mais alavancados, depois os moderados
  3. O Insurance Fund de múltiplas exchanges se esgotou
  4. ADL foi ativado massivamente — o maior da história
  5. US$20 bilhões em posições foram liquidados (incluindo por ADL)

Impacto em estratégias delta-neutras:

  • Fundos com posição "Spot Long + Perp Short" tiveram seus shorts fechados por ADL
  • Ficaram com exposição Long pura no spot durante a queda de 35%
  • Perda de US$20 bilhões em fundos que achavam que estavam protegidos

O paradoxo: as posições short (que deveriam ser lucrativas numa queda) foram exatamente as que o ADL fechou — porque eram as mais lucrativas. O sistema se voltou contra quem estava bem posicionado.


Como Identificar Seu Risco de ADL

As exchanges mostram o nível de risco de ADL de cada posição através de um indicador de semáforo (ranking de ADL):

SemáforoCorSignificado
5/5 lâmpadasVermelhoAlto risco de ser atingido por ADL
3-4/5AmareloRisco moderado
1-2/5VerdeBaixo risco

O que determina seu ranking:

  • Quanto mais lucrativa sua posição + quanto maior sua alavancagem = maior o risco de ADL
  • Sua posição short de hedge, quando muito lucrativa numa queda, fica no topo da fila do ADL

Monitorando ADL via API

from pybit.unified_trading import HTTP

session = HTTP(api_key=API_KEY, api_secret=API_SECRET)

def verificar_risco_adl():
    posicoes = session.get_positions(category="linear", symbol="BTCUSDT")
    for pos in posicoes['result']['list']:
        if float(pos['size']) > 0:
            print(f"Par: {pos['symbol']}")
            print(f"Lado: {pos['side']}")
            print(f"Tamanho: {pos['size']}")
            print(f"PnL não realizado: {pos['unrealisedPnl']}")
            # bustPrice = preço de liquidação
            print(f"Preço de liquidação: {pos['liqPrice']}")
            # adlRankIndicator (quando disponível)
            if 'adlRankIndicator' in pos:
                print(f"Nível ADL: {pos['adlRankIndicator']}/5")
            print("---")

verificar_risco_adl()

Estratégias de Proteção Contra ADL

1. Reduzir Alavancagem

Posições com menor alavancagem têm menor ranking de ADL (ficam mais atrás na fila).

Short com 1x: mínima chance de ADL
Short com 5x: chance moderada
Short com 10x+: chance alta (fica no topo da fila em crashes)

Recomendação: use alavancagem ≤ 3x para a perna short de hedge.

2. Distribuir em Múltiplas Exchanges

Se você está em apenas uma exchange, um ADL local destrói todo o hedge. Em múltiplas:

Posição Spot Long: US$100.000 em BTC (qualquer exchange/wallet)
Posição Short: US$33.333 na Bybit + US$33.333 na Binance + US$33.333 na OKX

Se ADL fechar sua posição na Bybit: ainda tem 66% do hedge

3. Monitoring em Tempo Real com Alertas

import time
from pybit.unified_trading import HTTP
import requests   # para enviar alerta via Telegram

def enviar_alerta_telegram(msg):
    token = "SEU_BOT_TOKEN"
    chat_id = "SEU_CHAT_ID"
    url = f"https://api.telegram.org/bot{token}/sendMessage"
    requests.post(url, data={"chat_id": chat_id, "text": msg})

session = HTTP(api_key=API_KEY, api_secret=API_SECRET)

def monitorar_adl():
    while True:
        try:
            posicoes = session.get_positions(category="linear", symbol="BTCUSDT")
            for pos in posicoes['result']['list']:
                if float(pos['size']) > 0:
                    adl = int(pos.get('adlRankIndicator', 0))
                    if adl >= 4:   # Risco alto
                        msg = f"⚠️ RISCO ADL ALTO: {pos['symbol']} | Nível: {adl}/5"
                        enviar_alerta_telegram(msg)
            time.sleep(300)   # Verifica a cada 5 minutos
        except Exception as e:
            print(f"Erro: {e}")
            time.sleep(60)

monitorar_adl()

4. Stop de Emergência se ADL for Ativado

O ADL não avisa antes — ele acontece. Você descobre quando verifica a posição. Configure verificação frequente:

def verificar_posicao_fechada(tamanho_esperado):
    pos = session.get_positions(category="linear", symbol="BTCUSDT")
    tamanho_atual = float(pos['result']['list'][0]['size'])

    if tamanho_atual < tamanho_esperado * 0.9:   # Mais de 10% menor que esperado
        msg = f"⚠️ POSIÇÃO PARCIALMENTE FECHADA (possível ADL)! Esperado: {tamanho_esperado} | Atual: {tamanho_atual}"
        enviar_alerta_telegram(msg)
        # Ação automática: fechar posição spot correspondente para re-neutralizar
        # ou encerrar todo o portfolio

5. Circuit Breaker em Alta Volatilidade

import requests as req

def get_volatilidade_mercado():
    url = "https://api.bybit.com/v5/market/volatility"
    # Alternativa: medir variação do preço nos últimos 15 minutos
    klines = session.get_kline(category="linear", symbol="BTCUSDT", interval="15", limit=4)
    precos = [float(k[4]) for k in klines['result']['list']]
    variacao = (max(precos) - min(precos)) / min(precos)
    return variacao

def circuit_breaker():
    vol = get_volatilidade_mercado()
    if vol > 0.05:   # Mais de 5% de variação em 1 hora
        print("⛔ CIRCUIT BREAKER: Volatilidade extrema detectada")
        print("Encerrando posições short de hedge...")
        # Fechar posição short → converte para posição spot pura (direcional)
        # Ou fechar TUDO (spot + short)

Quando ADL NÃO é Ativado

Entenda os limites:

  • ADL é raro em mercados normais com alta liquidez
  • Só ocorre quando o Insurance Fund está esgotado
  • Monitorando o Insurance Fund, você pode antecipar o risco
# Verificar nível do Insurance Fund (via API pública)
def get_insurance_fund():
    url = "https://api.bybit.com/v5/market/insurance"
    r = req.get(url).json()
    for item in r['result']['list']:
        if item['coin'] == 'USDT':
            print(f"Insurance Fund USDT: {float(item['balance']):,.0f}")

Se o Insurance Fund cair significativamente num curto período (crash em andamento), isso é um sinal de que ADL pode ser ativado em breve.


Checklist de Proteção Contra ADL

☐ Alavancagem no short ≤ 3x
☐ Posições distribuídas em pelo menos 2 exchanges
☐ Monitoramento automático de ranking ADL a cada 5-10 minutos
☐ Alerta de Telegram/email quando ADL chegar ao nível 4/5
☐ Circuit breaker configurado para fechar posições em alta volatilidade extrema
☐ Verificação periódica de tamanho da posição (detecta fechamento inesperado)
☐ Plano de emergência documentado: o que fazer se ADL for ativado
☐ Reserva de capital fora das exchanges (para adicionar margem rapidamente)

Próximos Passos


Aviso Legal: Conteúdo educativo. ADL é um risco sistêmico real em exchanges de derivativos. Não constitui recomendação de investimento. Estratégias de derivativos podem resultar em perda total do capital.

On this page