Всё началось со знаменитого челленджа - соревнования, где разработчики пытаются создать прибыльного AI-трейдера. Идея засела в голове: а что если LLM действительно может торговать лучше человека? Без эмоций, без FOMO, без revenge trading в три часа ночи. Я решил проверить. И вот к чему это привело.
История началась банально - с бессонницы и бесконечного скролла трейдерских телеграм-каналов. В очередной раз наблюдая, как люди хвастаются иксами и плачут над ликвидациями, я подумал: человеческая психология - это главный враг трейдера. Страх, жадность, FOMO - всё это систематически убивает депозиты.
А что если убрать человека из уравнения?
Нет, конечно, идея не нова. Алготрейдинг существует десятилетия. Но классические боты работают по жёстким правилам: пересёкся RSI - покупай, MACD развернулся - продавай. Проблема в том, что рынок - это хаос, а хаос плохо укладывается в if-else конструкции.
Вот тут и появляется LLM. Модель, которая может «понимать» контекст, видеть паттерны и, главное, - рассуждать.
Выбор модели был прагматичным:
Цена. 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, состояние портфеля. Всё можно проанализировать постфактум.
Сначала, конечно, бумажная торговля. Никаких реальных денег, только симуляция.
Стартовый капитал: $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 приветствуются.
Disclaimer. Это не финансовый совет. Всё описанное - эксперимент. Торговля криптовалютами несёт риск потери капитала. Любые результаты прошлых периодов не гарантируют будущей доходности. Используйте только те деньги, которые готовы потерять.
Источник

