Zero-Infrastructure: как я полностью автоматизировал расчеты валютных индексов и генерацию обзоров рынка с помощью ИИ

Коллеги, приветствую.

У меня есть пет-проект Abscur, который я развиваю уже довольно давно. Его суть — расчет абсолютных курсов валют. С помощью математической декомпозиции матриц кросс-курсов я очищаю 45 мировых валют от взаимного влияния и привожу их к единому измерителю — невзвешенной расчетной единице ABS. На основе этих данных рассчитывается чистая волатильность активов, коэффициенты вариации ($CV$), просадки ($Maximum\ Drawdown$) и реальная доходность акций Мосбиржи без рублевого шума.

Проекту много лет, историческая база накоплена огромная (глубина в 20 лет). Однако долгое время оставалась открытой чисто продуктовая проблема: как сделать систему полностью автономной, обновляемой каждые сутки, но при этом не тратить ни копейки на содержание выделенных серверов и баз данных?

Недавно я полностью перестроил архитектуру пайплайна. Теперь вся цепочка работает по схеме «Zero-Infrastructure», а ежедневная аналитика генерируется и публикуется полностью автоматически. Рассказываю, из каких кирпичиков собран этот процесс.

1. Расчеты по расписанию: Kaggle как бесплатный cron

В качестве среды исполнения я выбрал Kaggle Notebooks. Для таких задач это идеальное облачное Linux-окружение: там уже предустановлены все нужные data-science библиотеки, а главное — есть возможность запуска скриптов по расписанию (scheduled runs).

Каждые сутки скрипт автоматически просыпается и выполняет математическую часть пайплайна:

  • Сбор данных: Подтягивает свежие котировки по всем кросс-курсам.
  • Линейная алгебра: Логарифмирует матрицу, переводит относительные изменения в линейные уравнения и находит изолированные значения для каждой валюты.
  • Технический анализ: На основе абсолютных курсов рассчитываются скользящие средние ($MA7$, $MA30$), индексы относительной силы ($RSI(abc)$ в дополнение к стандартному $RSI(py6)$) и показатели волатильности.

2. Генерация контента: подключаем Gemini API

Раньше сухие таблицы и графики требовали ручной интерпретации для публикаций на сайте и в каналах. Чтобы автоматизировать этот процесс и исключить человеческий фактор, я подключил к пайплайну Gemini API.

Через защищенные OAuth-токены Kaggle передает нейросети собранные технические метрики и агрегированные новостные заголовки по ключевым глобальным активам, товарам и акциям (включая Сбербанк, Норникель и др.).

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

3. Публикация результатов без ручного ввода

Готовые результаты (JSON-структуры данных для графиков и сгенерированные текстовые обзоры) скрипт напрямую коммитит в репозиторий GitHub. Оттуда через настроенный автоматический пайплайн данные подтягиваются фронтендом сайта на платформе Blogger.

В итоге графики, таблицы портфелей (оптимизированные по Шарпу и Сортино) и ежедневные обзоры обновляются на сайте полностью автономно. От сбора котировок до публикации аналитики не требуется ни одного ручного действия.

Исходный код и описание модели:

  • Подробное математическое обоснование и описание модели декомпозиции кросс-курсов на русском языке: Abscur: Описание методики расчета
  • Посмотреть, как устроена автоматизация внутри среды Kaggle, и форкнуть Python-скрипт можно в открытом репозитории: Kaggle Notebook: abscur2

Буду рад обсудить в комментариях архитектуру пайплайна, связку Kaggle + GitHub для автоматизации процессов, а также ваш опыт интеграции LLM в регулярные аналитические задачи.