Всё началось со знаменитого челленджа - соревнования, где разработчики пытаются создать прибыльного AI-трейдера. Идея засела в голове: а что если LLM действительно может торговать лучше человека? Без эмоций, без FOMO, без revenge trading в три часа ночи. Я решил проверить. И вот к чему это привело.

Как всё началось

История началась банально - с бессонницы и бесконечного скролла трейдерских телеграм-каналов. В очередной раз наблюдая, как люди хвастаются иксами и плачут над ликвидациями, я подумал: человеческая психология - это главный враг трейдера. Страх, жадность, FOMO - всё это систематически убивает депозиты.

А что если убрать человека из уравнения?

Нет, конечно, идея не нова. Алготрейдинг существует десятилетия. Но классические боты работают по жёстким правилам: пересёкся RSI - покупай, MACD развернулся - продавай. Проблема в том, что рынок - это хаос, а хаос плохо укладывается в if-else конструкции.

Вот тут и появляется LLM. Модель, которая может «понимать» контекст, видеть паттерны и, главное, - рассуждать.

Почему DeepSeek?

Выбор модели был прагматичным:

Цена. OpenRouter даёт доступ к DeepSeek V3.1 за копейки по сравнению с GPT-4. Когда бот делает запросы каждые 15 минут 24/7 - это критично.

Контекстное окно. 128K токенов - это возможность скормить модели три таймфрейма свечей с индикаторами, историю сделок, текущие позиции и детальный системный промпт.

Качество рассуждений. Субъективно, но DeepSeek показался мне более «дисциплинированным» в следовании инструкциям по сравнению с некоторыми альтернативами.

Архитектура: что внутри

Система получилась многослойной. Расскажу про ключевые компоненты.

Мультитаймфреймовый анализ

Это фундамент всей стратегии. Бот анализирует рынок на трёх уровнях:

4-часовой (Trend). Определяет глобальный тренд. Если EMA20 выше EMA50, MACD в плюсе, RSI в диапазоне 40-70 - рынок бычий. Это главный фильтр: против 4H тренда позиции не открываются.

Часовой (Structure). Ищет структуру рынка: откаты к скользящим, swing high/low, зоны поддержки и сопротивления. Здесь определяется, есть ли хороший pullback для входа.

15-минутный (Execution). Точка входа. RSI разворачивается из перепроданности, MACD пересекается, цена закрывается выше EMA20 - всё, можно входить.

Идея в том, что каждый таймфрейм должен подтвердить сигнал. Нет согласованности - нет сделки.

Системный промпт: священное писание бота

Вот это была самая интересная часть - программирование поведения модели через текст. Промпт получился на 280 строк и содержит:

Классификацию входов. Три типа сделок с разным риском:

  • Type A (with-trend) - 2% капитала на сделку, все три таймфрейма должны совпасть

  • Type B (counter-trend) - 1% капитала, только при экстремальных значениях RSI на 4H

  • Type C (range) - торговля в боковике, когда чёткого тренда нет

Жёсткие правила выхода. Это важно. Я запретил модели закрывать позиции по «ощущениям». Выход только когда:

  • Сработал стоп-лосс

  • Пробита структура на 1H (цена закрылась за swing low/high)

  • 4H тренд развернулся (закрытие за EMA50 + смена MACD)

  • Достигнут тейк-профит

Правило 20%. Если цена в пределах 20% от стоп-лосса - руками не трогать. Дать сделке дышать.

{
  "ETH": {
    "signal": "entry",
    "side": "long",
    "quantity": 0.5,
    "profit_target": 3150.0,
    "stop_loss": 2880.0,
    "leverage": 5,
    "confidence": 0.72,
    "risk_usd": 150.0,
    "invalidation_condition": "If price closes below 4h EMA20",
    "justification": "TYPE A: 4H bullish, 1H pullback to EMA20, 15M RSI oversold turning up"
  }
}

Модель отвечает строго в JSON. Никакой лирики, никаких «я думаю, что возможно...». Чёткий сигнал, размер позиции, уровни, обоснование.

Стек технологий

Всё крутится на Python:

  • Binance API - рыночные данные (свечи, объёмы, funding rate)

  • pandas + numpy - расчёт индикаторов (EMA, RSI, MACD, ATR)

  • OpenRouter API - доступ к DeepSeek

  • Hyperliquid SDK - исполнение сделок на mainnet (опционально)

  • Streamlit - дашборд для мониторинга

  • Docker - деплой

Данные персистятся в CSV: история сделок, решения AI, состояние портфеля. Всё можно проанализировать постфактум.

Paper trading: первые результаты

Сначала, конечно, бумажная торговля. Никаких реальных денег, только симуляция.

Стартовый капитал: $10,000.

Торгуемые активы: ETH, SOL, XRP, BTC, DOGE, BNB.

Первые дни были... поучительными. Модель вела себя непредсказуемо: то входила в сделки без явного сетапа, то держала позиции слишком долго, игнорируя сигналы выхода.

Проблема была в промпте. Первая версия была слишком абстрактной: «торгуй дисциплинированно, управляй риском». Модель интерпретировала это по-своему.

Решение - максимальная конкретика. Вместо «соблюдай риск-менеджмент» - точные формулы расчёта размера позиции. Вместо «следи за трендом» - конкретные условия (EMA20 > EMA50 AND MACD > 0).

После нескольких итераций промпта бот стал показывать осмысленное поведение. Sharpe Ratio перевалил за 10, Sortino - за 19. На графике equity обгоняет BTC buy & hold.

Что пошло не так

Было бы нечестно писать только об успехах. Вот реальные проблемы, с которыми столкнулся:

Переобучение на промпт. Иногда модель буквально следовала инструкциям, игнорируя контекст. Написал «не входи против тренда» - она отказывалась от очевидных разворотных сетапов даже когда все индикаторы кричали.

Галлюцинации. Да, LLM галлюцинируют даже в трейдинге. Пару раз модель обосновывала вход «сильным бычьим диве��генсом», которого на графике не было.

Задержки API. OpenRouter иногда тормозит. 15-минутное окно для принятия решения превращается в гонку.

Слишком много сделок. Первые версии промпта давали слишком много входов. Модель видела паттерны везде. Пришлось добавить фильтры и требования к confluence (минимум 2 подтверждающих фактора).

Funding rate ловушка. Хотел использовать funding как дополнительный сигнал. Оказалось - плохая идея. Это запаздывающий индикатор. Теперь он только как tiebreaker при 50/50 ситуациях.

Бэктестинг: машина времени для стратегий

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

Система скачивает свечи с Binance, кэширует локально, и шаг за шагом прогоняет каждый бар через LLM. Это позволяет тестировать разные промпты без риска реальных денег.

Каждый прогон сохраняет полную трассировку: все решения модели, сделки, состояние портфеля. Можно потом открыть в дашборде и анализировать.

python3 backtest.py  # И ждём... долго ждём

Бэктест на неделю данных может занять часы - всё-таки это реальные LLM-запросы на каждый бар.

Живая торговля: момент истины

После месяца paper trading решился подключить к Hyperliquid. Небольшой депозит, изолированное плечо, стопы на месте.

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

Первая сделка - лонг по ETH. Вход по структуре, стоп под swing low. Закрылась в плюс на 2R. Нервничал весь д��нь.

Были и убыточные серии. Три стопа подряд по BTC в боковике. Модель упорно пыталась поймать тренд, которого не было.

Но в целом система держится. Не иксы, но и не слив. Медленный, контролируемый рост.

Уроки и выводы

Несколько мыслей после полугода экспериментов:

LLM - это не волшебная кнопка «деньги». Модель не предсказывает будущее. Она просто более дисциплинированно следует правилам, чем человек в 3 часа ночи.

Промпт-инжиниринг - это итеративный процесс. Первая версия промпта будет плохой. И вторая тоже. Нужно смотреть, как модель ошибается, и закрывать дыры.

Риск-менеджмент важнее стратегии входа. Можно иметь 30% винрейт и быть в плюсе, если соотношение риск/прибыль хорошее.

Автоматизация не отменяет мониторинг. Бот должен быть под присмотром. Рынок меняется, API падают, модели обновляются.

Инфраструктура - это 80% работы. Красивый код логики сделок - это 20%. Остальное: логирование, дашборды, уведомления, обработка ошибок, бэкапы, деплой.

Что дальше

Я не опускаю руки. Проект продолжает развиваться.

Сейчас работаю над несколькими направлениями. Тестирую разные промпты под разные режимы рынка. Экспериментирую с мультимодельным подходом - несколько LLM голосуют за решение. Улучшаю систему алертов и аналитики.

Первые результаты обнадёживают. Не буду обещать иксы и пассивный доход - рынок слишком непредсказуем для таких заявлений. Но направление кажется перспективным, и я намерен копать дальше.

Если эта статья найдёт отклик - буду писать ещё. Про конкретные промпты, про бэктесты разных стратегий, про интеграцию с биржами.


Весь исходный код проекта доступен на GitHub: https://github.com/tot-gromov/llm-deepseek-trading

Можете форкнуть, поэкспериментировать, предложить улучшения. Pull requests приветствуются.

В своем блоге расписал более подробно про нововведение "8 Gates", где фильтруем вход сделку с учетом волатильности BTC.


Disclaimer. Это не финансовый совет. Всё описанное - эксперимент. Торговля криптовалютами несёт риск потери капитала. Любые результаты прошлых периодов не гарантируют будущей доходности. Используйте только те деньги, которые готовы потерять.