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 в регулярные аналитические задачи.