MagicTradeBot e conformità ai limiti del tasso di cambio

MagicTradeBot è progettato per supportare il trading automatico 24/7 su centinaia di coppie di criptovalute. Tuttavia, la maggior parte degli exchange centralizzati (CEX) impone rigidi limiti di frequenza API, e superarli può comportare sospensioni temporanee, blocchi IP o degrado delle prestazioni.


⚠️ La sfida dei limiti di frequenza

Ogni exchange impone limiti specifici di richieste per secondo. La scansione continua in tempo reale di centinaia di coppie di trading su più exchange può facilmente superare queste soglie.

Per evitare blocchi delle API o problemi di performance, MagicTradeBot implementa controlli avanzati dei limiti di frequenza per rispettare automaticamente le restrizioni degli exchange.


🛠️ Gestione dei limiti di frequenza in MagicTradeBot

  • ⏱️ Utilizza una programmazione API con limiti di frequenza che regola dinamicamente la velocità delle richieste
  • 📊 Monitora gli header di risposta (es. X-RateLimit-Remaining) per rilevare quando ci si avvicina ai limiti
  • 🧠 Introduce automaticamente dei ritardi quando l’utilizzo dell’API si avvicina alla soglia
  • 🔁 Divide le lunghe liste di coppie in blocchi più piccoli per una scansione scaglionata
  • 🕐 Utilizza il parametro refreshRate (es. ogni 5 secondi) per scansionare un blocco alla volta

✅ Strategia di distribuzione consigliata

Per garantire prestazioni ottimali e conformità alle API, segui queste pratiche:

1️⃣ Dividi i simboli su più account

  • Crea account o sotto-account separati su ciascun exchange (es. Binance Principale, Bybit Sub1, Bitget Spot, OKX Futures)
  • Assegna gruppi diversi di coppie di trading a ciascun account
  • Questo riduce il carico di richieste su una singola chiave API

2️⃣ Esegui più istanze del bot

  • Avvia istanze separate di MagicTradeBot per ogni exchange/account
  • Esempio: bot-binance-main, bot-bybit-sub1, bot-okx-spot
  • Ogni bot gestirà solo un numero limitato di coppie — migliorando l'affidabilità e i tempi di risposta

3️⃣ Usa intelligentemente il refresh rate

  • Imposta il refreshRate nel file config.yaml in modo appropriato (es. 5 secondi)
  • Evita intervalli troppo brevi se stai monitorando centinaia di coppie da una singola istanza

📦 Esempio di configurazione: 500 coppie crypto

Supponiamo tu voglia scansionare e fare trading su 500 coppie di criptovalute. Puoi suddividere il carico così:

Istanze Bot Account Exchange Coppie Crypto
bot-binance-main Account principale Binance 50 coppie
bot-bybit-sub1 Sotto-account Bybit 1 50 coppie
bot-okx-spot Account Spot OKX 50 coppie
bot-bitget-main Account principale Bitget 50 coppie
... (ripeti) Altro Exchange/Account 50 coppie ciascuno

Questo approccio modulare consente a ciascun bot di gestire meno richieste, rimanere entro i limiti di frequenza e ridurre la latenza.


🧩 Tolleranza ai guasti

Distribuendo la tua strategia su più account e istanze:

  • 🛑 Se un'istanza del bot fallisce (a causa di un’interruzione dell’exchange o un errore interno), le altre continueranno a funzionare indipendentemente
  • ⚙️ Diventa più semplice scalare o isolare i colli di bottiglia nelle prestazioni
  • 📉 Minimizza il rischio di essere completamente bloccati da un’API a causa di uso eccessivo