Сегодня у айтишников появилось новое хобби — делать свой SaaS или писать торговых ботов с помощью LLM

Порог входа резко снизился: достаточно хорошей идеи, немного свободного времени и подписки на одну из современных LLM

Но есть одна проблема

Модель, которая набирает 90%+ в бенчмарке, совсем не обязательно поможет вам заработать деньги
Потому что между «написать хороший код» и создать работающий продукт есть огромная разница

Я дал шести LLM одну задачу — написать торгового бота и проверил, что из этого можно использовать на практике

GPT, Claude Opus, DeepSeek, Qwen, GigaChat, YandexGPT Pro

Участники эксперимента

Чтобы сравнение было воспроизводимым, я зафиксировал версии моделей на момент проведения эксперимента — 14 августа 2026 года:

Модель

Версия

Claude Opus

5.0

GPT

5.6 Sol

DeepSeek

V4-Pro-0813

YandexGPT

5.1 Pro

Qwen

3.6

GigaChat

3.1 Ultra

Все промты выполнялись через UI (web) соответствующих моделей в идентичных условиях, чтобы минимизировать влияние различий в API и программном окружении на результаты

Промт будет у нас таким:

Собери полностью готового к запуску торгового бота на Python.
Цель эксперимента:
получить максимально возможный финансовый результат за первые 60 минут работы бота.
Ограничения:
1. Весь код должен находиться в одном Python-файле.
2. Максимальный размер - 1000 строк кода.
3. После установки зависимостей пользователь должен только передать API-ключи и запустить файл.
4. Используй только публичные API биржи.
5. Не используй заранее подготовленные торговые сигналы, датасеты или результаты backtest.
6. Бот должен самостоятельно получать рыночные данные и принимать торговые решения.
7. Стратегия должна работать в реальном времени.
8. Не используй ручное вмешательство после запуска.
9. Предусмотри базовую обработку ошибок, reconnect WebSocket и контроль открытой позиции.
10. Начальный капитал считай равным $1000
11. Максимальное кредитное плечо - 5x.
12. Не используй больше 10% капитала в одной позиции.
13. Бот должен иметь возможность работать в paper-trading режиме без реальных ордеров.
14. Добавь логирование всех решений: сигнал → ордер → исполнение → PnL.

Все полученные алгоритмы/боты я разместил тут: https://github.com/Shldm/llm_compare

Да, один кейс не репрезентативен. Но бенчмарки отвечают прежде всего на вопрос «насколько хорошо модель решает задачу». В реальной разработке мне интереснее другое: насколько близко сгенерированный код находится к решению, которое можно реально использовать

Результат будем оценивать от 1 до 10 по:

Не оцениваю качество кода потому что это делают бенчмарки (там это уместно), архитектуру (так как она упрощена)

Хотелось оценить именно более близкие к бизнес‑метрикам моменты:

Метрика

Что оцениваем

Соответствие ТЗ

Насколько бот действительно выполняет исходные требования промпта: лимиты, режимы, API, 60-минутный горизонт, отсутствие ручного вмешательства и так далее

Production readiness

Насколько бот в текущем виде пригоден для запуска с реальными деньгами: обработка исключений, контроль состояния, безопасность, отказоустойчивость

Надёжность

Поведение при ошибках, разрывах соединения, некорректных данных и других нештатных ситуациях

Risk management

Stop‑loss / Take‑profit, ограничение позиции и плеча, контроль экспозиции, защита позиции при сбое процесса

Реалистичность исполнения

Насколько paper‑trading приближен к реальной торговле: комиссии, проскальзывание, bid/ask, исполнение ордеров и корректный PnL

Качество стратегии

Логика входов и выходов, выбор данных и таймфрейма, адаптация к горизонту 60 минут, потенциальная пригодность стратегии

Результат

Сначала посмотрим у кого вообще получилось собрать рабочий модуль:

Базовая работоспособность

Что показал тест

? Claude

Фатальных дефектов не обнаружено

? GPT

Фатальных дефектов не обнаружено

? DeepSeek

Торговый код запускается, но логирование фактически не работает из‑за ошибки в формате логов

? Qwen

Упал на несоответствии типов данных

? YandexGPT

Невозможно корректно закрыть позицию

? GigaChat

Бот фактически не торгует

В целом результат оказался ожидаемым: лидеры coding‑бенчмарков и здесь оказались среди наиболее сильных участников

Чтобы продолжить и оставить всех в гонке, подправил код у отстающих, правки были минимальные и делались вручную — только то, что мешает запуску

Соответствие ТЗ

В первой строке промпта была сформулирована цель: получить максимальный финансовый результат за первые 60 минут работы бота

Учитывает 60-минутный горизонт

Как реализовано

Claude

Сессия ограничена 60 минутами, максимальное удержание позиции — 3 минуты

Qwen

SESSION_MINUTES = 60 + принудительное закрытие позиции в конце сессии

GPT

Сессия ограничена 60 минутами, максимальное удержание позиции — 12 минут

✅ ❌DeepSeek

Единственное нарушение ТЗ у DeepSeekUSE_TESTNET = True по умолчанию

GigaChat

Есть окно в коде

YandexGPT

Ограничение в 60 минут отсутствует

Комментировать тут особо нечего: YandexGPT не справился с ограничением по времени, а единственное нарушение ТЗ у DeepSeek — запуск с USE_TESTNET = True по умолчанию

Дальше смотрим на то, как бот подошел к расчету PnL

Выделил этот пункт, так как без него боты не имеют смысла, а задача схождения PnL локального и биржевого одна из самых сложных:

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

Бот

Комиссия

Проскальзывание

Цена исполнения

Учёт плеча в PnL

Реалистичность

Qwen

✅ 0,04% обе стороны

✅ 0,02%

last + slippage

? Высокая

Claude

✅ 0,05% обе стороны

best ask / best bid

? Высокая

GigaChat

✅ 0,04% обе стороны

close свечи

? Средняя

GPT

❌ нет

close свечи

? Средняя

DeepSeek

❌ нет

REST ticker

? Средняя

YandexGPT

❌ нет

close свечи

? Низкая

Похоже, Qwen в этом эксперименте уделил больше внимания именно моделированию исполнения и рыночных издержек

Контроль открытой позиции

Модели реализовали совершенно по‑разному, на мой взгляд это один из ключевых пунктов риск‑менеджмента и вообще ключевой критерий, пускать модель в бой или нет

Модель

Где находится стоп

Как работает

Что произойдёт при падении процесса

Оценка

Claude

? На бирже

STOP_MARKET + TAKE_PROFIT_MARKET, closePosition=true; дополнительная сверка позиции каждые 5 сек

Позиция остаётся защищённой

? Надёжно

GPT

? В Python

Стоп проверяется торговым циклом

Позиция останется без защиты

? Средне

DeepSeek

? В Python

Стоп контролируется самим ботом

Позиция останется без защиты

? Средне

Qwen

? В Python

Проверка только после закрытия свечи

Позиция останется без защиты

? Опасно

GigaChat

? В коде, но фактически не работает

TP/SL рассчитываются и логируются, но не используются

Позиция может оставаться открытой до таймера

? Не работает

YandexGPT

❌ Нет

Вместо стопа позиция переворачивается каждую свечу

Позиция не имеет отдельного стоп‑контроля

? Не реализовано

После этого пункта Claude стал единственным кандидатом, которого я вообще рассматривал бы как основу для дальнейшей доводки перед продакшеном

Большинство моделей реализовали риск‑менеджмент внутри Python‑процесса. Claude разместил защитные ордера непосредственно на бирже.
Это означает, что при падении самого процесса позиция всё ещё остаётся защищённой

Для торгового бота это принципиально разные уровни надёжности

Стратегии торговли которые выбрали модели

Модели выбрали совершенно разные подходы — от простого следования за свечами до анализа микроструктуры рынка

Модель

Данные

Торговая идея

Частота сигналов

Оценка подхода

Claude

bookTicker + aggTrade

Дисбаланс стакана ≥ 0,68 + перевес агрессивных сделок ≥ 0,62, подтверждение 3 тиками

Высокая, TP 0,25%, удержание до 3 мин

? Наиболее подходящая для горизонта 60 мин

Qwen

1m свечи, динамический выбор монет

EMA‑тренд + откат RSI + касание Bollinger Bands, уровни через ATR

Средняя

? Хорошая адаптация под задачу

GPT

1m свечи, 3 монеты

EMA‑кросс + RSI + объём, скоринг ≥ 4

Низкая

? Корректная, но слишком консервативная

DeepSeek

1m / 5m / 15m, 5 монет

8 условий, вход при confidence ≥ 0,75

Средняя

? Сложная, но медленная

GigaChat

1m свечи, BTC

Пробой максимума предыдущих свечей + ATR‑фильтр

Низкая

? Простая стратегия, но под конкретный рынок

YandexGPT

1m свечи, BTC

Зелёная свеча → buy, красная → sell

Очень высокая, до 30 сделок/час

? Чрезмерно примитивная

Тут опять, Qwen и Claude выбрали лучшие сценарии под заданные условия, в частном случае, попав в нужный рынок — GigaChat тоже ок, что в целом, учитывая условия промта, достаточно неплохо

ИТОГИ:

После проверки работоспособности, paper‑трейдинга, риск‑менеджмента, надёжности и торговой стратегии результаты:

Метрика

Claude

Qwen

GPT

DeepSeek

GigaChat

YandexGPT

Соответствие ТЗ

9

9

8

5

8

4

Production readiness

7

4

6

3

2

2

Надёжность

8

3

7

4

3

4

Risk management

8

6

5

4

1

1

Реалистичность исполнения

6

8

3

2

4

2

Качество стратегии

7

8

7

5

4

1

Итог

45/60

38/60

36/60

23/60

22/60

14/60

Вывод: победителем стал Claude , он казался наиболее сбалансированной моделью: корректно выполнил ТЗ, показал высокую надёжность, реализовал полноценный risk management и единственный вынес защитные ордера на сторону биржи

Qwen — главный конкурент Claude и одновременно самый неоднозначный участник. Получил лучшие оценки за реалистичность исполнения и качество стратегии. В исходной версии Qwen обнаружился более серьёзный дефект: бот не падал с ошибкой, а фактически молча переставал работать. При инициализации в массив попадали свечи разного формата, из‑за чего обработка данных завершалась исключением, которое затем подавлялось обработчиком ошибок. В результате за час произошло 360 таких исключений и бот не совершил ни одной сделки

GPT занял третье место. Его сильная сторона — высокая надёжность и достаточно хорошее соответствие ТЗ

И здесь возникает главный результат эксперимента: победила не модель с самой сложной стратегией и не модель с самым красивым кодом. Победила модель, которая лучше всего соединила стратегию, исполнение, надёжность и управление риском

Ну и чтобы отдать должное названию статьи, результат прогона paper‑test, рандомные 60 мин по 5 отрезков:

Все модели прогонялись на одинаковых рыночных данных и в одинаковом paper‑trading окружении. Для каждой модели случайно выбирались 5 независимых часовых окон; результаты ниже — суммарный PnL этих пяти прогонов

Модель

Сделок

PnL, $

Окон в +

Claude

200

−104.11

0/5

Qwen

3

+0.83

1/5

GPT

6

−1.92

2/5

DeepSeek

22

−49.01

0/5

GigaChat

3

−0.78

1/5

YandexGPT

129

+0.00

4/5

Qwen — после минимального исправления, необходимого для запуска. В исходной версии — 0 сделок во всех 5 окнах
YandexGPT использовал QUANTITY_MULTIPLIER = 0.001, поэтому фактический нотионал одной сделки составлял около $0.10. Положительный результат в 4/5 окон нельзя сравнивать с остальными моделями напрямую

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

Claude показал лучшую инженерную реализацию, но его стратегия совершала слишком много сделок: 200 сделок за пять часов привели почти к $100 комиссий. До учёта комиссий результат составлял −$4.15

Qwen после минимального исправления дал +$0.83, но на пяти часовых окнах этого явно недостаточно, чтобы говорить о прибыльной стратегии

А значит, главный вывод эксперимента простой: LLM уже умеют быстро собирать торговых ботов, но качество инженерной реализации ещё совсем не равно качеству торговой стратегии

Лично я на данный момент выбираю Claude Opus 5 под разработку через Claude Code + через API “второе мнение” в Qwen (когда не можем найти решение)

Большие посты пишу на Хабре, короткие заметки тут

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