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 cicloPor 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 hummingbotEstraté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 segundosQuando 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.001Vantagem: 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 maior5. 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 BotParâ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ízoMitigações:
-
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) -
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 -
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:
- Você faz market making em um par específico (ex: PROJECT/USDT na KuCoin)
- O Hummingbot Miner mede quanto volume você gerou e a qualidade da liquidez
- 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étrica | Definição | Referência |
|---|---|---|
| Spread médio coletado | Receita por ciclo bid+ask | > Taxas de trading |
| Fill Rate | % de ordens que foram executadas | 30-70% (depende da estratégia) |
| Inventory Position | % em base (ex: BTC) vs quote (USDT) | Próximo do alvo (ex: 50/50) |
| Realized PnL | Lucro real das ordens fechadas | Positivo e crescente |
| Unrealized PnL | Variação do inventory pelo preço | Pode ser negativo por volatilidade |
| Net PnL | Realized + Unrealized | O 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
- Arbitragem de Funding Rate — outra estratégia market neutral
- API Trading com Python — construir estratégias custom
- Backtesting de Estratégias — validar antes de operar
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.
VectorBT: Backtesting Ultrarrápido em Python
Como usar VectorBT para testar milhares de combinações de parâmetros em segundos, otimizar estratégias de trading em cripto e visualizar resultados com heatmaps e gráficos interativos.
Contratos Perpétuos: Mecanismo Completo
Como funcionam os contratos perpétuos em cripto: funding rate, tipos de margem, preço de liquidação, diferença entre USDT-margined e coin-margined, e por que perpétuos dominam o volume de trading em cripto.