Я уже рассказывал о том, как написал скрипт для поиска ликвидных облигаций. Но в 2021 году ситуация поменялась.

С 1 января 2021 года в России удерживается НДФЛ с купонов по всем облигациям.

Раньше действовал п. 25 ст. 217 налогового кодекса — по нему проценты по государственным и муниципальным облигациям РФ освобождались от НДФЛ. А сейчас этот пункт прекратил свое действие. Теперь и ОФЗ, и муниципальные, и корпоративные облигации оказались на одном уровне в плане налогов.

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

В итоге я собрал новую версию гугл-таблицы. В статье расскажу об изменениях и о том, как ею пользоваться.

Моя таблица в «Гугл-документах»
Моя таблица в «Гугл-документах»

Что изменилось по сравнению с предыдущей версией

Исчез неактуальный столбец о налоговых льготах. Раньше в таблице была отметка, если облигацию выпустили после 1 января 2017 года, — на такие облигации действовали налоговые льготы. Сейчас льгот нет, отметки, соответственно, тоже.

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

Добавились данные о месяцах выплат купонов. На сайте Мосбиржи для каждой облигации опубликован график выплаты купонов — там есть информация о месяцах выплат.

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

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

Какие параметры для меня важны

Мне было важно иметь возможность указать определенные параметры. Какие-то — диапазоном, какие-то — минимальным порогом.

Диапазон текущей доходности. В Т⁠—⁠Ж уже есть хорошая статья про доходность облигаций. При поиске для себя я указываю диапазон доходности 7—13%.

Диапазон текущих цен. Обычно я ищу варианты именно для парковки денег до полутора лет и держу облигации до погашения. Для этого случая слишком высокая цена скорее отпугивает: ведь эмитент при погашении заплатит только 100% номинала. Поэтому при поиске указываю диапазон: 97—102% от номинала.

Диапазон дюрации. Дюрация — это эффективный срок до погашения облигации. Учитываю диапазон так, чтобы видеть только те облигации, погашение по которым будет в нужные мне сроки. Обычно указываю диапазон 3—18 месяцев.

Условие минимального количества сделок в каждый из 15 последних дней. Это самый важный параметр, из-за которого я и писал скрипт. Неприятно, когда ты выбираешь облигацию, а только потом понимаешь, что торгов по ней нет. Поэтому я хотел иметь возможность указать пороговый объем сделок в каждый из последних 15 дней, чтобы фильтр показывал только те бумаги, которые подходят по условиям — и которые я точно смогу купить.

Все эти критерии я учел в своей таблице со встроенным поиском.

Как работает таблица

Если посложнее: таблица работает за счет программного интерфейса к информационно-статистическому серверу Московской биржи (ИСС, ISS). По ссылке есть описание работы сервиса.

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

Открытый исходный код работы скрипта
Открытый исходный код работы скрипта

Сам код скрипта можно посмотреть через панель «Инструменты» → «Редактор скриптов». Расскажу вкратце, что делает скрипт:

  1. Подключается к внешнему сервису Московской биржи, перебирая укрупненные группы разных режимов торгов облигациями. Их три: «Т0: основной режим — безадрес», «Т+: основной режим — безадрес», «Т+: основной режим (USD) — безадрес».
  2. Далее скрипт ищет внутри этих ответов с сервера Мосбиржи бумаги, удовлетворяющие заданному диапазону текущей доходности и диапазону текущих цен.
  3. Когда такие бумаги найдены, это сразу уменьшает выборку с полутора тысяч всех доступных на Мосбирже облигаций до нескольких десятков максимум.
  4. Среди найденных вариантов происходит дальнейшая фильтрация по оборотам в каждый из 15 последних торговых дней.
  5. После этого массив найденных бумаг записывается в таблицу на вкладку «Результат», а перед этим вся вкладка очищается от любых записей.
  6. Разрешение на отображение и выполнение внешнего веб-контента требуется только для того, чтобы через дополнительный пункт меню отобразить ссылку на статьи в Т⁠—⁠Ж.

Работа скрипта полностью зависит от сервера Московской биржи

Это означает, что если Мосбиржа поменяет формат выдачи, или организует другие режимы торгов, или изменит что-то в существующей системе, то для корректной работы скрипта потребуется его доработка.

Пошаговое руководство по использованию

По ссылке откроется сразу ваша копия таблицы — можно редактировать данные прямо в ней.

После корректировки параметров скрипту необходимо авторизоваться для работы. Для этого перейдите на вкладку меню «Инструменты» → «Макросы» и выберите любой из двух пунктов: «1. Открыть описание работы таблицы» или «2. Искать по параметрам».

Далее скрипту потребуется дать разрешение для того, чтобы он смог работать в вашем аккаунте.

Выбор пункта работы скрипта
Выбор пункта работы скрипта
Диалоговое окно авторизации
Диалоговое окно авторизации
Выбор учетной записи для запуска скрипта
Выбор учетной записи для запуска скрипта

После выбора аккаунта Гугл сообщит, что эксперты компании не проверяли это приложение, но если нажать на ссылку «Дополнительные настройки», то появится еще одна ссылка — переход на страницу. Жмем на нее.

Предупреждение о конфиденциальности
Предупреждение о конфиденциальности

Далее потребуется разрешить такие действия:

  1. Просмотр, создание, изменение и удаление таблиц на «Гугл-диске».
  2. Подключение к внешнему сервису.
  3. Отображение и выполнение внешнего веб-контента в уведомлениях и на боковых панелях приложений Гугла.
Окно разрешения действий для конкретно этого скрипта
Окно разрешения действий для конкретно этого скрипта

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

В меню этой гугл-таблицы появится новый пункт «Поиск облигаций v. 5», а в нем кнопка «Искать по параметрам». Она запустит работу скрипта, который закончит свою работу примерно за минуту, вставив результаты работы на лист «Результат».

Результат работы скрипта
Результат работы скрипта

Запомнить надо две вещи

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