MagicTradeBot и соблюдение лимитов обменного курса

  • Home
  • Documentation
  • MagicTradeBot и соблюдение лимитов обменного курса

MagicTradeBot разработан для поддержки автоматической торговли 24/7 по сотням криптовалютных пар. Однако большинство централизованных бирж (CEX) устанавливают строгие ограничения на частоту запросов к API, и превышение этих лимитов может привести к временной блокировке, ограничению IP-адреса или снижению производительности.


⚠️ Проблема с лимитами частоты запросов

Каждая биржа накладывает ограничения на количество запросов в секунду. Непрерывное сканирование сотен торговых пар на нескольких биржах в реальном времени может легко привести к превышению этих лимитов.

Чтобы избежать блокировок или проблем с производительностью, MagicTradeBot использует продвинутые механизмы контроля лимитов, автоматически соблюдая ограничения API бирж.


🛠️ Управление лимитами в MagicTradeBot

  • ⏱️ Использует планирование API-запросов с ограничением частоты, которое динамически регулирует скорость
  • 📊 Отслеживает заголовки ответов (например, X-RateLimit-Remaining) для определения приближения к лимиту
  • 🧠 Автоматически вводит задержки при приближении к предельным значениям
  • 🔁 Делит большие списки торговых пар на мелкие блоки для пошагового сканирования
  • 🕐 Использует параметр refreshRate (например, каждые 5 секунд) для последовательного сканирования каждого блока

✅ Рекомендуемая стратегия развертывания

Для обеспечения оптимальной производительности и соблюдения лимитов API рекомендуется следующее:

1️⃣ Разделяйте пары между несколькими аккаунтами

  • Создайте отдельные аккаунты или суб-аккаунты на биржах (например, Binance Main, Bybit Sub1, Bitget Spot, OKX Futures)
  • Назначьте разные группы торговых пар каждому аккаунту
  • Это снижает нагрузку на один ключ API

2️⃣ Запускайте несколько экземпляров бота

  • Создайте отдельные инстансы MagicTradeBot для каждой биржи/аккаунта
  • Пример: bot-binance-main, bot-bybit-sub1, bot-okx-spot
  • Каждый бот обрабатывает ограниченное количество пар — это повышает стабильность и скорость отклика

3️⃣ Умело используйте частоту обновления

  • Установите значение refreshRate в config.yaml (например, 5 секунд)
  • Избегайте слишком малых интервалов, если один экземпляр обрабатывает сотни пар

📦 Пример конфигурации: 500 криптовалютных пар

Допустим, вы хотите сканировать и торговать по 500 парам. Нагрузку можно распределить следующим образом:

Экземпляр бота Аккаунт биржи Крипто-пары
bot-binance-main Основной аккаунт Binance 50 пар
bot-bybit-sub1 Суб-аккаунт Bybit 1 50 пар
bot-okx-spot Спотовый аккаунт OKX 50 пар
bot-bitget-main Основной аккаунт Bitget 50 пар
... (повторить) Другие биржи/аккаунты По 50 пар

Такой модульный подход позволяет каждому боту обрабатывать меньше запросов, оставаться в рамках лимитов и снижать задержки.


🧩 Устойчивость к сбоям

При распределении стратегии между несколькими аккаунтами и ботами:

  • 🛑 Если один из экземпляров выйдет из строя (например, из-за сбоя биржи или внутренней ошибки), остальные продолжат работать независимо
  • ⚙️ Упрощается масштабирование и изоляция узких мест
  • 📉 Снижается риск полной блокировки API из-за чрезмерного использования