Русский
Русский
English
Статистика
Реклама

Ценные бумаги

Скрипт выборки российских облигаций по параметрам

22.06.2020 06:23:18 | Автор: admin
Уже несколько лет я пользуюсь облигациями в качестве замены депозита, потому что процент дохода, который можно получить со вклада стабильно падает. В отличии от ситуации с депозитом, в облигациях всегда можно найти большую доходность. И в этой ситуации меня не устраивало только количество времени на механическую работу по поиску подходящих вариантов бумаг.


Работа скрипта по поиску облигаций на Московской бирже

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

Сделал это на Node.js с выводом полученных результатов в локальный html файл с интерактивной таблицей от Google Charts (а в случае, если JavaScript отключен в браузере, что например происходит при открытии этого html файла из мессенджера на iPhone, то отображается статическая версия таблицы, также сгенерированная скриптом).

Существующие сервисы и мои параметры для поиска


Существующих сервисов довольно много:


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

Мой желаемый результат актуальная выборка из всех российских облигаций по следующим параметрам:

  1. Заданный диапазон текущей доходности.
  2. Заданный диапазон текущих цен.
  3. Заданный диапазон дюрации.
  4. Объем сделок за последние n дней больше порогового.
  5. Ответ на вопрос есть ли налоговая льгота для корпоративных облигаций, выпущенных после 1 января 2017 года?

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

  • 5% < Доходность < 11%
  • 98% < Цена < 101%
  • 4 мес. < Дюрация < 15 мес.
  • Объем сделок за n дней > 15 000 шт.

А на выходе я бы хотел получать не больше 2-х десятков вариантов, которые точно попадали бы под моим критерии. Если вариантов находится больше, то лучше ужесточить свои критерии для получения меньшей по размеру выборки, которая бы точно соответствовала моим ожиданиям.

Облигации на Московской бирже доступны внутри основных режимов торгов:

  • Т0: Основной режим безадрес. (до 22.05.2020: 1443 бумаг, в июне 131 шт.).
  • Т+: Основной режим безадрес. (до 22.05.2020: 295 бумаг, в июне 1638 шт.).
  • Т+: Основной режим (USD) безадрес. (до 22.05.2020: 125 бумаг, в июне 128 шт.).

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

Мой скрипт поиска облигаций на Московской бирже


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

Я хотел найти некий баланс чтобы минимально подкованный человек мог воспользоваться результатами работы этого скрипта.

Ещё одно очень важное отступление в скрипте всё напрямую зависит от работы API Московской биржи, которое имеет свои особенности.

Если говорить про поиск облигаций, то сразу после открытия торгов значения доходности по средневзвешенной цене (YIELDATWAPRICE) обнуляются.


Схема определения средневзвешенной цены (WAPRICE)

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

Ещё я использую цену предыдущего закрытия (PREVLEGALCLOSEPRICE), из-за того что по некоторым облигациям торгов может не быть несколько дней.


Схема определения цены закрытия (LEGALCLOSEPRICE)

Чтобы уменьшить количество обращений к API Московской биржи я использую значение дюрации (DURATION), а не беру готовое значение количества дней до погашения (DAYSTOREDEMPTION), ведь я пользуюсь собственным скриптом только в личных целях.

Распишу подробно все шаги которые нужны для работы моего скрипта.

Самое главное что понадобится для работы скрипта Node.js. Это среда выполнения JavaScript. Если раньше JavaScript можно было запустить только в браузере, но однажды разработчики расширили его, и теперь можно запускать JS на своем компьютере в качестве отдельного приложения.

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

Поиск облигаций под Windows


Это будет самый подробный раздел, потому что большинство пользователей, которым это интересно, скорее всего, работают под Windows.

Для Windows доступен установщик Node.js в разделе загрузить официального сайта.


Раздел загрузки сайта проекта Node.js

Далее скачиваем установщик для Windows и запускаем его.


Выбор компонентов для установки Node.js

Кроме компонентов, находящихся на этом экране, больше ничего устанавливать не надо.

Скачиваем код скрипта с гитхаба.


Ссылка на скачивание с GitHub

После этого переходим каталог /SilverFir-Investment-Report-master/Node.js Release/bond_search_v2/, где находятся скачанные файлы:


Каталог с необходимыми для запуска проекта файлами

И запускаем файл first start.bat, который содержит указание показать установленную текущую версию Node.js и установить необходимую для запуска проекта зависимость node-fetch:

node -vpausenpm install node-fetch

Несмотря на такое короткое содержание Защитник Windows проявляет бдительность, но если нажать подробнее, то можно увидеть кнопку Выполнить в любом случае:


Первоначальная настройка запуска проекта


Во время выполнения bat файла

После нажатия любой клавиши зависимость будет установлена в эту же папку:


Каталог вместе с добавленными файлами

После этого всё готово для запуска скрипта поиска облигаций. Для этого запускаем файл start.bat:


Выполнение скрипты поиска облигаций. После запуска файла start.bat

Менее чем за минуту будет создан HTML файлов с текущей датой и временем в имени он и содержит в себе найденные результаты.

Поиск облигаций под macOS


Для macOS доступен установщик Node.js в разделе загрузить официального сайта.

Сам процесс похож на установку под Windows и Linux.

Поиск облигаций под Linux


Если на вашем компьютере установлен Linux, скорее всего вы и сами знаете как лучше сделать. Код скрипта доступен на гитхабе. Перейдите в каталог /SilverFir-Investment-Report-master/Node.js Release/bond_search_v2/.

Проверьте что Node.js установлена:
$ node -v

Проверьте что пакетный менеджер npm для Node.js установлен:
$ npm -v

Установите зависимости (в данном случае это только node-fetch):
$ npm install

Запустите файл скрипта:
$ npm start

Примерно за минуту html файл под именем файл bond_search_${new Date().toLocaleString().replace(/\:/g, '-')}.html будет создан.


Выполнение работы скрипта под Linux

Выборка облигаций


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

Получились следующие виды:


На компьютере


На Android


На iPhone

Редактирование параметров выборки


Самое важное настроить именно те параметры, которые важны именно вам, а не те, которые указал я для примера. Сделать это можно в файле index.js, со строки 39.


Задаваемые параметры поиска

Указываете нужные вам цифры, запускаете скрипт заново и примерно за минуту выборка готова.

Итог


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

Скрипт работает только за счет API Московской биржи, которое предоставляет широкие возможности. Также хочу отметить, что я никак не связан с Московской биржей и использую ИСС Мосбиржи только в личных интересах.

Автор: Михаил Шардин,

22 июня 2020 г.
Подробнее..

Гугл финанс перестал транслировать данные российских акций что делать?

15.06.2021 06:21:37 | Автор: admin

С 5 июня 2021 года сайт гугла, и самое главное гугл таблицы - перестали отдавать данные с Московской биржи.

При попытке получить котировки с префиксом MCX, например для Сбербанка, формулой из гугл таблиц =GOOGLEFINANCE("MCX:SBER") теперь всегда возвращается результат #N/A.

А при поиске любой российской бумаги на сайте Google находятся все рынки, кроме Московской биржи:

Попытка поиска котировки Sberbank of Russia на сайте https://www.google.com/finance/quote/MCX:SBER Попытка поиска котировки Sberbank of Russia на сайте https://www.google.com/finance/quote/MCX:SBER

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

Копирование формул из таблицы-примера в ваши собственные таблицы

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

Если после копирования из таблицы-примера в вашу таблицу формула не работает, то проверьте региональные настройки вашей таблицы.

Моя таблица с примером получения данных с Московской биржиМоя таблица с примером получения данных с Московской биржи

Я использую регион Соединенные Штаты, а если по умолчанию ваш регион Россия, то формулы корректно НЕ копируются!

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

  • Откройте файл в Google Таблицах на компьютере.

  • Нажмите Файл затем Настройки таблицы.

  • Выберите нужные варианты в разделах "Региональные настройки".

  • Нажмите Сохранить настройки.

    Как изменить региональные настройки и параметры расчетовКак изменить региональные настройки и параметры расчетов

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

Получение названий акций и облигаций

Гугл таблица с примерами автоматического получения имени для разных классов активовГугл таблица с примерами автоматического получения имени для разных классов активов

Можно получать названия акций и облигаций используя сервера Московской Биржи вместо переставшего работать гугл финанса. Сама формула при этом выглядит следующим образом:

=IMPORTxml(    "https://iss.moex.com/iss/engines/stock/markets/" &      IFS(                 or(            B3 = "TQOB",            B3 = "EQOB",            B3 = "TQOD",            B3 = "TQCB",            B3 = "EQQI",            B3 = "TQIR"        ),        "bonds",                 or(            B3 = "TQTF",            B3 = "TQBR",            B3 = "SNDX",            B3 = "TQIF"        ),        "shares"    )  & "/boards/" & B3 & "/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME",      "//row[@SECID='" & A3 & "']/@SECNAME")

Получение цен акций и облигаций

Гугл таблица с примерами автоматического получения цен акций и облигацийГугл таблица с примерами автоматического получения цен акций и облигаций

Можно получать цены акций и облигаций используя сервера Московской Биржи вместо переставшего работать гугл финанса. Сама формула при этом выглядит следующим образом:

=IMPORTxml(    "https://iss.moex.com/iss/engines/stock/markets/" &      IFS(                 or(            B10 = "TQOB",            B10 = "EQOB",            B10 = "TQOD",            B10 = "TQCB",            B10 = "EQQI",            B10 = "TQIR"        ),        "bonds",                 or(            B10 = "TQTF",            B10 = "TQBR",            B10 = "SNDX",            B10 = "TQIF"        ),        "shares"    )  & "/boards/" & B10 & "/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVADMITTEDQUOTE",      "//row[@SECID='" & A10 & "']/@PREVADMITTEDQUOTE")

Получение даты и значения дивиденда для акций

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

Можно получать даты и значения дивидендов для акций, используя сервера Московской Биржи. У гугл финанса такого функционала никогда не было для российских акций. Сама формула при этом выглядит следующим образом:

=iferror(     INDEX(         IMPORTxml(            "http://iss.moex.com/iss/securities/" & A22 & "/dividends.xml?iss.meta=off",            "//row[@secid='" & A22 & "']/@value"        )  ,         ROWS(            IMPORTxml(                "http://iss.moex.com/iss/securities/" & A22 & "/dividends.xml?iss.meta=off",                "//row[@secid='" & A22 & "']/@value"            )        )  ,        1    )  ,    "нет")

Получение даты купона и значения для облигаций

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

Можно получать даты и значения купонов для облигаций, используя сервера Московской Биржи. У гугл финанса такого функционала никогда не было для российских облигаций и вообще облигаций в сервисе нет. Сама формула при этом выглядит следующим образом:

=IMPORTxml(    "https://iss.moex.com/iss/engines/stock/markets/" &      IFS(                 or(            B12 = "TQOB",            B12 = "EQOB",            B12 = "TQOD",            B12 = "TQCB",            B12 = "EQQI",            B12 = "TQIR"        ),        "bonds",                 or(            B12 = "TQTF",            B12 = "TQBR",            B12 = "SNDX",            B12 = "TQIF"        ),        "shares"    )  & "/boards/" & B12 & "/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,COUPONVALUE",      "//row[@SECID='" & A17 & "']/@COUPONVALUE")

Получение даты оферты

Гугл таблица с примерами автоматического получения дат оферт для облигацийГугл таблица с примерами автоматического получения дат оферт для облигаций

Можно получать оферты облигаций, используя сервера Московской Биржи. У гугл финанса такого функционала никогда не было для российских облигаций и вообще облигаций в сервисе нет. Сама формула при этом выглядит следующим образом:

=IFNA(     IMPORTxml(        "https://iss.moex.com/iss/engines/stock/markets/" &          IFS(                         or(                B27 = "TQOB",                B27 = "EQOB",                B27 = "TQOD",                B27 = "TQCB",                B27 = "EQQI",                B27 = "TQIR"            ),            "bonds",                         or(                B27 = "TQTF",                B27 = "TQBR",                B27 = "SNDX",                B27 = "TQIF"            ),            "shares"        )  & "/boards/" & B27 & "/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,OFFERDATE",          "//row[@SECID='" & A27 & "']/@OFFERDATE"    )  ,    "нет")

Источник данных

Если вы хотите разобраться во всех нюансах работы - откуда берутся данные, то вы, также как и я можете обратиться к официальной документации к информационно-статистическому серверу Московской Биржи (ИСС / ISS). Правда, изучая этот документ, вы можете обнаружить что большая часть интересных функций, приведенная в этой статье, в документе никак не отображена.

Итоги

Король умер, да здравствует король! Считалось, что трон никогда не должен пустовать, поэтому после смерти короля сразу же объявлялся следующий правитель.

Как и в случае c сервисом Google Финансы, который перестал выдавать российские результаты мы видим что можно использовать API Московской биржи, которое предоставляет широкие возможности.

Эти формулы работают только за счет API Московской биржи, с которой я никак не связан. Использую ИСС Мосбиржи только в личных информационных интересах.

Автор: Михаил Шардин,

15 июня 2021 г.

Подробнее..

Расследование гениальной схемы развода людей на биткоине от Илона Маска

06.06.2021 22:21:53 | Автор: admin

Привет, Хабр!

Сегодня хочу поделиться с вами своими исследованиями корреляции твитов Илона Маска с ценой криптовалюты Биткоин.

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

Итак, Илон Маск за первую половину 2021 года проработал и реализовал гениальную схему по тому, как заработать иксы на держателях криптовалюты "Биткоин" и оставить их с дырой в кармане. Будучи большим поклонником инвестиций в традиционные инструменты, постарался прокопать всю стратегию развода:

1. Первым делом необходимо протестировать стратегию на небольших объемах. Так сказать, методика Agile.

Для этого Илон Маск выбран DogeCoin (который, между прочим, в 2015 году за бесценок слил сам его создатель). В начале февраля 2021г. Илон Маск публикует твиты с упоминаниями DogeCoin. В т.ч. и сказку о том, как заботливый папаша Илон купил DogeCoin своему сыну X. На этом моменте надо пустить слезу.

Сразу после каждого твита цена монеты растет в разы.

Вывод: схема работает!

2. 8 февраля Илон Маск объявил, что компания Tesla закупит биткоинов на 1,5 млрд. $
Цена биткоина за 1 день растет с 38 тыс $ до 48 тыс $

И тут происходит вся магия. Ну, конечно же, Илон Маск закупил биткоины намного раньше, нежели опубликовал новость, зная, что после его твита цена битка сразу же взлетит. Предполагаю, что он закупился в период с 1 по 7 февраля, когда курс битка был равен 30 тыс $

3. 24 марта Илон Маск объявил, что компания Тесла начала принимать оплату электрокаров Tesla в биткоинах. Вслед за этим цена биткоина пробивает 60 тыс $

x2 очень крутой показатель. Пора фиксировать прибыль, пока в этот спектакль не вмешались назойливые регуляторы!!!

Как ни странно, я нигде не смог найти номер биткоин-кошелька Tesla. Более того, я нигде не смог найти инфу о продаже хотя бы одного автомобиля Tesla с помощью биткоина.

Тут я обращаюсь к читателям этой статьи: если у вас есть инфа по номеру кошелька Tesla и/или по реальным фактам оплаты авто с помощью биткоина, дайте, пожалуйста, инфу об этом в комментариях.

4. 13 мая Тесла прекратила принимать оплату через биткоины из-за "неэкологичного способа их добычи". Цена биткоина за 1 день упала с 56 тыс $ до 50 тыс $

Простите, чтооооо? Неэкологический способ? Илон, ты реально решил напоследок смачно плюнуть в лицо тем, кто принес в твою компанию Tesla свои последние сбережения!?

Кстати, магия осталась та же: Илон продал все биткоины намного раньше (возможно, в период с 7 по 12 мая по цене 58 тыс $)


5. Вы же не думаете, что Илон настолько глуп, чтобы не шортить раздутый биткоин? Предполагаю, что вместе с закрытием длинной позиции, была сразу же открыта короткая позиция по той же цене. Илон-то в курсе, что Китай скоро введет запрет на криптовалюты, а вслед за ним последуют и другие страны.

6. 18 мая, в связи с ограничениями, наложенными Китаем на криптовалюты, цена битка рухнула с 40 тыс $ до 35 тыс $. На очереди готовятся ограничения от других стран, которые еще больше обрушат биткоин. А, пока, есть передышка, биткоин попытался протестировать 40 тыс $, и тут ...

7. ...4 июня Илон Маск напоминает всем какой биток плохой очередным своим твитом, после чего биткоин упал с 39 тыс $ до 35 тыс $

8. Думаю, что Илон хочет пробить отметку в 5 тыс $, чтобы выйти из своей короткой позиции и тем самым заработать еще иксов.

Остается только ждать и наблюдать за твитами самого успешного мошенника на Земле. Надеюсь, ребята из anonymous дадут жару этому злому гению!

Уважаемые читатели!

В комментариях к статье прошу не разводить холивар. Я не всегда имею возможность оперативно давать ответы на комментарии на Хабре. Все жаркие дискуссии прошу проводить в нашем tg-канале (в нем я доступен 24/7).

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru