Существующие решения на GitHub имеют фатальные изъяны. Разберём несколько примеров — плюсы и минусы.
TauricResearch/TradingAgents
Ссылка на исходный код
Пайплайн собирает посты из Reddit, X, Bloomberg, Reuters и Yahoo Finance. Два агента ведут дебаты: один доказывает, что цена вырастёт, другой — что упадёт. Вы задаёте количество раундов, после чего один из агентов побеждает.
На поверхности это выглядит как работающая система. Но в коде видно, что агентам подаётся дамп сырых индикаторов. LLM не способны корректно обрабатывать такие данные в текстовом формате из-за проблемы приоритизации.
LLM учатся быстро обосновывать ответ, а не тщательно рассуждать. Когда на вход подаются, например, RSI и Stoch RSI одновременно, агент реагирует на тот индикатор, который «попался» первым. При этом часто один говорит о перепроданности, другой — о перекупленности.
Цепочка рассуждений может быть такой:
- RSI показывает перепроданность — цена должна вырасти
- Нет инструмента для проверки через бэктест — игнорируем
- Stoch RSI показывает перекупленность — фокус смещается, ответ уже сформирован
Если жёстко задать веса индикаторам, система теряет адаптивность и начинает терять деньги. Можно создать среду с динамическими приоритетами, но цена высока: до 200k токенов на один бэктест (от $1.20 до $6.00 в зависимости от модели). Частое обновление невозможно — возвращаемся к статичным приоритетам. В итоге TauricResearch работает как подбрасывание монетки.
Если убрать индикаторы, возникает эффект «пылесоса»: агент собирает мнения, но не может отличить одного человека с 10 аккаунтов от 10 разных. Также есть проблема платных API: доступ к X (Twitter) стоит $200 в месяц. При использовании бесплатных альтернатив (например, Mastodon) есть риск, что блогер, за которым следит агент, перестанет публиковать контент.
node-ccxt-backtest
Ссылка на исходный код
На основе чужих ошибок я выбрал другой путь: 8 агентов анализируют информацию по разным темам:
- Баланс — On-chain резервы, отток с бирж, предложение LTH, доля неликвидного предложения, HODL-волны
- Движение денег — притоки в ETF, давление продаж майнеров, притоки стейблкоинов на биржи, OTC-объём
- Фундаментальные метрики — хэшрейт, MVRV ratio, NVT ratio, модель Stock-to-Flow
- Доходы сети — комиссии, пропускная способность Lightning, активность бондов, TVL DeFi
- Инсайдерские транзакции — покупки MicroStrategy, активы ETF BlackRock, Grayscale GBTC, государственные кошельки
- Новости актива — регуляторные события, взломы, институциональное принятие
- Глобальный макро — решения ФРС, CPI, DXY, Fear & Greed, денежная масса M2
- История цены — аномальные объёмы, подтверждения пробоев, закрытые сделки
В теории это должно работать. Но такие метрики, как max drawdown и Sharpe ratio, показывают: подход слишком оторван от реальности. Рынок реагирует не только на данные, но и на твиты президента США.
Почему оба подхода не работают
Это одно и то же — просто разный уровень «сырости» данных. Один запрашивает у «умных» источников, другой — у «тупых». Проблема в статичности: запросы не адаптируются под меняющиеся рыночные условия.
Паттерн «Рассуждение + Действие»
Это подход, при котором LLM чередует мышление и действие. Между шагами рассуждений агент должен иметь возможность искать информацию в новостной ленте. Так он поймёт, стоит ли фокусироваться на фундаментальном сдвиге или локальном отскоке.
Я реализовал такой агент. Удачно совпало по времени: президент США вмешался в ситуацию с Ираном — и я получил живой тест-кейс. Код приведён ниже, сначала — анализ сигналов и ценового графика.