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


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

Комментарии (29)


  1. DS_owner
    21.12.2025 16:01

    Познавательная статья, спасибо


  1. PetrMihailov997
    21.12.2025 16:01

    Сами писали на пайтоне или наняли кодера?


    1. kostya_gromov Автор
      21.12.2025 16:01

      Работаю с напарником, он больше по коду, я по стратегии и промптам.


  1. Sly_tom_cat
    21.12.2025 16:01

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

    Можно сократить до последнего предложения.


  1. DevilDimon
    21.12.2025 16:01

    Модель не предсказывает будущее. Она просто более дисциплинированно следует правилам, чем человек в 3 часа ночи.

    А знаете, что ещё более дисциплинированно следует правилам? If-else.

    Очень смешно читать, как всю статью из LLM пытаются сделать обычный if-else скрипт, героически решая собственноручно созданную проблему, что забить гвоздь микроскопом.


    1. kostya_gromov Автор
      21.12.2025 16:01

      Хороший вопрос. Разница в том, что рынок редко даёт «чистые» сигналы. Классический бот видит: RSI = 36 - условие «< 35» не выполнено, пропускаем. LLM видит: RSI почти в зоне, но есть сильный отскок от EMA + объём растёт + 4H тренд подтверждает - входим.

      По сути LLM работает как fuzzy logic с возможностью взвешивать десятки факторов одновременно. Плюс гибкость: хочу поменять стратегию - меняю промпт за 5 минут, а не переписываю логику.

      Дешевле ли обычный бот? В разработке - да. В адаптации к меняющемуся рынку - вопрос открытый.


      1. finkrer
        21.12.2025 16:01

        Ну так можно сделать какой-то композитный индикатор, который будет чутка fuzzy. Ну и плюс вопрос ещё, что там за такие хитрые условия. EMA и RSI по сути показывают примерно одно и то же. Увидел что-то про "перепроданность" - RSI это просто функция, которая цену переводит в диапазон от 0 до 100, то есть осциллятор цены. Если посмотреть на график, можно увидеть, что его движение повторяет график цены, как и MA, только при сильных изменениях он сжимается, чтобы не выходить за диапазон.


      1. Arhammon
        21.12.2025 16:01

        Ну так и elseIf он не привязан к конкретному значению если вы же его и не привяжете. Никто не ограничивает число вложенных ветвлений. Если уж использовать ЛЛМ, то в виде добавочных весов к механическому ElseIf. При этом вы будете четко срабатывать на крайних значениях и не зависеть от глюков ЛЛМ...


      1. ToniDoni
        21.12.2025 16:01

        Вы же сами писали, что у вас максимальная конкретика, где же там фази лоджик?


  1. qiper
    21.12.2025 16:01

    Спекулятивные рынки и так ещё с прошлого тысячелетия нейросетями обложены, что там ловить?


  1. wmlab
    21.12.2025 16:01

    Вопрос: если торговая стратегия исчерпывающе описана - какую роль играет LLM? Не проще и дешевле написать торгового робота?


    1. kostya_gromov Автор
      21.12.2025 16:01

      Правила описаны, но рынок редко даёт 100% совпадение условий. LLM умеет интерпретировать «почти сетап» и взвешивать факторы, где if-else просто скажет false. Плюс меняю стратегию через промпт за минуты, а не рефакторю код.


      1. MadeByFather
        21.12.2025 16:01

        Так может тогда нужно дорабатывать стратегию, чтобы она покрывала эти дополнительные факторы или ситуации? А если это гадание на кофейной гуще, чего ещё не было раньше на рынке, то может и не надо тогда и заходить? Те, кто пытаются угадать и запрыгнуть в каждую ракету потом сидят с 90% лосса и пакетом бумажек от Virgin Galactic


      1. ToniDoni
        21.12.2025 16:01

        А вот код можно было бы и ллмкой порефакторить


  1. swame
    21.12.2025 16:01

    А что показало тестирование на истории?


    1. kostya_gromov Автор
      21.12.2025 16:01

      Если брать более масштабные периоды, например бекстетить 24,23,22й и так далее год - получается минус. Если сегментировать периоды рынка на более локальные: там, где идет четко восходящий или нисходящий тренд - получается интересно. Но есть над чем еще работать.


      1. neytrino
        21.12.2025 16:01

        Вот то что за длительный срок минус дает - в самое начало статьи и добавили бы, а не «Это не финансовый совет» в самом конце.


  1. Slar
    21.12.2025 16:01

    Проблема у автора одна. Все описанное предельно тривиально. Просто до боли тривиально. А это значит, что работать не будет. "Мудрые" мысли про исключение человека с его эмоциями примерно как "Волна впадает в Каспийское море, а трава зелёная". Возразить сложно). Ну и сами описанные подходы примерно то же самое. Сразу скажу. Эксперименты с тайм-фреймами бессмысленны. Это решается на одном низком тайм-фрейме, это эффективнее. Часовики это просто 15-минутки, умноженные на 4. Все! Никакого другого смысла тут нет, кроме замораживания логики на более длинный срок. Я это проверял. В общем я автор, вы теряете время. Не повторяйте мой горький опыт.


    1. kostya_gromov Автор
      21.12.2025 16:01

      Интересно будет почитать ваш опыт более подробнее. Поделитесь?


    1. sic
      21.12.2025 16:01

      15 минутки это просто секундные, умноженные на 900. Не теряйте времени, если есть память. Таки да.


      1. Slar
        21.12.2025 16:01

        Секундных тайм-фреймов просто не существует. Но так, да. И память тут ни при чем. На уровне хода все равно грузятся минимальные тайм-фреймы, которые просто преобразуются в более старшие при помощи библиотеки. Проверяется легко. Просто нужно построить графики любого индикатора или производного от него на базе часовиков и на базе 15 минуток тех же, с периодом в 4 раза больше. Все совпадет буквально. Если проще, есть только периоды. Нет никаких тайм-фреймов. К фрейму нельзя относиться как к единице информации. Это просто не так. Фрейм —это всего лишь масштаб. Загадка, почему это не понимает Элдер какой-нибудь.


        1. sic
          21.12.2025 16:01

          Это философский вопрос. Как раз секунды, хоть и не являются таймфреймом, для большинства бирж являются неделимой информационной сущностью. Любое событие может произойти либо в секунду t, либо до неё, либо после неё. Эту информация можно использовать (во всяких там Price action). И более точную информацию просто нельзя достоверно получить. А так, согласен, что бОльшие фреймы интервалы не более чем законный способ обмануть себя и терять информацию или искать её там, где её нет.


  1. Ibirseven
    21.12.2025 16:01

    Подложите, ну если у вас есть строгие условия входа/выхода/стоплоса, причём тут бот, какую он функцию выполняет?


  1. fndrey357
    21.12.2025 16:01

    Нейросеть такая, покуривая и глядя в окно на снежинки: "Создатели, какой фигней я занимаюсь..."

    А по большому счету получается, что торговые автоматы, которые были 10 лет назад работали по принципу if - А=10 - else, с ИИ получается if - А=примерно 10 - else.


  1. ExiTest
    21.12.2025 16:01

    llm рано или поздно сольет депозит также как и человек, т.к он похож на человека.


  1. kneaded
    21.12.2025 16:01

    С момента старта сколько в процентах прирост портфеля составил?


  1. olku
    21.12.2025 16:01

    Почему выбрали LLM вместо ML?


  1. ToniDoni
    21.12.2025 16:01

    А смысл в нейросети если в итоге использовались жёсткие рулы? Классический алгоритм справился бы быстрее и дешевле.


  1. makko
    21.12.2025 16:01

    Любопытно это всё, я тоже пробовал много разных LLM для трейдинга, участвовал в разработке торговых алгоритмов на ML, и несмотря на то, что ML гораздо больше подходит под трейдинг чем LLM, там тоже пока нет прорыва. Ну и рынок так устроен, что стратегия работает, until it don't. Продолжаем поиски священного грааля!