MagicTradeBot y cumplimiento del límite del tipo de cambio

MagicTradeBot está diseñado para admitir comercio automatizado 24/7 en cientos de pares de criptomonedas. Sin embargo, la mayoría de los exchanges centralizados (CEX) imponen límites estrictos en la tasa de uso de sus API, y superarlos puede causar suspensiones temporales, bloqueos de IP o una disminución en el rendimiento.


⚠️ El desafío del límite de tasa

Cada exchange impone límites específicos de solicitudes por segundo. Escanear continuamente cientos de pares de trading en tiempo real a través de múltiples exchanges puede violar fácilmente estos límites.

Para evitar bloqueos o problemas de rendimiento, MagicTradeBot implementa controles avanzados de límite de tasa que aseguran el cumplimiento automático de las restricciones del exchange.


🛠️ Gestión de límites de tasa de MagicTradeBot

  • ⏱️ Utiliza programación de API con límites de tasa que ajusta dinámicamente la velocidad de las solicitudes
  • 📊 Supervisa los encabezados de respuesta (por ejemplo, X-RateLimit-Remaining) para detectar cuándo se acercan los límites
  • 🧠 Introduce automáticamente retrasos cuando el uso del API se acerca a los umbrales
  • 🔁 Divide listas grandes de pares en bloques más pequeños para escaneo escalonado
  • 🕐 Utiliza la configuración refreshRate (por ejemplo, cada 5 segundos) para escanear un bloque a la vez

✅ Estrategia de implementación recomendada

Para garantizar un rendimiento óptimo y cumplimiento con la API, sigue estas prácticas:

1️⃣ Divide los símbolos entre múltiples cuentas

  • Crea cuentas o subcuentas separadas por exchange (por ejemplo, Binance Principal, Bybit Sub1, Bitget Spot, OKX Futuros)
  • Asigna diferentes grupos de pares a cada cuenta
  • Esto reduce la concentración de solicitudes en una sola clave API

2️⃣ Ejecuta múltiples instancias del bot

  • Inicia instancias separadas de MagicTradeBot para cada cuenta o exchange
  • Ejemplo: bot-binance-main, bot-bybit-sub1, bot-okx-spot
  • Cada bot manejará un número limitado de pares, mejorando la fiabilidad y el tiempo de respuesta

3️⃣ Usa refresh rate inteligentemente

  • Establece refreshRate en config.yaml de manera adecuada (por ejemplo, 5 segundos)
  • Evita intervalos demasiado cortos si estás monitorizando cientos de pares desde una sola instancia

📦 Ejemplo de configuración: 500 pares de criptomonedas

Supongamos que deseas escanear y operar con 500 pares de criptomonedas. Puedes dividir la carga así:

Instancia del bot Cuenta del exchange Pares de criptomonedas
bot-binance-main Cuenta principal de Binance 50 pares
bot-bybit-sub1 Subcuenta 1 de Bybit 50 pares
bot-okx-spot Cuenta spot de OKX 50 pares
bot-bitget-main Cuenta principal de Bitget 50 pares
... (repetir) Otro exchange/cuenta 50 pares cada uno

Este enfoque modular permite que cada bot maneje menos solicitudes, se mantenga dentro de los límites y reduzca la latencia.


🧩 Tolerancia a fallos

Al dividir tu estrategia entre varias cuentas e instancias:

  • 🛑 Si una instancia falla (por un error interno o una caída del exchange), las demás seguirán funcionando de forma independiente
  • ⚙️ Es más fácil escalar o aislar cuellos de botella de rendimiento
  • 📉 Minimiza el riesgo de ser bloqueado completamente del API de un exchange por sobreuso