Интеграция LLM (GPT, Claude, DeepSeek) в OsEngine позволяет создать полностью автоматизированную систему, которая торгует на основе данных из новостей. Продолжаем разбираться с тем, как это работает.
Сегодня поговорим про концепцию взаимодействия ИИ и Вашего робота. Примеры роботов будем рассматривать чуть позже в этой серии статей.
Некоторое время назад в OsEngine был добавлен источник, позволяющий подключаться к новостному потоку. RSS, Телеграмм, Смарт-Лаб. Вводная статья здесь: https://smart-lab.ru/company/os_engine/blog/1118776.php
Сделано это было не в праздных интересах, «чтобы было». Сделано это для вполне конкретных вещей автоматизации торговли, чтобы можно было наладить автоматическое исполнение приказов, исходя из новостных лент. Как по явным сигналам, так и при помощи их анализа искусственным интеллектом.
Возвращаемся к теме после небольшого перерыва. Сегодня рассмотрим концептуальные вопросы работы с ИИ.
Компании разработчики LLM предоставляют различные способы взаимодействия с ними.
Можно использовать веб приложение или мобильное приложение и вручную вводить текст новости и задавать вопрос. К этому мы все давно привыкли.
А можно взаимодействовать с LLMчерез API, то есть разработать свое приложение, которое в автоматическом режиме будет передавать тексты новостей в LLM, получать и обрабатывать ответы.
Именно такой способ (через API) будет рассматриваться в качестве основного в нашем случае. Мы здесь ведём разговор про полную автоматизацию.
В следующих статьях мы будем рассматривать скрипты, которые обращаются к LLM через API и сами торгуют на основе данного анализа.
Большие языковые модели обучены на огромных массивах данных, включая финансовые отчёты, новости и аналитику. Они могут:
— Определять тональность текста (позитивная/негативная/нейтральная);
— Выделять ключевые события (например, слияния компаний, изменения процентных ставок);
— Прогнозировать влияние новости на рынок (рост/падение актива, волатильность).
Например, «Компания Apple сообщает о рекордной выручке в IV квартале» – это позитивный сигнал для акций Apple. Или «Ракеты с ядерным зарядом летят на Нью-Йорк. Пуск 1400 Ярсов зафиксирован с территории РФ. Пентагон обещает сбить до 25%.» – это сигнал скорее негативный для индекса S&P 500.
LLM могут не только классифицировать новость, но и давать конкретные рекомендации:
— Купить / Продать / Держать;
— Целевые уровни (Take Profit, Stop Loss);
— Ожидаемая волатильность.
Таким образом, ИИ и LLM открывают новые возможности для новостного трейдинга:
— Автоматический анализ новостей;
— Мгновенная реакция на рыночные события;
— Снижение эмоциональных решений за счёт алгоритмического подхода;
Существует множество ограничений, про которые Вы должны знать до начала экспериментов. Поэтому нужно про это отдельно написать. Магия может случиться, только если Вы подойдёте к вопросу серьёзно.
3.1 Грамотные промты.
Первое, что понадобится научиться делать – это грамотные запросы. Или «Промты».
Промт (Prompt) – это текстовый запрос, который пользователь отправляет языковой модели (LLM) для получения нужного ответа. В контексте трейдинга качество промта напрямую влияет на точность сигналов. Неправильно составленный запрос может привести к ошибкам, «галлюцинациям» или бесполезным ответам.
Вариант плохого промта: «Расскажи про эту новость» — Слишком широко, ответ бесполезен для трейдинга.
Хороший вариант:
«Новость: {текст}. Дай ответ в формате:
ТИКЕР: [AAPL]
СИГНАЛ: [BUY/SELL/HOLD]
УВЕРЕННОСТЬ: [0-1]»
3.2 Ограничения при использовании.
a) Длина контекста (Context Window);
Современные LLM (например, GPT-4, Claude, Mistral) имеют ограниченный размер контекста – обычно от 4K до 128K токенов.
Если новость слишком длинная (например, отчёт компании на 20 страниц), модель может «забыть» начало текста.
При потоковой обработке множества новостей буфер может переполняться, и качество анализа снизится.
b) Стоимость токенов;
LLM работают на платных API (OpenAI, Anthropic и др.), где цена зависит от количества токенов.
Например, GPT-4 Turbo: примерно, $10 за 1M входных токенов.
Для снижения расходов можно фильтровать только важные новости (не отправлять спам или дубли) либо использовать более дешёвые модели (например, GPT-3.5 вместо GPT-4 для первичной фильтрации).
c) Задержки (Latency);
GPT-4 через API может отвечать 1-3 секунды, что критично для HFT.
Сложные запросы (анализ нескольких новостей) увеличивают время обработки.
d) Неточность и «Галлюцинации»;
LLM иногда ошибаются или выдают ложные выводы:
Могут переоценить влияние новости.
Путают тикеры (например, «TSLA» и «TLSA»).
Дают противоположные сигналы на почти идентичные новости.
В этом случае можно снизить риски добавив человеческую верификацию для сложных случаев, использовать ансамбли моделей (например, GPT-4 + Claude + локальная модель), обучать модель на исторических данных (как рынок реагировал на подобные новости).
e) Ограничения API (RPM, TPM);
Публичные API имеют лимиты запросов:
OpenAI: до 10 000 токенов в минуту (TPM) для GPT-4.
Anthropic: ограничения по RPM (запросы в минуту).
OsEngine (https://github.com/AlexWan/OsEngine) – это открытая платформа для алготрейдинга, которая поддерживает подключение внешних API, включая LLM.
Как это работает?
4.1 Сбор новостей
— OsEngine может получать новости из RSS-лент, сайта Smart-Lab.ru или Telegram-каналов.
4.2 Отправка текста в LLM
— Новости передаются через API (OpenAI, Anthropic, ИИ туннели/агрегаторы, локальный LLM) примерно в таком формате:
«Проанализируй новость и дай торговый сигнал: {текст новости}»
4.3 Парсинг ответа ИИ
— Ответ может быть в свободной форме:
«Рост выручки Apple на 15% – позитивный сигнал. Рекомендую купить AAPL с TP $200.»
— Или структурированным, например, JSON:
{
«signal»: «BUY»,
«ticker»: «AAPL»,
«target_price»: 200,
«stop_loss»: 180,
«confidence»: 0.85
}
4.4 Исполнение сделки
OsEngine парсит ответ и отправляет ордер на биржу (Московская биржа, NYSE, криптобиржи).
Данный пример уже написан и работает. Будем его рассматривать в следующих статьях серии.
Удачных алгоритмов!
Комментарии открыты для друзей!
https://smart-lab.ru/company/os_engine/blog/1024149.php
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Канал научный трейдинг: https://t.me/bad_quant