Добрый день!
Хочу поделиться своим простеньким мобильным приложением для расчета доходности ОФЗ полностью сделанным на 1С.
Цель: популяризация создания мобильных приложений на 1С + помощь в выборе облигаций ОФЗ для покупки.
Скачать приложение "Доходность ОФЗ" на RuStore

Так как в данной публикации есть 2 логические части - техническая (разработка конфигурации и мобильного приложения) и финансовая (расчет доходности), я разделю повествование на 2 части:
Описание техническое части (разработка конфигурации и мобильного приложения):
Еще до создания мобильного приложения я сделал для себя конфигурацию на 1С, позволяющую получать данные по облигациям и рассчитывать доходность по ним.
Использовал этот инструмент, так как сам активно приобретал облигации и хотелось провести свой более детальный анализ и во всем этом получше разобраться, а доходность, которую показывала мосбиржа и брокеры, на мой взгляд, считается кривовато, к тому же там нельзя задавать параметры, от которых сильно зависит доходность + нет расчета эффективной доходности (с реинвестированием).
В итоге более менее получилось проанализировать в автоматическом режиме все ОФЗ + около 2500 шт корпоративных облигаций, у которых получилось рассчитать доходность.
Конфигурация получала данные HTTP - запросом по API московской биржи + API Т-инвестиций + парсила сайт Смарт-лаба (рейтинги, параметры облигаций).
Материалов на Инфостарте предостаточно, подробно описывать не буду.
Периодически в пульсе Тинькова я выкладывал расчеты доходности облигаций на основе отчетов из моей конфигурации в таком виде:
«Простая» доходность к погашению ОФЗ:

Эффективную доходность (с реинвестированием) ОФЗ:

Расшифровка эффективной доходности ОФЗ:

Эффективную доходность (с реинвестированием) Корпоративные облигации, пример:

Идея перенести это всё в мобильное приложение витала в воздухе, так как это удобней, быстрей, мобильнее.
Взял за основу для мобильного приложения ТОЛЬКО облигации ОФЗ, так как корпоративных слишком много (более 2500 штук), у них нужно анализировать больше параметров: кредитный рейтинг, даты оферты и т.д.
По инструкции Собираем и запускаем приложение на Android (.apk файл) собрал в апк мою конфигурацию, меня порадовало 3 момента:
Сборка мобильного приложения заняла менее одного часа (с установкой всех компонентов)
Весь функционал работал.
Мобильное приложение получает данные в любой точке города, хотя мобильный интернет у нас глушат. Брокерские приложения сбера, тинькова, альфы не открываются, а моё приложение открывается и всегда работает :-)
Естественно, формы и отчеты приходилось прокручивать, т.к. они не влезали в рабочую область.
Я оптимизировал вывод информации в форму списка справочника "облигации", с применением фильтров по этому справочнику + оставил только ОФЗ + вынес форму списка в рабочую область начальной страницы.
Получилось, что форма списка превратилась по сути в отчет, с сортировкой по рассчитанной доходности (либо по сроку), а все параметры расчета устанавливаются в "опциях" + внешний вид более менее похож на брокерские приложения. Мне показалось это достаточно удобным.
Внешний вид приложения:

Опции приложения:

Форма элемента справочника "Облигации":

Форма списка выплаты купонов:

Форма записи выплаты купона:

Форма списка расчета эффективной доходности:

Форма записи расчета эффективной доходности:

Обновил приложение, добавил возможность вбивать в мобильное приложение количество ОФЗ в твоем портфеле, по этим данным строится 2 отчета:
Стоимость портфеля из ОФЗ:

И график выплат на ближайший год:

На данный момент мобильное приложение "Доходность ОФЗ" позволяет:
1) Рассчитывать "простую доходность к погашению"
2) Рассчитывать "эффективную доходность (с учетом реинвестирования купонов) с выводом подробного графика реинвестирования.
3) Выводить баланс портфеля ОФЗ
4) Выводит график выплат купонов на ближайший год и ожидаемый денежный поток
Описание финансовой части (расчета доходности):
Приложение рассчитывает 2 вида доходности:
«Простая доходность к погашению» — это годовая доходность в процентах, которую получит владелец облигации, если купит её по рыночной цене и продержит до погашения.
«Эффективная доходность к погашению» — это годовая доходность с учетом реинвестирования полученных купонов. Если сравнивать со вкладами, то это аналог «сложного» процента, когда проценты «капитализируются».
При расчете эффективной доходности к погашению нужно учесть нескольких последовательных реинвестиций купонных доходов, что делает подсчет вручную очень трудоёмким, а данное приложение позволяет автоматически рассчитывать эффективную доходность, по каждому реинвестированию можно посмотреть подробную информацию - сколько докупили ОФЗ, по какой цене и т.п.
В расчете смоделирована ситуация, когда мы берем 1 млн рублей, покупаем на всю сумму ОФЗ по текущей цене. Каждый раз, на сумму выплаченных купонов мы приобретаем еще эти же самые облигации по выбранному варианту цены. В конце мы имеем определенное количество ОФЗ по цене конечного периода, умножаем кол-во на цену, получаем сумму, делим её на кол-во лет.
В приложении есть возможно рассчитать эффективную доходность по 3 вариантам цен, по которой будут реинвестироваться купоны:
а) по текущей цене
б) по номиналу облигации
в) по прогнозной цене - планируемая цена облигации в определенный период, с учетом равно пропорционального распределенного номинального дохода по всему сроку от момента покупки до конца срока владения.
Пример: ОФЗ со сроком 5 лет, текущая цена 500 рублей, номинал 1000 рублей, выплата купонов 2 раза в год
По текущей цене - докупаем ОФЗ по 500 рублей.
По номиналу облигации - докупаем ОФЗ по 1000 рублей.
По прогнозной цене - докупаем ОФЗ по усреднённой цене.
Шаг цены будет рассчитан следующим образом: (Номинал-ТекущаяЦена)/КоличествоВыплатКупоновВсего = (1000-500)/10 = 50 рублей в полгода - это настолько цена ОФЗ должна увеличиваться каждые полгода. Т.е. сейчас купили по 500 рублей, через полгода за 550 рублей, через год по 600 рублей, а в конце цена будет равна номиналу (1000 руб).
На мой взгляд, это самый оптимальный вариант расчета, т.к. чем ближе к погашению, тем, как правило, ближе цена к номиналу.
Приложение позволяет рассчитать доходность С учетом удержания НДФЛ с купонов и БЕЗ учета удержания НДФЛ.
Если у вас счет ИИС-3, то купоны по облигациям на ИИС-3 не облагаются налогом, и вы можете считать доходность БЕЗ учета удержания НДФЛ. Эффективная доходность на большом сроке очень сильно отличается С НДФЛ и БЕЗ НДФЛ.
В приложении есть возможность посчитать и сравнить эффективные доходности ОФЗ на определенной дистанции - на 3, 5, 10 лет. Это поможет сделать правильный выбор при покупке ОФЗ, исходя из ваших целей (накопить на квартиру и т.д.).
В приложении можно отобрать ОФЗ по сроку, и если вас не интересуют длинные ОФЗ, вы ограничивает выборку, например до 3 лет. Есть возможность добавлять ОФЗ в избранное, и тогда вы можете выбрать только их.
Все параметры ОФЗ загружаются автоматически по API с Московской биржи (MOEX). Руками вводить ничего не нужно.
Все данные по ОФЗ, фильтры, избранное хранятся на вашем смартфоне, а по кнопке "загрузить / обновить ОФЗ" происходит обновление цены, срока и т.п.
Доступен просмотр календаря выплаты купонов по каждой облигации.
В расчете не учитывается НКД.
Доступна сортировка по сроку погашения и по доходности.
Не является индивидуальной инвестиционной рекомендацией.
Расчет приблизительный, на длинной дистанции невозможно предугадать, какая будет политическая и экономическая обстановка. Текущая цена ОФЗ сильно зависит от ключевой ставки ЦБ.
Мобильное приложение тестировалось на моём смартфоне: Realme GT NEO 3
Мобильное приложение разработано для ОС: Android
Dim369
Привет!
Скачал, смотрю, сам хотел такую сделать.
Пока качал, прочитал статью, и сразу вопрос: как же с корпоративными облигациям? Я вообще с ОФЗ не работаю...
Ну и не очень понял, почему нкд не учитывается - это очень значимый фактор, да и считается вроде не трудно.
В остальном очень круто!
Suker Автор
Спасибо за обратную связь и за положительную оценку :)
В моей обычной конфугурации 1С доступны все облигации, а в мобильное приложение я решил перенести только ОФЗ из за их популярности, надежности и простоте при работе с ними. Выбирая корпоративные облигации нужно проанализировать горы информации, в основном по надежности должника, доходность отходит на второй план.
Корпоративные облигации я пока не готов добавлять в мобильное приложение, не все детали продумал, вижу определенные трудности работы с ними именно в мобильном варианте:
1) Долго ждать - корпоративных облигаций много, по режиму торгов TQCB сейчас я получаю 2835 штук. Если обновлять сразу все - то это очень долго, нужно придумывать частичное получение таким образом, что бы и пользователь долго не ждал, а обновлялось всё (иначе расчет будет неверным).
2) Неудобно просматривать - работать с таким огромным списком будет неудобно, пользователю придётся искать интересующие облигации и добавлять в избранное, а цель другая - с помощью расчета доходности автоматически выводить и сортировать самые оптимальные. Нужно подумать, как организовать формы, что бы это было для пользователя удобно, как выводить кучу параметров, что бы это было читаемо.
3) Нужно заполнять все параметры - для анализа корпоративных облигаций нужно будет заполнять и выводить в приложении практически все параметры. У ОФЗ с надежностью всё более менее ясно, а так же с датой аферты (её нет). У корпоративных нужно будет постоянно получать рейтинги, уровни листинга, объемы торгов, обновлять даты аферты и многое другое. Это не всегда можно сделать быстро, пример по рейтингу: невозможно спарсить сайт Смарт-лаб сразу по всем облигациям, я делаю это небольшими порциями по 100 облигаций, иначе сайт блокирует. Значит нужно искать другие источники для получения рейтинга, пока этим не занимался. Или другой пример: для работы с Тиньков API нужно делать ключ на чтение - пользователь сразу откажется делает больше, чем нажать на несколько кнопок :)
4) Так же я хочу напомнить - рассчитать и сравнить доходности я могу только у облигаций с фиксированным купоном. Корпоративных много с плавающим, поэтому очень большая часть становится недоступна для автоматического анализа.
НКД я решил пока не учитывать, т.к. посчитал, что он лишь незначительно влияет на общую доходность. При расчете простой доходности к погашению, брать "цену приобретения" = (цену облигации + НКД) категорически неверно, и чем больше НКД, тем более ошибочным получается расчет к погашению. Чем меньше НКД - тем больше срок, и соответственно, чем больше НКД - тем меньше срок, и получается, что НКД "замораживает" ваши средства либо на очень короткий интервал (когда НКД большой), либо на интервал побольше, но очень незначительную сумму (когда НКД маленький). При расчете доходности к погашению С учетом НКД, простая линейная формула превращается в формулу с дополнением, нужно рассчитать "заморозку" средств в виде НКД, не сказать, что это очень трудно, но всё же :)
Так же я не стал учитывать комиссии биржи и брокера в расчетах.
Да, они уменьшат доходность, но одинакого для всех ОФЗ, поэтому никак не повлият на приоритет выбора ОФЗ для покупки.