XXX★
XXX★ личный блог
26 июля 2025, 05:37

Облигационный фонд программиста. #1

В попытках сделать очередной шаг к успеху я решил попробовать вырастить дерево. В моем случае это означает, что на доход от своих субордов ВТБ я буду растить второй источник пассивного дохода. Отдельный портфель и одна из целей будет превысить свой основной портфель по рублевой оценке.

Суборды генерят сейчас 2кк раз в пол года (что создает относительно неплохой для современной России денежный поток в 290т.р. в мес после налогов, а на ИИС было бы 333к):
Облигационный фонд программиста. #1
В ноябре 26г ставку пересчитают и купон должен стать заметно больше, скорость роста ИИС возрастет.

Так как я раньше был программистом, то склонен пытаться все оптимизировать. Единственный способ легально не платить налоги с инвестиций это ИИС3. Соответственно завел новый ИИС3 у ВТБ и завел туда небольшую сумму для набора начальной микро-позиции.

Почему у ВТБ? Портфель планирую собирать из облигаций, а у ВТБ нет брокерской комиссии за операции с ОФЗ. Да, чтобы чуть более оптимизировано было — операций продаж не будет. Получается что для набора ОФЗ я буду платить только комиссию биржи за покупку. При покупке корпоративок — комиссию и брокера и биржи, но тоже в одну сторону только.

На ИИС3 будут приходить купоны, налога не будет. Облигаций будет много. Будет почти весь ряд ОФЗ, за вычетом специфичных линкеров и некоторых флоутеров. Ну и крупные корпораты уровня Роснефти, МТС, Ростелеком итд. Во что-то типа Диасофта того же, например, лезть точно не буду. Только крупняк.

Я сказал, что выпусков в портфеле будет много? На данный момент их 57 и если будет что-то интересное, то количество будет расти. Пропорцию пока держу примерно равную. Чем больше выплат, тем чаще я буду реинвестировать. Это выгодно с точки зрения сложного процента. Дипсик сказал что разница пои моем подходе в сравнении с реинвестированием раз в пол года будет доходить до 1,2%, я его рассчеты не проверял, мне достаточно того, что и так понятно, что чем чаще, тем лучше, а я тут за результатом пришел. Доходность я планирую смотреть и оценивать уже фактическую по всему портфелю.

Чтобы не потеряться в таком количестве облигаций пришлось думать о ведении какого-то журнала облигаций. Сначала то что я пытался построить было совсем примитивным:
Облигационный фонд программиста. #1

Это файл эксель, в котором есть основная таблица и отдельная таблица с данными под каждую облигацию. Я пытался вычислить доходность и обнаружил, что необходимо учитывать точные финансовые потоки для корректного расчета. А именно точные даты и суммы платежей по купонам, а так же даты погашения. И вот для хранения информации о купонах и понадобились изначально отдельные таблички под каждую облигацию.

Но сейчас уже все выглядит совсем иначе. Так как заметную часть портфеля составляют облигации с переменным купоном, что стало очевидно, что необходимо их более точно учитывать. Если просто брать последний купон и применять его на следующие периоды, то это катастрофа, а не точность получается. А чтобы предсказывать размеры купона, необходимо предсказывать ставку ЦБ, так как купоны привязаны либо к КС (го катку?), либо к RUONIA. Так появилась таблица предсказаний ставки:

Облигационный фонд программиста. #1

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

Облигационный фонд программиста. #1

Получается, что на карточке облигации появилась система предсказания купона — справа. И таблица денежных потоков, которая слева и используется непосредственно для расчета доходностей, она строится на основе предсказаний купонов полуавтоматически: все, кроме следующего купона, который нужно пользователю (т.е. мне)задавать руками по факту его установления (в 99% случаев купон на период известен заранее, кроме некоторых флоатеров). То есть предсказания предсказаниями, но как только купон становится официально объявлен — модель его сразу получит, заставит пользователя ввести или выпадет в ошибку (ниже подробнее). С точки зрения эксель я просто беру дату выплаты каждую и ищу ее в диапазонах из таблицы предсказаний ставки ЦБ, потом добавляю бонус к ставке, разный у всех облигаций и считаю на основе предсказанной ставки купон.

И особенно круто, что меняя свой прогноз по ставке ЦБ на отдельной странице, все зависимые купоны автоматически обновятся для каждого выпуска. И в дальнейшем я могу разделить прогноз ставки ЦБ и Руониа (сейчас я принял допущение, что они равны). Это вселяет оптимизм по поводу возможности добавления и других настраиваемых параметров — предсказаний. Но у меня тут нет идей пока.

И я сделал так, что модель всегда знает дату на которую актуализирована и если дата меняется и начинает превышать дату какого то купона (57 облиг платят часто очень), то для этой облигации возникнет ошибка:
Облигационный фонд программиста. #1

и мне нужно тогда залезть и руками удалить строчку с прошедшей выплатой и настроить следующий купон. Это дает мне постоянный контроль: я могу в ежедневном режиме отслеживать прошедшие выплаты и собирать статистику — как часто ВТБ задерживает купоны, например :)

Хочу, чтобы мне прям на отдельной странице эксель вывел список ближайших выплат с предсказанными купонами, но пока этого еще не делал, занят другим.

Кстати, так вот выглядит поток выплат сейчас:
Облигационный фонд программиста. #1

Деньги будут приходить часто и мелкими дозами. Но регулярно и стабильно. Есть чем заняться на пенсии, а чтобы понять какую облигу докупать надо уметь сравнить различные доходности. Так, в эксель есть функция XIRR, которая работает так:

Облигационный фонд программиста. #1

А есть доходность из терминала, которая подразумевает реинвестирование купонов под тот же процент в течение срока жизни облигации. И эти доходности сильно разные.

Пока что я на этапе заполнения карточек облигаций и на это уйдет несколько неторопливых дней — я на пенсии (вышел в 33, кста) и стараюсь не перетруждаться. Просто так их быстро раскопировать не получится, так как там операции с диапазонами выплат плюс разные условия по купонам у облигаций ПК. Пытаться автоматизировать заполнение у меня так же нет желания, этот медитативный монотонный процесс настройки полей и формул успокаивает, как лего :)

Ну и наверняка же многим интересно бы взглянуть на текущий список облигаций, которые я купил и отслеживаю:
Облигационный фонд программиста. #1

Облигационный фонд программиста. #1

Облигационный фонд программиста. #1

Облигационный фонд программиста. #1

Облигационный фонд программиста. #1

Облигационный фонд программиста. #1

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

Вывод: начинать процесс инвестирования с нуля очень интересно. Я ощущаю ИИС3 нак некую виртуальную машину изолированную. Суборды ее питают, я отслеживаю параметры, и этот процентный локомотив тихо едет, но спокойно. В отличие от того же Андрея Хохрина, лезть изучать ВДО и внутренности компаний мне не хочется. Можно купить акции и думать заплатит не заплатит, вырастет не вырастет, а можно купить облигации той же компании, например и получать доходность выше ОФЗ, но без особых рисков практически. В этом путь моего ниньдзи.

С экселем раньше, ктати, не часто работал, очень выручает дипсик. Ощущаю себя крепким джуном экселя с ним, будучи сеньером с++)) Очень показательно, как технологии ИИ эти помогут человечеству. Прикупить еще облиг яндекса надо будет.

Если было интересно читать — лайканите, если не влом, тогда может и продолжения будут.

А пока мне все это напоминает игру, где птичек надо было собирать: там в итоге магия сложного процента довела меня без вложений до:
Облигационный фонд программиста. #1
(https://smart-lab.ru/blog/716603.php)
25 Комментариев
  • Татьяна Полищук
    26 июля 2025, 16:04
    Спасибо за описание опыта! Очень полезно. Воодушевляющий пример FIRE.
      • Татьяна Полищук
        26 июля 2025, 19:58
        XXX★, пост с благодарностью симпатично выглядит на фоне многих советов без запроса))) да, я целом про накопить состояние (во всех смыслах — и даже то что у Вас описывается как «делаю таблицу как медитацию» это внутреннее, душевное состояние спокойствия и безопасности, осознания своего выбора, устойчивости и безопасности в этом ходе жизни), «выйти на пенсию» и начать наслаждаться жизнью.
  • myaucha
    26 июля 2025, 08:16
    Еще, как вариант, можно считать месячную доходность (в процентах годовых).
    B1 — баланс портфеля на начало месяца
    B2 — баланс портфеля на конец месяца
    MD — дней в месяце
    D = B2 — B1 — доход за месяц
    P = D / B1 * 100 * 365 / MD — доходность в процентах годовых за месяц.

    Если в течение месяца были пополнения, то вычитать их из B2. B1 же, напротив, включает пополнения прошлого месяца.

    Ну и ежемесячно наносить точку на график. Можно таким образом и за неделю, и за квартал, и за полгода считать, но месяц — некий оптимум, не дающий серьезной погрешности при пополнениях. При расчете периодом в месяц можно пренебречь формулами xirr и им подобными.

    Ну и такой метод удобен для контроля эффективности алгоритмов, когда инструментов много, сделок много, денежный поток стабильно положителен. Так сказать, подбивать итоги месяца.
  • myaucha
    26 июля 2025, 08:53
    Ну и для ежедневного расчета XIRR (как почти-программист программисту)

    Public Function MyXIRR(Values As Range, Dates As Range, Balance As Range) As Double

    ReDim varDates(1 To Dates.Count) As Double
    ReDim varValues(1 To Values.Count) As Double

    Dim objCell As Range
    Dim lngIndex As Long

    lngIndex = 0
    For Each objCell In Dates

    lngIndex = lngIndex + 1
    varDates(lngIndex) = objCell.Value
    Next

    lngIndex = 0
    For Each objCell In Values

    lngIndex = lngIndex + 1
    varValues(lngIndex) = objCell.Value
    Next

    varValues(UBound(varValues)) = varValues(UBound(varValues)) — Balance.Value

    MyXIRR = Excel.WorksheetFunction.Xirr(varValues, varDates) * 100
    End Function

      • myaucha
        26 июля 2025, 09:26
        XXX★, Так это и есть адаптированная формула, на базе стандартной Excel.WorksheetFunction.Xirr. В ячейке прописываете =MyXIRR(), и вперед! Писать что-то на C++ под Excel — это уже явный перебор. А вообще, как хотите — у каждого свой путь к бедности и старости :)
  • Сергей Скориков
    26 июля 2025, 13:40
    Если вы программист, то мне кажется проще на php это все сделать. Чтобы не добавлять вручную все облигации, можно у брокера заказать отчёт, он будет в формате эксель. На php есть библиотека, которая очень быстро разбирает этот экселевский файл в виде массива. Можно получить с него данные и записать в табличку MySQL. Из таблички взять isin и сделать запрос по апи на мосбиржу и получить цены, и даты выплаты купонов и офферт. Разместить это все на хостинге с доступом к Линуксу. И можно настроить автоматическое обновление. Плюс доступ с любой устройства. При желании можно добавить бот телеграмм и будет вам каждый день присылать отчёт об изменении цен и об том, когда будет ближайшая выплата какая сумма. Хотя, возможно, вы не знаете PHP, но по мне он не сильно отличается от С++ при желании и наличии времени можно за неделю осилить.
  • GTO
    26 июля 2025, 21:51
    Простите, а расскажите в чем был глобальный смысл покупать субординированную облигацию?
  • Валерий Иванович
    27 июля 2025, 03:10
    для учета денежного потока использую две таблицы в эксель.
    в одной учет по всем бумагам по месяцам.
    вертикаль — месяц.
    горизонталь бумага.
    таким образом учитываю начисленный доход в месяц и итоговый  в год.

    вторая таблица — учет приходов денег от бумаг по месяцам.
    бумага, сумма, дата получения.
    по месяцам и по годам.

    очень полезно видеть % доходности в год и суммы денежного потока.
  • SimpleVasya
    27 июля 2025, 08:28
    Фотография экрана?)
  • Михаил Шардин
    27 июля 2025, 10:40
    Программист фотографирует экран на телефон?
      • Михаил Шардин
        28 июля 2025, 07:59
        XXX★, хорошая статья, просто скриншоты были бы красивее. Даже если среда разработки физически отключена от сети — флешки тоже попали под запрет политикой безопасности?
  • Рустем Мухаметшин
    27 июля 2025, 14:19
    Гтлк возьми. Высокий доход от госбумаг ааа
  • Рустем Мухаметшин
    27 июля 2025, 14:22
    Я не парюсь с реальным графиком платежей. Просто считаю количество (дробное, например 365/30) интервалов в год и по нему по формуле степени получаю приближенную xirr доходность без использования чиствндох

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн