AI / LLM-интеграции

AINews

Автономная торгово-аналитическая система, которая в реальном времени собирает новостной поток из десятков источников, силами LLM превращает его в проверяемые торговые сигналы и самостоятельно исполняет сделки на криптобирже с полным управлением риском и сопровождением позиции. Весь цикл проходит без участия оператора: от сбора сырых публикаций до открытия, трейлинга и закрытия позиции, с доставкой сигналов, обоснований и отчетности по PnL в Telegram и живым мониторингом через веб-дашборд.
ASP.NET Core C#

Задача

Рынок реагирует на значимое событие за минуты, а ручной анализ не успевает: ценные сигналы тонут в потоке шума, повторов и перепечаток одной и той же новости из разных лент. Нужна была система, которая решает не задачу классификации, а задачу действия. От нее требовалось:
  • свести разнородный поток финансовых и технологических новостей к небольшому числу действительно значимых событий;
  • довести каждое событие до конкретного решения: инструмент, направление, цена входа, тейк-профит, стоп-лосс и размер позиции с поправкой на риск;
  • полностью автоматизировать исполнение и сопровождение сделок в мультипользовательском режиме;
  • сохранять устойчивость при сбоях внешних API и при их лимитах, не теряя цикл целиком;
  • ставить защиту капитала выше частоты сделок.

Решение

Построен сквозной конвейер из шести независимых стадий.
  • Сбор. Параллельный опрос 12 источников (Hacker News, Yahoo Finance, Investing, MarketWatch, CoinDesk, Reddit, GitHub Trending, StockTwits, Google Trends, Product Hunt, Telegram-каналы, MOEX) с изоляцией каждого парсера: падение одной ленты не роняет цикл.
  • Дедупликация. Кластеризация близких новостей на основе 64-битного SimHash, расстояния Хэмминга и коэффициента Жаккара поверх инвертированного индекса по ключевым словам. Это убирает перепечатки до обращения к платной модели и режет объем входа в LLM в разы.
  • Анализ. Двухпроходный разбор: первый проход батчами по 40 постов ищет события первого порядка по строгому алгоритму (уровень события, фактор неожиданности, заложенность в цене, подтверждение движением), второй проход строит неочевидные цепочки второго и третьего порядка по всему результату.
  • Фильтрация риска. Отобранные сигналы проходят через риск-менеджера, который подмешивает рыночный контекст: индекс страха и жадности, RSI инструмента, консенсус аналитиков. Решения keep, reduce_risk или reject с количественной коррекцией уверенности и уровней.
  • Исполнение. Сделки открываются на BingX с расчетом размера по критерию Келли, адаптацией под волатильность и жесткими лимитами номинала и плеча.
  • Сопровождение. Открытые позиции переоцениваются на свежих новостях, ведется трейлинг с переводом в безубыток, а отдельная сверка с биржей закрывает в базе позиции, вышедшие по TP, SL или ликвидации.
Замкнут контур обучения на обратной связи: дизлайки идей и статистика win-rate за 30 дней по символам подаются обратно в промпт, и система со временем смещает выбор от неудачных категорий и инструментов.

Архитектура и сложности

  • Отказоустойчивость к внешним API. Каждый источник обернут в безопасный сбор, а обращения к LLM защищены ретраями с экспоненциальной задержкой и корректной обработкой ответа 429 с учетом заголовка Retry-After. Сбой части инфраструктуры деградирует результат, но не останавливает цикл.
  • Точная интеграция с биржей. Реализован клиент BingX USDT-M Perpetual с подписью HMAC-SHA256, поддержкой режимов hedge и one-way, округлением количества и цены до шага лота и тика, а также автоматическим ужатием позиции под фактический лимит номинала, который биржа возвращает кодом ошибки. Идемпотентность открытия обеспечена окном дедупликации сделок.
  • Ранжирование по свежести. Релевантность сигнала моделируется экспоненциальным затуханием с периодом полураспада 6 часов, а итоговый отбор сделок идет по комбинированной метрике уверенность на отношение прибыли к риску на свежесть.
  • Самопишущийся слой миграций. Схема БД синхронизируется с моделью предметной области через рефлексию: недостающие колонки и индексы добавляются, лишние удаляются автоматически при старте, что снимает ручное сопровождение схемы.
  • Защита веб-периметра. Глобальный rate limiting по скользящему окну с лимитом 200 запросов в минуту на IP и отдельная строгая политика на вход.
  • Живой мониторинг. Веб-дашборд получает логи работы конвейера в реальном времени через SignalR на бинарном протоколе MessagePack.
  • Планирование и масштаб на пользователей. Циклический планировщик с настраиваемым интервалом сканирования, единый формат учета сделок и сигналов, исполнение для каждого пользователя по его ключам и режиму (демо или реальный счет).

Результат

  • Полностью автономный цикл от новости до исполненной и сопровождаемой сделки, работающий круглосуточно без оператора.
  • Кратное сокращение объема данных, доходящих до платной модели, за счет дедупликации до анализа, что снижает стоимость инференса и повышает плотность полезных сигналов.
  • Дисциплина риска зашита в систему на нескольких уровнях: динамический фильтр по рыночному контексту, размер позиции по Келли с ограничением 5-25 процентов, потолок номинала и плеча, перевод в безубыток и трейлинг.
  • Прозрачная отчетность: реализованный и нереализованный PnL, win-rate по закрытым сделкам и история по каждому инструменту доступны в Telegram в одно нажатие.
  • Измеримая обратная связь: накопленная статистика результатов возвращается в принятие решений, превращая систему в самоулучшающийся контур.
  • Архитектура переживает отказы внешних сервисов и лимиты API без потери рабочего цикла.

Стек

  • Платформа: .NET 10, C#, ASP.NET Core Razor Pages
  • Реал-тайм: SignalR с протоколом MessagePack
  • Данные: MS SQL Server, linq2db, собственный авто-мигратор схемы на рефлексии
  • AI: Mistral AI (chat-инференс и эмбеддинги), structured output в формате JSON
  • Сбор данных: HtmlAgilityPack, парсеры RSS и JSON, источники Yahoo Finance, CNN Fear and Greed, MOEX ISS
  • Торговля: BingX USDT-M Perpetual API, подпись HMAC-SHA256, критерий Келли, ATR и волатильность
  • Интеграции: Telegram Bot API, MailKit и MimeKit для почты
  • Инфраструктура: Quartz для планирования, rate limiting по скользящему окну, сессии и кэш
 
Сюда Туда