O MagicTradeBot foi projetado para suportar negociação automatizada 24 horas por dia, 7 dias por semana em centenas de pares de criptomoedas. No entanto, a maioria das exchanges centralizadas (CEXs) impõe limites rigorosos de taxa da API, e excedê-los pode resultar em suspensões temporárias, bloqueios de IP ou degradação de desempenho.
⚠️ O desafio dos limites de taxa
Cada exchange impõe limites específicos de requisições por segundo. Monitorar continuamente centenas de pares de negociação em tempo real através de múltiplas exchanges pode facilmente ultrapassar esses limites.
Para evitar bloqueios de API ou problemas de desempenho, o MagicTradeBot implementa controles avançados de limite de taxa para garantir conformidade automática com as restrições das exchanges.
🛠️ Gerenciamento de Limite de Taxa do MagicTradeBot
- ⏱️ Usa agendamento de API com limitação de taxa que ajusta dinamicamente a velocidade das requisições
- 📊 Monitora os cabeçalhos de resposta (ex.:
X-RateLimit-Remaining
) para detectar quando os limites estão próximos - 🧠 Introduz automaticamente atrasos quando o uso da API se aproxima dos limites
- 🔁 Divide listas grandes de pares de criptomoedas em blocos menores para varredura escalonada
- 🕐 Utiliza a configuração
refreshRate
(ex.: a cada 5 segundos) para escanear um bloco por vez
✅ Estratégia de Implantação Recomendada
Para garantir o melhor desempenho e conformidade com a API, siga estas práticas:
1️⃣ Divida os símbolos entre várias contas
- Crie contas separadas ou subcontas nas exchanges (ex.: Conta principal Binance, Subconta Bybit 1, Bitget Spot, OKX Futuros)
- Atribua grupos diferentes de pares de negociação para cada conta
- Isso reduz a concentração de requisições em uma única chave de API
2️⃣ Execute várias instâncias do bot
- Inicie instâncias separadas do MagicTradeBot para cada exchange ou conta
- Exemplo:
bot-binance-main
,bot-bybit-sub1
,bot-okx-spot
- Cada bot lidará com um número limitado de pares — melhorando a confiabilidade e o tempo de resposta
3️⃣ Use a taxa de atualização com inteligência
- Defina o
refreshRate
noconfig.yaml
de forma apropriada (ex.: 5 segundos) - Evite intervalos muito curtos se estiver monitorando centenas de pares em uma única instância
📦 Exemplo de Configuração: 500 Pares Cripto
Suponha que você deseje escanear e negociar 500 pares de criptomoedas. Você pode dividir a carga da seguinte forma:
Instância do Bot | Conta da Exchange | Pares Cripto |
---|---|---|
bot-binance-main | Conta Principal Binance | 50 pares |
bot-bybit-sub1 | Subconta Bybit 1 | 50 pares |
bot-okx-spot | Conta Spot OKX | 50 pares |
bot-bitget-main | Conta Principal Bitget | 50 pares |
... (repetir) | Outra Exchange/Conta | 50 pares cada |
Essa abordagem modular permite que cada bot lide com menos requisições, respeite os limites de taxa e reduza a latência.
🧩 Tolerância a Falhas
Ao dividir sua estratégia entre várias contas e instâncias:
- 🛑 Se uma instância do bot falhar (devido a uma falha da exchange ou erro interno), as outras continuarão funcionando de forma independente
- ⚙️ Torna-se mais fácil escalar ou isolar gargalos de desempenho específicos
- 📉 Minimiza o risco de ser completamente bloqueado da API de uma exchange devido ao uso excessivo