Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Полгода назад, летом 2020 года я написал скрипт поиска ликвидных облигаций на Мосбирже. Скрипт нужен для поиска облигаций, которые можно купить прямо сейчас с доходностью гораздо выше банковского вклада. Проценты по вкладам так и остаются на очень низких уровнях, а тут ещё и изменения в налоговом кодексе РФ подоспели.
В связи с этим решил изменить скрипт, убрав неактуальные данные о налоговых льготах, которые уже не работают в 2021 году и добавив возможность создавать облигационные лесенки. Под лесенкой имеется ввиду получение дохода как можно в большем числе месяцев, за счёт подбора облигаций с разными месяцами выплат.
Изменения в работе скрипта
1. Убраны неактуальные данные о налоговых льготах.
В 2020 году и ранее в налоговом кодексе РФ действовал п. 25 ст. 217, в соответствии с которым от НДФЛ освобождались проценты по государственным и муниципальным облигациям РФ. В результате чего при получении на брокерский счет, например, процентов по государственным облигациям ОФЗ со стороны брокера не удерживался никакой налог.
Однако с 1 января 2021 г. этот пункт прекратил своё действие. Поэтому с процентов по всем облигациям будет удерживаться НДФЛ. Кроме того, будет удерживаться НДФЛ и с процентов по любым корпоративным облигациям.
Ведь в 2020 году и ранее при соблюдении ряда условий можно было избежать уплаты НДФЛ с процентов по облигациям российских компаний. Для этого облигация должна была быть эмитирована уже после 1 января 2017 г. в рублях. Если по этой облигации проценты выплачивались в пределах порогового значения «ставка рефинансирования ЦБ РФ + 5%», то с этих выплат НДФЛ не удерживался. Однако с 01 января 2021 г. все эти нормы были убраны из Налогового кодекса.
В результате чего с начала 2021 года брокеры будут удерживать НДФЛ по ставке 13% с купонов по любым облигациям.
2. Изменен механизм фильтрации неликвидных вариантов.
Под неликвидными вариантами подразумеваются облигации, которые выглядят привлекательными по доходности, но по ним нет покупок и продаж на бирже. Невозможно купить безадресно - если никто на бирже не подал заявку на продажу облигаций, то купить эту облигацию вы не сможете. И в облигациях такое случается часто. Все удерживают и никто не продаёт. Сейчас скрипт отсчитывает 15 дней от текущей даты moment().subtract(15, 'days')
и затем проверяет обороты за каждый торговый день - соответствует ли цифра оборота указанному пороговому значению. Если оборотов нет, то бумага в выборку не попадает.
3. Добавлены сводные данные о месяцах, когда происходят выплаты.
Сводные данные о месяцах, в которых производятся выплаты, берутся из Графика выплаты купонов. Прошлые даты выплат в результаты не попадают:
coupondate = json.coupons.data[i][3]
inFuture = new Date(coupondate) > new Date()
if (inFuture == true) {
couponDates.push(+coupondate
.split("-")[1]
)
console.log(`${getFunctionName()}. Купон для ${ID} выплачивается в месяц ${JSON.stringify(couponDates[couponDates.length - 1])} (строка ${couponDates.length}).`)
}
И получается массив с цифрами будущих месяцев выплат. Далее эти цифры приводятся в текстовый вид и получается что-то вроде такой строки с месяцами:
–––-–––-мар-–––-–––-июн-–––-–––-сен-–––-–––-дек
Одна строка не информативна, но когда подобные строки стоят друг под другом можно легко подобрать несколько вариантов, чтобы выплаты были в разные месяцы - это и есть начало облигационной лесенки:
–––-–––-мар-–––-май-–––-–––-авг-–––-–––-–––-дек
–––-фев-–––-апр-–––-июн-–––-–––-сен-–––-–––-дек
Как пользоваться?
Поиск ликвидных облигаций Мосбиржи под Windows
Для Windows доступен установщик Node.js в разделе загрузить официального сайта.
Скачиваем установщик для Windows и запускаем его. Кроме базовых компонентов, дополнительно ничего устанавливать не надо.
Далее скачиваем код скрипта с гитхаба. После этого переходим в каталог /SilverFir-Investment-Report-master/Node.js Release/bond_search_v2/
, где находятся скачанные файлы:
И запускаем файл first start.bat
, который содержит указание показать установленную текущую версию Node.js и установить необходимые для запуска проекта зависимости node-fetch
и moment
:
node -v
pause
npm install node-fetch moment
После этого всё готово для запуска скрипта поиска облигаций. Для этого запускаем файл start.bat
:
Менее чем за минуту будет создан HTML файл с подпапке searching_results
с текущей датой в имени — он и содержит в себе найденные результаты.
Поиск ликвидных облигаций Мосбиржи под Linux
Если на вашем компьютере установлен Linux, скорее всего вы и сами знаете как лучше сделать. Код скрипта доступен на гитхабе. Перейдите в каталог /SilverFir-Investment-Report-master/Node.js Release/bond_search_v2/
.
Проверьте что Node.js установлена:
$ node -v
Проверьте что пакетный менеджер npm для Node.js установлен:
$ npm -v
Установите зависимости (в данном случае это только node-fetch и moment):
$ npm install node-fetch moment
Запустите файл скрипта:
$ npm start
Примерно за минуту html файл будет создан:
fs.writeFileSync(path.resolve(__dirname, `./searching_results/bond_search_${moment().format('YYYY-MM-DD')}.html`), hmtl)
Поиск ликвидных облигаций Мосбиржи под macOS
Для macOS доступен установщик Node.js в разделе загрузить официального сайта.
Сам процесс похож на установку под Windows и Linux.
Настройка параметров поиска
Теперь пришла пора настроить именно те параметры которые актуальны для вас, а не те, которые указаны для примера в самом скрипте. Сделать это можно в файле index.js, со строки 45.
Редактируем цифры, запускаем скрипт заново и примерно за минуту выборка готова.
Предыдущие версии
Предыдущие версии скрипта, без изменений 2021 года, доступны в следующих видах:
Node.js версия.
Docker версия (форк).
Версия поиска в Гугл таблице.
Итоги
Скрипт помогает экономить время и находить облигации, которые устраивают по доходности и временному горизонту.
Выборка «не является индивидуальной инвестиционной рекомендацией и может не соответствовать вашему инвестиционному профилю» — фраза абсолютно верна, ведь сам скрипт просто инструмент — решение о дальнейшей покупке конкретных найденных бумаг должен принимать уже человек после знакомства с эмитентом.
Скрипт работает только за счет API Московской биржи, с которой я никак не связан. Я использую ИСС Мосбиржи только в личных информационных интересах.
Автор: Михаил Шардин,
4 января 2021 г.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Используете облигации?
-
50,0%Да1
-
0,0%Нет0
-
50,0%Пока нет, но хочу узнать больше1
-
0,0%Что такое облигация?0