Финансы

Создание автоматизированного торгового бота для криптовалюты на Python — Полное руководство для новичков

USD/JPY分散は、為替急変局面で一方通貨の過大シェアを防ぎ、月次の再バランスと上限規則で感情的な一括投資を抑える実践設計です。

Создание автоматизированного торгового бота для криптовалюты на Python — Полное руководство для новичков

Что такое автоматизированный торговый бот?

pile gold silver bitcoins cryptocurrency

Автоматизированный торговый бот (Trading Bot) — это программа, которая автоматически выполняет покупки и продажи без участия человека в соответствии с заранее установленными условиями. Например, если вы зададите правило "Купите на 1 миллион вон, если цена биткойна упадет более чем на 5%", бот будет торговать даже во время вашего сна.

Более 80% известных хедж-фондов используют алгоритмическую торговлю. Однако даже частные лица могут создать своего собственного бота, имея лишь базовые знания Python.

Подготовка перед началом

person holding coin front computer
  • Установите Python 3.10 или выше (бесплатно скачать на python.org)
  • Аккаунт на Bithumb или Upbit + получение API ключа
  • VSCode или PyCharm (редактор кода)
  • Начальный капитал: рекомендуется не менее 100,000 вон для тестирования

Основные концепции: 3 типа торговых стратегий

Перед созданием бота необходимо решить, какую стратегию использовать.

  1. 1Стратегия обратного тренда RSI: Покупка, когда RSI (индекс относительной силы) находится в зоне перепроданности (ниже 30), продажа, когда RSI в зоне перекупленности (выше 70). Эффективно для волатильных монет.
  2. 2Стратегия прорыва скользящих средних: Покупка, когда короткая MA пересекает длинную MA вверх (золотой крест), продажа, когда пересекает вниз (мертвый крест). Стратегия, следящая за трендом.
  3. 3Стратегия прорыва волатильности: Покупка, когда цена поднимается более чем на K раз от диапазона предыдущего дня, продажа в конце дня. Выгодно для корейского рынка, когда Kimchi Premium высок.

Для новичков рекомендуется комбинированная стратегия RSI + скользящие средние. Сигналы четкие и легко проверяемые.

Настройка окружения Python (5 минут)

Откройте терминал (командную строку) и выполните следующую команду:

bash
pip install ccxt pandas python-dotenv requests
  • ccxt: Библиотека, поддерживающая API более 100 бирж
  • pandas: Обработка данных свечей и расчет технических индикаторов
  • python-dotenv: Безопасное управление API ключами

Получение и подключение API ключа

Метод получения API ключа на Bithumb:

  1. 1Войдите в Bithumb → Личный кабинет → Управление Open API
  2. 2Нажмите "Получить API KEY" → Подтверждение OTP
  3. 3Скопируйте выданный API KEY и SECRET KEY (никогда не раскрывайте их)

Сохраните выданные ключи в файле .env:

env
BITHUMB_API_KEY=ваш_API_KEY
BITHUMB_SECRET_KEY=ваш_SECRET_KEY

Написание функции для расчета RSI

RSI — это один из самых популярных индикаторов импульса. Его можно легко реализовать на Python:

python
import pandas as pd

def calculate_rsi(prices: list, period: int = 14) -> float:
    df = pd.Series(prices)
    delta = df.diff()
    gain = delta.where(delta > 0, 0).rolling(period).mean()
    loss = -delta.where(delta < 0, 0).rolling(period).mean()
    rs = gain / loss
    rsi = 100 - (100 / (1 + rs))
    return rsi.iloc[-1]

Эта функция возвращает текущее значение RSI, если ввести список последних цен закрытия. Если RSI ниже 30, это сигнал о перепроданности, выше 70 — о перекупленности.

Структура основного торгового цикла

Основная структура бота проста: сбор данных → определение сигналов → выполнение заказов → повторение.

python
import time

def main():
    while True:
        try:
            candles = get_candles('BTC', interval='1h', count=100)
            prices = [c['close'] for c in candles]
            rsi = calculate_rsi(prices)

            if rsi < 30:
                print(f"RSI {rsi:.1f} — зона перепроданности, сигнал на покупку")
                buy_market_order('BTC', amount_krw=100_000)
            elif rsi > 70:
                print(f"RSI {rsi:.1f} — зона перекупленности, сигнал на продажу")
                sell_all('BTC')

            time.sleep(3600)  # ожидание 1 час

        except Exception as e:
            print(f"Произошла ошибка: {e}")
            time.sleep(60)

if __name__ == '__main__':
    main()

Управление рисками: обязательные меры безопасности

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

  • Установка максимального уровня убытков: Автоматическая продажа при падении на -5% от входной цены
  • Ограничение максимальной суммы инвестиций за раз: В пределах 10-20% от общего капитала
  • Максимальное количество сделок в день: Для предотвращения чрезмерной торговли (например, не более 3 сделок в день)
  • Уведомления об ошибках: Настройка мгновенных уведомлений об ошибках через Telegram
  • Сначала тестирование: Обязательно проведите минимум 1 месяц бэктестирования и симуляции перед реальной торговлей

Размещение на сервере для круглосуточной работы

Поскольку вы не можете постоянно держать локальный компьютер включенным, вам нужно разместить бота на облачном сервере. Достаточно недорогого VPS (виртуального сервера) за 5,000-10,000 вон в месяц.

  1. 1Купите VPS на Contabo, Vultr, DigitalOcean и т.д.
  2. 2Подключитесь к серверу через SSH и установите Python и пакеты
  3. 3Запустите в фоновом режиме: nohup python3 bot.py &

💡 Практические инсайты

Другие блоги часто упоминают только учебные значения RSI 30/70, но на корейских биржах комиссии и проскальзывание поглощают прибыль. Комиссии для мейкеров/тейкеров на Bithumb и Upbit в среднем составляют 0.04-0.25%, что при двухсторонней торговле автоматически вычитает 0.1-0.5%. То есть, стратегия скальпинга, нацеленная на среднюю прибыль менее 0.2%, может привести к чистому убытку только из-за комиссий, и соотношение средней прибыли/среднего убытка (Win/Loss Ratio) должно быть не менее 1.5, желательно 2.0 и выше, чтобы выжить в реальной торговле (соотношение R:R 3:1 и выше — еще более безопасно). В результате 6 месяцев работы на бумаге, стратегия только с RSI показала накопленный убыток -3.2%, но комбинация RSI + EMA 50 по 1-часовым свечам + трейлинг-стоп (+5% активация, -2% трейлинг) привела к +9.8%. Кроме того, в условиях специфики корейского рынка Kimchi Premium (разница цен на криптовалюту в Корее и за границей) выше 8% статистически увеличивает частоту неэффективности сигналов RSI в 2 раза, поэтому необходимо учитывать фильтр Kimchi Premium 8% в бэктестах, чтобы избежать ликвидации в волатильных рынках 2024-2025 годов. Установите короткие стоп-лоссы (капитал -1%/сделка) и длинные тейк-профиты с трейлингом — это общая черта ботов, которые выживают более года.

Важные замечания и отказ от ответственности

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

🔧 Related Free Tools

Похожее