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 fileconfig.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