Skip to content

Ratila1/CryptoArbBot

Repository files navigation

README.txt: Telegram-бот для криптоарбитража

Внимание! Этот бот предназначен для автоматической торговли криптовалютами на биржах с использованием реальных 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 и получите токен.

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/your-repo/arbitrage-bot.git
    cd arbitrage-bot
    
  2. Установите зависимости:

    pip install ccxt telegram aiohttp
    

    Примечание: CCXT поддерживает асинхронный режим (ccxt.async_support).

  3. Создайте файл конфигурации 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%).
  4. Инициализируйте файлы логов (опционально):

    • trade_log.json: Журнал сделок.
    • daily_report.json: Ежедневные отчёты.
    • statistics.txt: Статистика по процентам прибыли.

Запуск

  1. Запустите скрипт:

    python bot.py
    
    • Бот проверит подключение к биржам, балансы и права API-ключей.
    • Если возникнут ошибки (например, неверный ключ), они отобразятся в логе.
  2. В 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 — симуляция (без реальных ордеров). Установите для тестов.

Где менять: В коде, после импортов. Перезапустите бота после изменений.

Настройка через Telegram

  • Нажмите "⚙️ Настройки бота".
  • Изменяйте: мин. % прибыли, интервал, объём, макс. убыток, мин. объём.
  • Настройки применяются сразу, без перезапуска.

Настройка поиска маршрутов

Бот генерирует пути в функции 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. Используйте свободно, но без гарантий.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages