[JavaScript, Node.JS, API, Визуализация данных, Финансы в IT] Поиск замены депозита в облигациях с учетом того, что с 1 января 2021 года все выплаты облагаются налогами

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
04-Янв-2021 12:33

Полгода назад, летом 2020 года я написал скрипт поиска ликвидных облигаций на Мосбирже. Скрипт нужен для поиска облигаций, которые можно купить прямо сейчас с доходностью гораздо выше банковского вклада. Проценты по вкладам так и остаются на очень низких уровнях, а тут ещё и изменения в налоговом кодексе РФ подоспели. В связи с этим решил изменить скрипт, убрав неактуальные данные о налоговых льготах, которые уже не работают в 2021 году и добавив возможность создавать облигационные лесенки. Под лесенкой имеется ввиду получение дохода как можно в большем числе месяцев, за счёт подбора облигаций с разными месяцами выплат.
Работа скрипта по поиску облигаций в Visual Studio CodeИзменения в работе скрипта1. Убраны неактуальные данные о налоговых льготах.В 2020 году и ранее в налоговом кодексе РФ действовал п. 25 ст. 217, в соответствии с которым от НДФЛ освобождались проценты по государственным и муниципальным облигациям РФ. В результате чего при получении на брокерский счет, например, процентов по государственным облигациям ОФЗ со стороны брокера не удерживался никакой налог.Однако с 1 января 2021 г. этот пункт прекратил своё действие. Поэтому с процентов по всем облигациям будет удерживаться НДФЛ. Кроме того, будет удерживаться НДФЛ и с процентов по любым корпоративным облигациям.Ведь в 2020 году и ранее при соблюдении ряда условий можно было избежать уплаты НДФЛ с процентов по облигациям российских компаний. Для этого облигация должна была быть эмитирована уже после 1 января 2017 г. в рублях. Если по этой облигации проценты выплачивались в пределах порогового значения «ставка рефинансирования ЦБ РФ + 5%», то с этих выплат НДФЛ не удерживался. Однако с 01 января 2021 г. все эти нормы были убраны из Налогового кодекса.В результате чего с начала 2021 года брокеры будут удерживать НДФЛ по ставке 13% с купонов по любым облигациям.2. Изменен механизм фильтрации неликвидных вариантов.Под неликвидными вариантами подразумеваются облигации, которые выглядят привлекательными по доходности, но по ним нет покупок и продаж на бирже. Невозможно купить безадресно - если никто на бирже не подал заявку на продажу облигаций, то купить эту облигацию вы не сможете. И в облигациях такое случается часто. Все удерживают и никто не продаёт. Сейчас скрипт отсчитывает 15 дней от текущей даты moment().subtract(15, 'days') и затем проверяет обороты за каждый торговый день - соответствует ли цифра оборота указанному пороговому значению. Если оборотов нет, то бумага в выборку не попадает.3. Добавлены сводные данные о месяцах, когда происходят выплаты.
График выплаты купонов ВсеИнструменты.ру ООО БО-01 (RU000A0ZZXT0) с сайта МосбиржиСводные данные о месяцах, в которых производятся выплаты, берутся из Графика выплаты купонов. Прошлые даты выплат в результаты не попадают:
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в разделе загрузить официального сайта.
Скриншот с сайта загрузки 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:
Выполнение скрипты поиска облигаций. После запуска файла start.batМенее чем за минуту будет создан HTML файл с подпапке searching_results с текущей датой в имени — он и содержит в себе найденные результаты.
Результат работы скрипта в виде html файлаПоиск ликвидных облигаций Мосбиржи под 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)

Выполнение работы скрипта под LinuxПоиск ликвидных облигаций Мосбиржи под macOSДля macOS доступен установщик Node.jsв разделе загрузить официального сайта.Сам процесс похож на установку под Windows и Linux.Настройка параметров поискаТеперь пришла пора настроить именно те параметры которые актуальны для вас, а не те, которые указаны для примера в самом скрипте. Сделать это можно в файле index.js, со строки 45.
Задаваемые параметры поискаРедактируем цифры, запускаем скрипт заново и примерно за минуту выборка готова.Предыдущие версииПредыдущие версии скрипта, без изменений 2021 года, доступны в следующих видах: ИтогиСкрипт помогает экономить время и находить облигации, которые устраивают по доходности и временному горизонту. Выборка «не является индивидуальной инвестиционной рекомендацией и может не соответствовать вашему инвестиционному профилю» — фраза абсолютно верна, ведь сам скрипт просто инструмент — решение о дальнейшей покупке конкретных найденных бумаг должен принимать уже человек после знакомства с эмитентом.Скрипт работает только за счет API Московской биржи, с которой я никак не связан. Я использую ИСС Мосбиржи только в личных информационных интересах.Автор: Михаил Шардин,4 января 2021 г.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_javascript, #_node.js, #_api, #_vizualizatsija_dannyh (Визуализация данных), #_finansy_v_it (Финансы в IT), #_parsing (парсинг), #_investitsii (инвестиции), #_obligatsii (облигации), #_javascript, #_node.js, #_javascript, #_node.js, #_api, #_vizualizatsija_dannyh (
Визуализация данных
)
, #_finansy_v_it (
Финансы в IT
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 28-Сен 19:55
Часовой пояс: UTC + 5