Внимание! Этот бот предназначен для автоматической торговли криптовалютами на биржах с использованием реальных API-ключей. Он выполняет реальные сделки, что связано с высоким риском потери средств. Автор не несёт ответственности за финансовые потери. Используйте на свой страх и риск. Начинайте с минимальных сумм и тестируйте в режиме симуляции.
Этот Telegram-бот ищет возможности для арбитража на криптовалютных биржах (KuCoin, Bybit, Binance, OKX) с использованием библиотеки CCXT. Он поддерживает:
- Треугольный арбитраж внутри одной биржи.
- Межбиржевой арбитраж.
- Автоматическое выполнение сделок (рыночные ордера с учётом комиссий и проскальзывания).
- Настройку параметров через интерфейс Telegram.
- Ведение логов сделок, отчёты и статистику.
Бот работает асинхронно с использованием asyncio и aiohttp. Поддерживает топ-100 криптовалют и стейблкоины.
- Потеря средств: Автоматическая торговля рискованна. Возможны убытки из-за волатильности, проскальзывания или ошибок.
- Проскальзывание: Используются рыночные ордера, цена исполнения может отличаться от расчётной.
- API-ключи: Убедитесь, что ключи имеют права только на торговлю (отключите вывод средств) для безопасности.
- Тестовый режим: Установите
TEST_MODE = Trueдля симуляции без реальных сделок.
- Python 3.12+ (рекомендуется).
- Библиотеки:
ccxt,telegram,aiohttp,asyncio,logging,json,hmac,hashlib,collections,random,sys,uuid. - Учётные записи на биржах: KuCoin, Bybit, Binance, OKX с API-ключами.
- Telegram-бот: Создайте бота через BotFather и получите токен.
-
Клонируйте репозиторий:
git clone https://github.com/your-repo/arbitrage-bot.git cd arbitrage-bot -
Установите зависимости:
pip install ccxt telegram aiohttpПримечание: CCXT поддерживает асинхронный режим (
ccxt.async_support). -
Создайте файл конфигурации
config.json:{ "telegram_token": "ВАШ_ТЕЛЕГРАМ_ТОКЕН", "kucoin_api_key": "ВАШ_KUCOIN_API_КЛЮЧ", "kucoin_secret_key": "ВАШ_KUCOIN_СЕКРЕТ", "kucoin_password": "ВАШ_KUCOIN_ПАРОЛЬ", "bybit_api_key": "ВАШ_BYBIT_API_КЛЮЧ", "bybit_secret_key": "ВАШ_BYBIT_СЕКРЕТ", "binance_api_key": "ВАШ_BINANCE_API_КЛЮЧ", "binance_secret_key": "ВАШ_BINANCE_СЕКРЕТ", "okx_api_key": "ВАШ_OKX_API_КЛЮЧ", "okx_secret_key": "ВАШ_OKX_СЕКРЕТ", "okx_password": "ВАШ_OKX_ПАРОЛЬ", "kucoin_taker_fee": 0.0008, "bybit_taker_fee": 0.001, "binance_taker_fee": 0.001, "okx_taker_fee": 0.001 }- Обязательно: Заполните все ключи. Для KuCoin и OKX укажите пароль (passphrase), если требуется.
- Комиссии: Укажите taker-комиссии (по умолчанию 0.08-0.1%).
-
Инициализируйте файлы логов (опционально):
trade_log.json: Журнал сделок.daily_report.json: Ежедневные отчёты.statistics.txt: Статистика по процентам прибыли.
-
Запустите скрипт:
python bot.py- Бот проверит подключение к биржам, балансы и права API-ключей.
- Если возникнут ошибки (например, неверный ключ), они отобразятся в логе.
-
В Telegram:
- Найдите бота по токену и отправьте
/start. - Используйте клавиатуру для управления: запуск/остановка, настройки, отчёты.
- Найдите бота по токену и отправьте
Примечание: Бот работает в цикле, проверяя арбитраж каждые CHECK_INTERVAL_SECONDS секунд. Остановите с помощью Ctrl+C или команды в Telegram.
Параметры хранятся в глобальных переменных в скрипте (строки ~50-70). Изменяйте их в коде или через Telegram.
- MIN_PROFIT_PERCENT (по умолчанию: 0.24): Минимальный % прибыли для сделки. Измените для более/менее агрессивного поиска (меньше — больше путей, но выше риск).
- MAX_PROFIT_PERCENT (по умолчанию: 20.0): Максимальный % прибыли (фильтр от ошибок).
- TRADE_VOLUME_USD (по умолчанию: 2): Объём сделки в USD. Увеличьте для реальной торговли, но начинайте с малого.
- USER_MIN_VOLUME_USD (по умолчанию: 2): Ваш минимальный объём (для проверки баланса).
- MAX_ABSOLUTE_LOSS_USD (по умолчанию: 10.0): Максимальный убыток в USD (защита от просадок).
- CHECK_INTERVAL_SECONDS (по умолчанию: 5): Интервал проверки в секундах. Меньше — чаще проверки, но выше нагрузка на API.
- MIN_TRADE_VOLUME (по умолчанию: 500): Минимальный объём пары в USD для ликвидности.
- MAX_PATHS_PER_CURRENCY (по умолчанию: 1000): Максимум путей на валюту (ограничение генерации).
- MAX_SPREAD_PERCENT (по умолчанию: 10.0): Максимальный спред пары (%).
- TEST_MODE (по умолчанию: False): True — симуляция (без реальных ордеров). Установите для тестов.
Где менять: В коде, после импортов. Перезапустите бота после изменений.
- Нажмите "⚙️ Настройки бота".
- Изменяйте: мин. % прибыли, интервал, объём, макс. убыток, мин. объём.
- Настройки применяются сразу, без перезапуска.
Бот генерирует пути в функции generate_arbitrage_paths:
- Треугольные пути: Внутри биржи (USDT → X → Y → USDT).
- Межбиржевые пути: Покупка на одной бирже, продажа на другой (для топ-криптовалют).
Параметры для маршрутов:
- STABLES (список стейблкоинов): Добавьте/уберите валюты для фильтра пар (например, добавить 'EUR' — но осторожно, см. EXCLUDED_CURRENCIES).
- TOP_CRYPTOS (топ-100): Список для ликвидных пар. Измените, чтобы сосредоточиться на конкретных активах (добавьте/уберите).
- PRIORITY_CRYPTOS (топ-20): Приоритет для стартовых активов. Расширьте для большего охвата, но это может замедлить генерацию.
- EXCLUDED_CURRENCIES (по умолчанию: ['BRL', 'EUR', 'PLN']): Исключённые валюты. Удалите, чтобы включить (риск низкой ликвидности).
- MIN_PAIR_VOLUME_USD (в generate_arbitrage_paths, по умолчанию: 5000): Мин. объём пары для включения.
Как настроить поиск маршрутов:
- Для фокуса на валюте (например, ETH): Добавьте в PRIORITY_CRYPTOS и TOP_CRYPTOS.
- Для новых бирж: Добавьте в словарь
exchangesи config.json. - Для кастомных путей: Измените логику в
generate_arbitrage_paths(добавьте циклы для большей глубины, но это снизит производительность).
/start: Приветствие и клавиатура.- "
▶️ Запустить арбитраж": Запуск цикла. - "⏹️ Остановить арбитраж": Остановка цикла.
- "⚙️ Настройки бота": Меню настроек.
- "📈 Отчёт": Ежедневный отчёт (сделки, прибыль).
- "📜 Журнал сделок": Последние 10 сделок.
- "💰 Баланс": Балансы на биржах.
/status: Статус и параметры./convert_to_usdt: Конвертировать все активы в USDT (осторожно!)./test_trade_command: Тестовый поиск (симуляция)./test_traid_full: Полный тестовый цикл (только для chat_id=1191500663).
- Логи: Выводятся в консоль (уровень INFO). Файлы:
trade_log.json(сделки),daily_report.json(отчёты),statistics.txt(статистика % прибыли). - Ошибки: Проверяйте лог на ошибки аутентификации, балансов или ликвидности.
- Установите
logging.level = logging.DEBUGдля подробных логов. - Тестируйте с
TEST_MODE = True. - Проблемы с биржами: Проверьте whitelist IP, права API (спотовая торговля, без вывода).
MIT License. Используйте свободно, но без гарантий.