Kaique Mitsuo Silva Yamamoto
CriptoTrading automatizado

Hummingbot: Market Making Automatizado em Cripto

Como usar o Hummingbot para market making e arbitragem em exchanges centralizadas e DEXes. Estratégias nativas, configuração, riscos de inventory e como gerar renda com spreads.

Hummingbot é o framework open-source mais usado para market making e arbitragem em cripto. Enquanto traders comuns compram e vendem para capturar tendências, market makers lucram colocando simultaneamente ordens de compra e venda — lucrando com o spread entre as duas.

  • GitHub: hummingbot/hummingbot
  • Fundação: Hummingbot Foundation (DAO)
  • Exchanges suportadas: Binance, Bybit, OKX, Gate.io, KuCoin, Coinbase Pro e 10+ DEXes
  • Licença: Apache 2.0 (gratuito e open-source)

O que é Market Making

Market makers fornecem liquidez ao mercado colocando ordens de compra (bid) e venda (ask) simultaneamente. O lucro vem do spread — a diferença entre o preço que você paga e o que recebe.

Exemplo: BTC/USDT com book de ordens

Ordem de venda (ask): US$80.050  ← você coloca
Preço de referência:  US$80.000
Ordem de compra (bid): US$79.950 ← você coloca

Spread: US$100 (0,125%)
Se ambas as ordens forem preenchidas: lucro = US$100 por ciclo

Por que as exchanges incentivam market makers:

  • Market makers = mais liquidez = menor spread para todos
  • Exchanges oferecem taxas maker negativas (você recebe em vez de pagar) para atrair market makers
  • Alguns programas pagam recompensas adicionais em tokens

Instalação

# Docker (recomendado)
docker pull hummingbot/hummingbot:latest
docker run -it \
  --name hummingbot \
  -v $(pwd)/hummingbot_conf:/conf \
  -v $(pwd)/hummingbot_logs:/logs \
  hummingbot/hummingbot:latest

# Ou via pip
pip install hummingbot

Estratégias Principais

1. Pure Market Making (PMM)

A estratégia mais simples: coloca bid e ask simetricamente ao redor do preço de referência.

# conf_pure_market_making_strategy.yml
strategy: pure_market_making
exchange: bybit
market: BTC-USDT
bid_spread: 0.1        # 0,1% abaixo do preço de referência
ask_spread: 0.1        # 0,1% acima do preço de referência
order_amount: 0.001    # 0,001 BTC por ordem
order_refresh_time: 30 # Atualiza ordens a cada 30 segundos

Quando funciona bem:

  • Pares com alta liquidez e baixa volatilidade
  • Quando você tem saldo tanto em BTC quanto em USDT

Risco de inventory: se o preço cair consistentemente, você acumula BTC (seu bid é executado mas o ask não). Se subir, acumula USDT.

2. Cross-Exchange Market Making

Usa uma exchange de referência (menor spread, mais liquida) para definir o preço justo, e faz market making em outra exchange com spread maior.

strategy: cross_exchange_market_making
maker_exchange: bybit           # Onde você coloca as ordens
taker_exchange: binance         # Exchange de referência
maker_market: BTC-USDT
taker_market: BTC-USDT
min_profitability: 0.3          # Só executa se lucro mínimo de 0,3%
order_amount: 0.001

Vantagem: protege contra movimentos bruscos — o preço de referência se ajusta automaticamente.

3. Arbitrage

Explorar diferenças de preço entre exchanges.

strategy: arbitrage
primary_market: bybit
secondary_market: okx
primary_market_pair: BTC-USDT
secondary_market_pair: BTC-USDT
min_profitability: 0.5          # Só executa se spread > 0,5%

Limitações: o spread raramente é grande o suficiente após as taxas, e a execução precisa ser quase simultânea para evitar que o preço mude antes da segunda perna.

4. AMM Arbitrage (DEX)

Explorar diferenças entre DEXes (Uniswap, Curve, etc.) e CEXes.

strategy: amm_arb
connector_1: uniswap_ethereum_mainnet
connector_2: binance
market_1: WETH-USDC
market_2: ETH-USDT
min_profitability: 1.0          # DEX tem taxas de gas — precisa de spread maior

5. DCA e Grid (também disponíveis)

O Hummingbot também inclui implementações de DCA e Grid Bot para CEX e DEX:

strategy: dca_example     # DCA Bot
# ou
strategy: grid_trading    # Grid Bot

Parâmetros Avançados do Pure Market Making

strategy: pure_market_making
exchange: bybit
market: ETH-USDT

# Spreads assimétricos (mais distante de um lado)
bid_spread: 0.15
ask_spread: 0.10          # Ask mais próximo (espera alta)

# Múltiplas camadas de ordens (Order Book Depth)
order_levels: 3           # 3 bids e 3 asks
order_level_spread: 0.05  # Cada nível 0,05% mais distante
order_level_amount: 0.001 # Quantidade por nível

# Proteção de inventory
inventory_skew_enabled: true
inventory_target_base_pct: 50 # Manter 50% em ETH e 50% em USDT

# Proteção contra volatilidade
volatility_interval: 60       # Medir volatilidade a cada 60 segundos
avg_volatility_period: 10     # Média dos últimos 10 intervalos
volatility_to_spread_multiplier: 1.5  # Aumenta spread quando volátil

# Ping-pong (reinveste a ordem que foi executada)
hanging_orders_enabled: true   # Mantém ordens não executadas
hanging_orders_cancel_pct: 0.1 # Cancela se preço afastar mais que 0,1%

Inventory Risk: O Principal Risco do Market Making

O problema: em mercados com tendência forte, você acumula o lado que está "errado".

BTC em queda forte (-20% em uma semana):
- Todas as suas ordens de compra (bid) são executadas
- Suas ordens de venda (ask) não são executadas
- Resultado: você acumula BTC enquanto ele cai
- PnL realizado (spread) < PnL não realizado (queda do BTC) = prejuízo

Mitigações:

  1. Inventory Skew: ajusta os spreads para desincentivar o lado que está acumulado demais

    Se BTC > 60% do portfolio → aumenta o spread de bid (menos compras) + reduz spread de ask (mais vendas)
  2. Price Ceiling/Floor: para as ordens se o preço sair de um range

    price_ceiling: 85000    # Para de fazer market making acima de US$85k
    price_floor: 75000      # Para abaixo de US$75k
  3. External Pricing: usa o preço de outra exchange como referência para se proteger de dados incorretos


Programas de Recompensa (Liquidity Mining)

O Hummingbot Foundation opera o Hummingbot Miner — uma plataforma onde projetos de cripto pagam market makers para fornecer liquidez ao par deles.

Como funciona:

  1. Você faz market making em um par específico (ex: PROJECT/USDT na KuCoin)
  2. O Hummingbot Miner mede quanto volume você gerou e a qualidade da liquidez
  3. Você recebe recompensas semanais em tokens (APY histórico: 5-30% a.a.)

Pares disponíveis: listados em miner.hummingbot.io


Métricas para Avaliar Market Making

MétricaDefiniçãoReferência
Spread médio coletadoReceita por ciclo bid+ask> Taxas de trading
Fill Rate% de ordens que foram executadas30-70% (depende da estratégia)
Inventory Position% em base (ex: BTC) vs quote (USDT)Próximo do alvo (ex: 50/50)
Realized PnLLucro real das ordens fechadasPositivo e crescente
Unrealized PnLVariação do inventory pelo preçoPode ser negativo por volatilidade
Net PnLRealized + UnrealizedO que importa no longo prazo

DEX Market Making com Hummingbot

Para DEXes, o Hummingbot usa Scripts (Python) em vez de YAML:

# Scripts/dex_market_making.py
from hummingbot.strategy.script_strategy_base import ScriptStrategyBase
from hummingbot.connector.connector_base import ConnectorBase

class DexMarketMaking(ScriptStrategyBase):
    # Configurações
    trading_pair = "WETH-USDC"
    connector_name = "uniswap_ethereum_mainnet"
    bid_spread = 0.005      # 0,5%
    ask_spread = 0.005

    markets = {connector_name: {trading_pair}}

    def on_tick(self):
        mid_price = self.connectors[self.connector_name].get_mid_price(self.trading_pair)
        bid = mid_price * (1 - self.bid_spread)
        ask = mid_price * (1 + self.ask_spread)
        # Lógica de colocação de ordens...

Cuidado com gas fees: em DEXes como Ethereum mainnet, as taxas de gas podem consumir todo o lucro do spread. Prefira L2s (Arbitrum, Base, Optimism) onde o gas é < US$0,01.


Próximos Passos


Aviso Legal: Conteúdo educativo. Market making envolve risco de inventory significativo em mercados com tendência forte. Não constitui recomendação de investimento.

On this page