Привет, Smart-Lab!
Большую часть жизни я провел в финансах: казначейство, управление ликвидностью, работа с капиталом. И всё это время моим основным инструментом был Excel. Всегда хотелось как усовершенствовать имеющиеся модели. И хотя Excel при профессиональном подходе дает огромные возможности их все равно может не хватить под какую-то конкретную задачу. Также в последнее время с расцветом ИИ я как и многие увлекся вайб-кодингом, порог доступа к которому теперь стал ниже, чем был раньше. Решил раздвинуть рамки Excel моделей за счет python.
В этой статье я расскажу, как финансисту (не профессиональному разработчику) пересесть на Python и собрать свой инвестиционный терминал, который делает именно то, что нужно вам. Когда я начал глубже погружаться в изучение облигаций, то мне захотелось создать свой инструмент, в который я бы мог сам добавить те показатели, которые бы посчитал нужным.
Откуда я брал данные для терминала.
Первый вопрос любого цифрового проекта — данные. Вот откуда я беру данные для своего терминала
1. Московская Биржа
Это «сердце» терминала. Данные подтягиваются напрямую с Московской Биржи (MOEX ISS). Забираются данные напрямую через ISS-запросы для построения Кривой бескупонной доходности (КБД).
•
Параметры Нельсона–Сигеля: Терминал в реальном времени подтягивает коэффициенты (B1, B2, B3, T1) и G-корректировки.
•
Живой расчет: На базе этих параметров скринер вычисляет справедливую доходность для любой точки дюрации, что позволяет нам видеть реальный G-спред в базисных пунктах по каждой бумаге.
2. УК «ДОХОДЪ»
Если данные Московской Биржи дают нам «цену», то аналитика от УК «ДОХОДЪ» дает нам понимание «
качества». Терминал интегрирует данные их сервиса «Анализ облигаций».
•
Кредитный скоринг: Из первоисточника подтягиваются числовые показатели кредитного качества эмитента. Это позволяет мне сразу оценить, насколько эмитент закредитован.
•
Сложные коэффициенты: Парсер собирает такие специфические метрики, как
Inside Q (внутреннее качество по методологии УК «ДОХОДЪ»),
NetDebt/Equity (уровень долговой нагрузки) и
Ликвидность (LI).
•
Матрица спредов: ниже отдельно опишу логику по этому блоку
3. Smart-Lab
Для облигаций Smart-Lab служит источником данных по выплатам купонов, а для акций это полноценная база фундаментальных показателей.
•
Мультипликаторы в реальном времени: Скрипт забирает со страниц Smart-Lab ключевые показатели:
P/E Live, NetDebt/EBITDA и рассчитывает показатели
Forward DY (прогнозную дивидендную доходность),
FCF Yield (доходность свободного денежного потока). Для расчета этих метрик парсятся необходимые фундаментальные показатели из отчетов компаний со Smart-Lab. Это позволяет терминалу показывать по каждой акции эмитента актуальные метрики.
•
Сценарный анализ дивидендов: Парсим данные по
Payout (процент прибыли на выплаты) сразу в трех разрезах: консенсус-прогноз, оценки аналитиков и исторические данные. Здесь данные берутся сразу из трех источников, если в одном источнике нет данных для эмитента, то скрипт берет данные из другого. Это json-файл, в котором собрал по эмитентам % выплат дивидендов, сайт УК «ДОХОДЪ» (данные по дивидендам) или со Smart-Lab (строка «Дивиденды/прибыль, %» из отчетности эмитентов.) Это дает возможность строить более точные прогнозы по будущей доходности дивидендов.
•
История купонов: Для облигаций парсер вытягивает историю фактически выплаченных купонов. Это критически важно для раздела «Портфель», чтобы считать вашу реальную прибыль с учетом уже выплаченных купонов
4. Snowball Income
Для блока акций терминал интегрирован с данными
Snowball Income.
•
Дивидендный календарь: Информация о датах закрытия реестра, дивидендной отсечки, Див. доходность и размере объявленных выплат.
•
Статусы: Терминал отслеживает статус дивидендов (рекомендованы, объявлены или отменены), обеспечивая актуальность «форвардной» доходности.
Вкладка облигаций
Вкладка акций
Матрица спредов: Как терминал «раскладывает рынок по полочкам»
Здесь отдельно нужно описать
логику определения перепроданности/перекупленности бумаги. Чтобы найти по-настоящему выгодную сделку, недостаточно просто смотреть на доходность. Нужно понимать, сколько рынок платит «в среднем» за аналогичный риск. Для этого в терминале реализована
Матрица спредов — это профессиональный инструмент визуализации, который позволяет окинуть взглядом весь долговой рынок и мгновенно найти «аномальные» зоны.
1. Как строится матрица спредов
Представьте таблицу, где весь долговой рынок разделен на четкие сектора:
•
По горизонтали (Колонки): Мы разбиваем облигации по «корзинам дюрации» — от коротких (0–1 год) до длинных (5+ лет).
•
По вертикали (Строки): Группируем их по кредитному качеству (рэнкингу) — от эталонных AAA до спекулятивных категорий.
На пересечении этих параметров образуется «ячейка», в которой собираются только прямые конкуренты.
2. Находим «Золотой стандарт» (Медиана)
В каждой ячейке скрипт вычисляет
Медиану — среднюю премию за риск (G-спред) для этой группы бумаг в текущий момент.
• Для точности расчетов терминал в реальном времени подтягивает коэффициенты кривой КБД напрямую с Московской Биржи.
• Медиана ячейки становится нашим ориентиром: она показывает, какая доходность сейчас считается «нормальной» для такого рейтинга и срока.
3. Ищем аномалии через Дельту
Когда у нас есть эталон, мы сравниваем с ним каждую конкретную бумагу. Эту разницу мы называем Дельтой:
Delta = G-Spread — Median
•
Если Дельта заметно выше нуля: Перед нами сигнал «
ДЕШЕВО». Бумага по какой-то причине платит больше, чем её «соседи» по ячейке с тем же уровнем риска. Это и есть та самая рыночная неэффективность — возможность купить качество со скидкой.
•
Если Дельта ушла в минус: Бумага переоценена. Рынок уже «перегрел» её цену, и доходность не оправдывает риск по сравнению с аналогами.
Итог: Матрица позволяет мне мгновенно отсечь рыночный шум и сфокусироваться на тех облигациях, которые дают премию к рынку, оставаясь при этом в рамках понятного кредитного качества.
Интерфейс матрицы спредов с цветовой градиентной заливкой
Технологии для «не-программиста»
Многие коллеги боятся слова «программирование», думая, что нужно учиться пять лет. На самом деле, связка
Python + Streamlit — это магия.
Streamlit позволяет превратить скрипты на Python в полноценный веб-интерфейс. Если вы можете написать формулу в Excel, то с помощью Cursor вы сможете собрать интерфейс в Streamlit. А если добавить к этому
n8n для автоматизации цепочек (например, уведомления в Telegram по триггерам), вы можете настроить оповещения, которые работают на вас 24/7. Последние я еще не реализовал.
Для меня навыки кода стали не просто «хобби», а мощнейшим апгрейдом. Это как если бы вы всю жизнь ходили пешком, а потом пересели на спортивный байк.
Мой портфель облигаций
Вкладка Мои активы
Проект в развитии
Я не буду лукавить: мой терминал — это живой организм, а не «коробочный» продукт. Я постоянно что-то добавляю и исправляю. Вот сейчас хочу реализовать отображение динамических спредов для каждой облигации на графиках. Скрипт уже написал, осталось упаковать в терминал.
Зачем я это пишу?
Я ищу единомышленников. Тех, кто тоже «кодит» для личных финансов, или профильных экспертов, которым не хватает автоматизации.
• Как вы решаете вопрос с качеством данных?
• Какие метрики в облигациях для вас сейчас приоритетны (в условиях текущих ставок)?
• Стоит ли добавлять в такой инструмент ИИ-агентов для первичного анализа отчетности?
Давайте обсудим в комментариях. Верю, что автоматизация — это единственный способ для частного инвестора не «сгореть» в потоке информации и принимать взвешенные решения.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.