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

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


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

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

    Сделал это на 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 -v
    pause
    npm 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, со строки 42.


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

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

    Docker support
    Пользователь @supaflyster сделал форк с Docker версией:

    • Скрипт запускается в докере (не нужно ставить nodejs и модули, обновление версии nodejs в Dockerfile) — проверял только на маке (linux тоже должен работать).
    • HTML сохраняется в ./out/ (пришлось изменить, так как нужно примонтировать локальную папку в контейнер, куда будет сохранятся HTML).
    • Изменил формирование имени файла, toLocaleString().replace(/:/g, '-')} — зависит от локали, и если делиметр не ":" то replace не отработает (в англ пытается создать bond_search_2020/5/22/11-00-00.html — что есть путь а не имя).
    • docker-compose запускает контейнер (и соберет образ если он еще не собран) и передает параметры как environment variables, node читает их и если их нет то использует дефолтные из index.js — чтобы можно было запускать скрипт локально без докера.


    Итог


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

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

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

    22 июня 2020 г.

    Only registered users can participate in poll. Log in, please.

    Используете облигации?

    • 48.0%Да109
    • 30.8%Нет70
    • 21.2%Что это?48
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 114

      –1
      удивительно, но подобные скрипты есть на всех сайтах «обозревателей»
      поэтому на работу с ними тратится достаточно много времени


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

      и да самые доходные облигации в вашей выборке — строительные компании, лизинговые и микрофинансовые организации. первые две категории сейчас простаивают, микрофинансы начнут сыпаться когда население, что брало займы в период карантина, не будет расплачиваться. а доходность облигаций тех же крупных банков на уровне депозитов в них +\-. всё таки иногда лучше погуглить пол часика, чем писать «велосипеды», которые уже написаны до вас
        +1

        Ну например, где конкретно? Я искал.

          +2
          Здесь есть кредитный рейтинг и индекс ликвидности — www.dohod.ru/analytic/bonds. Но это, конечно, не гарантирует возможности купить по хорошей цене. Большой плюс своего скрипта в том, что точно знаешь механику расчета и всегда можно скорректировать по необходимости.
            0

            Да, но индекс ликвидности — достаточно общее понятие.

          +5

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

            +2

            Основная "фишка" скрипта — учёт ликвидности — вот с этим реально проблемы во всех сервисах, которые перечисляю в статье.

              +6
              >> и да самые доходные облигации в вашей выборке — строительные компании,…

              Вы даже не представляете, насколько это обидно, когда проведя ресёрч и составив план по покупкам, идёшь на биржу и сталкиваешься с тем, что посчитанная доходность определялась сделкой месячной давности. Так что обозначенное empenoso решение, наверное очень круто:
              >> Основная «фишка» скрипта — учёт ликвидности — вот с этим реально проблемы во всех сервисах, которые перечисляю в статье.

              Для себя же навострился параллельно с ресёрчем проверять эту ликвидность ручками на бирже.
                0

                Да, вот с этим и боролся для себя: чтобы исключить дополнительный ручной поиск.

              • UFO just landed and posted this here
                  0
                  Можно ли их купить только человеку? Какой минимальный лот?
                  альфа-банк евровые облигации
                  • UFO just landed and posted this here
                      0

                      С Альфа-директом я прыгал в своё время с еврооблигациями. Можно было купить только через менеджера и ограниченное число, а фактический выбор на бирже был больше.

                        +1
                        с бессрочными есть нюанс, что это суборды. то есть банк их может, например, списать со словами «не шмогла».
                          0

                          В текущей ситуации я обычно смотрю только самые короткие.

                          • UFO just landed and posted this here
                              +1

                              Я боюсь что возможно всё, насколько вероятно только.

                              • UFO just landed and posted this here
                                  0
                                  Слишком апокалиптически, но «вечные» бонды я бы не стал покупать, но каждый решает сам. ¯\_(ツ)_/¯
                                  • UFO just landed and posted this here
                                      +1

                                      Случай, который был с Открытием, покоя не даёт в таких ситуациях.

                                      • UFO just landed and posted this here
                                          +1
                                          «Открытие» входил в ТОП-10 банков и был признан системообразующим?

                                          Да
                                          Я подробностей не знаю, по облигациям Открытия всё выплатили?

                                          • UFO just landed and posted this here
                                            0
                                            Но с облигациями вроде не всё гладко было.
                                            • UFO just landed and posted this here
                                                +1

                                                Проблемы были у Открытие Холдинг (не банк Открытие) rusbonds

                                  +1
                                  суборды открытия обнулили, а банк нет.
                              +1
                              Только эти «бессрочные» облигации могут быть никогда не погашены.
                              • UFO just landed and posted this here
                                  +1
                                  Всегда можно продать по цене рынка (если ключевая ставка повысится, то цена пойдет вниз).

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

                                  Цена бессрочных облигаций ниже, чем облигаций с датой погашения не на пустом месте.
                                  Кому-то этот риск приемлем, кому-то — нет.
                                    0
                                    Когда реально всё плохо — покупателей может просто не быть. Одни продавцы.
                                      +1
                                      это как-раз было не так давно с фьючерсами на нефть :)
                            +1
                            Они вроде долларовые, а не евровые:
                            www.rusbonds.ru/ank_obl.asp?tool=138425
                            www.boerse-berlin.com/index.php/Bonds?isin=XS1760786340
                            • UFO just landed and posted this here
                            +1
                            «выборке — строительные компании»
                            Строительные компании сейчас в интересном положении. С одной стороны они получили «бронь» от правительства.
                            С другой, покупательная способность населения настолько упала, что притока новых средств (кредитов от банков под строительство) стоит ожидать не скоро.
                            Застройщики защитились от простых людей постановлением правительства №423 от 2 апреля. Теперь они никому не должны. Мало того, это постановление защищает ещё и не пострадавших от введённого карантина застройщиков. Теперь и они защищены буквой закона, от назойливых покупателей недостроенного жилья.
                            youtu.be/_jg6SQEoHN0
                            +1
                            Большое спасибо! Отличный инструмент.
                            Тоже попадаю постоянно на ликвидность, после выборки на rusbonds, идешь и руками все проверяешь и материшься.
                            +1
                            Для себя я также не нашел подходящего готового решения.
                            Я для упрощения выбора облигаций среди всего их множества написал простой Python скрипт, который через API Московской биржи сохраняет несколько CSV файликов, объединяет их, оставляя только нужные столбцы. Затем я вручную импортирую файл в Libre Office Calc и там уже создаю фильтры, делаю сортировки.

                            Ваше решение интересно.
                            Думаю можно ещё много чего полезного добавить, ну это исключительно по моему мнению. Например, столбец уровня листинга (чтобы сразу видеть 1-2 это уровень или 3) и информацию о типе облигации относительно того постоянный или переменный у неё купон и есть ли у нее амортизация (одним столбцом). Вышесказанное можно так же входными параметрами сделать.
                              0

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

                              +1
                              Я так понимаю потом вы проводите окончательный анализ найденных облигаций уже вручную?
                                0

                                Да, стараюсь посмотреть что за компания. От объема на который покупаю зависит.

                                  +3
                                  >> Я так понимаю потом вы проводите окончательный анализ найденных облигаций уже вручную?

                                  А без этого никак.

                                  Альтернативой этому будет, например, классифицировать их по эмитенту в матрицу «Риск отрасли, риск эмитента», после чего уже по подобранным в ручную коэффициентам соответствующий личным представлениям о Риск/Доходности предлагать портфель. Но для этого нужно вести справочник этих эмитентов, по которому данная классификация будет проставлена. И скорее всего точно также в ручную.

                                  Такая автоматизация была бы полезна для существенно бОльших чем ИИС инвестиций. А тут получится, что Расход времени на автоматизацию > Расход времени на «ручной» анализ. А писать подобный скрипт ради статьи — то всё внимание читающих и комментирующих будет сосредоточено на проставленных коэффициентах.
                                    0

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

                                      +1
                                      >> Я согласен. Мне просто часто приходится с этим сталкиваться и я решил упростить себе жизнь. Ну а раз я пишу всякие статьи, то тоже решил скрипт опубликовать.Ну а раз я пишу всякие статьи, то тоже решил скрипт опубликовать. То есть конечно, это не ради статьи было написано.

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

                                      Оффтоп
                                      Кстати, интересным сервисом для ИИС был бы «Алгоритм минимальных вложений». Т.е., механизм ИИС подразумевает под собой, что получение дивидендов и купонного дохода не требует зачисления на ИИС. И теоретически, приобретая цб до выплаты купона, продавая её после его выплаты и покупая другую цб с купоном, наступающим в ближайшее время, можно необходимые для вычета 400 000 рублей начислений за год обеспечить существенно меньшей суммой.


                                      >> С классификацией кстати большая проблема — часто даже невозможно найти категорию бумаги в готовом виде.

                                      Поэтому и получается, что проще и быстрее «наметать» глаз, чтобы понимать о ком речь и прикинуть какой % портфеля может данная бумага составить без рисков, нежели вести дополнительные справочники и классификаторы. Да и отрасль мало что подскажет — та же торговля торговле рознь и чтобы найти недооцененные компании нырять нужно в каждую с головой.
                                        0
                                        Я имел ввиду писать статью про автоматизацию «окончательного анализа найденных облигаций», а что касается именно этой статьи, то Я искренне надеюсь, что Вашу статью прочитают близкие к тем сервисам (русбондс, смартлаб) люди и доработают свои формы ликвидностью.

                                        Они кажется уже лет 15 не могут собраться добавить учёт ликвидности. Может просто сами не пользуются ;)
                                          0
                                          Для ВДО список есть: docs.google.com/spreadsheets/d/19bQnYtfJfDKZD72CUykJ-NjIzUe1C84D028nBgZl5GE/edit?usp=drive_web&ouid=108619459978526897465. По более консервативном можно сделать привязку к эмитенту, а по эмитентам структурированной информации больше. Недостаток «наметанного глаза» — новые компании периодически выходят на рынок, про них тоже придется искать информацию.
                                            0

                                            Этот адрес как раз два дня назад узнал :)

                                        0

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

                                      +1

                                      Была идея сделать что-то аналогичное для личного пользования, ибо процедура поиска различных облигаций утомительна (приходится одновременно открывать и moex, и rusbonds, и smart-lab). Хотелось предусмотреть удобные фильтры, предусмотреть дополнительный критерий наличия бумаги в Ломбардном списке ЦБ, но всё руки не доходят.

                                        0

                                        А наличие бумаги в Ломбардном списке ЦБ что даёт?

                                          +1
                                          Похоже, что это дополнительная гарантия надежности компании и ликвидности ее ценных бумаг.
                                            +1

                                            Просто дополнительный критерий надёжности бумаги, раз ЦБ не брезгует брать её в залог.

                                              0
                                              На доходности тогда это сказывается скорее отрицательно.
                                          +1
                                          Спасибо за статью. Много лет назад ушел с рынка ЦБ, а некоторое время назад пришел к выводу, что пора вернуться. Как раз думал о том, что стоит написать какой-нибудь алгоритм под себя. Не знаю, воспользуюсь ли я Вашими наработками, но толчок в нужном направлении получил.
                                          Плюс для себя буду добавлять возможность условного арбитража по облигациям. То есть у меня будет список облигаций, которые бот сможет покупать и продавать для получения чуть большей доходности. Это на самом деле достаточно простой алгоритм, но тут действительно вопрос ликвидности очень важен.
                                            +1

                                            Могли бы Вы уточнить подробнее про арбитраж?

                                              +1
                                              Как я и сказал раньше, это условный арбираж (то есть не классический), возможно кто-то скажет это не арбираж вовсе. Так что прошу сразу не критиковать жестко :)
                                              В чем суть. Допустим мы составили список из 10 облигаций, которые, как мы считаем равнозначны между собой в соотношениях (например как пары евро/доллар, евро/рубль, доллар/рубль). Затем мы выбрбали наиболее доходную бумагу, пусть это будет бумага №7 и купили ее. Теперь мы ждем, когда какая-нибудь другая бумага из списка будет показывать большую доходность или же наша бумага просто подоражет относительно других. И вот здесь наступает момент, когда нам требуется быстро переложиться из бумаги №7 в более доходную.
                                              Основная проблема с облигациями — низкая ликвидность. Поэтому не факт, что если одну бумагу из списка легко будет купить (более доходную), то другую, также легко можно будет продать из-за отсутствия предложения. А сделать то это нужно одновременно.
                                              Но это очень упрощенный подход, на практике всегда возникает куча нюансов. Надеюсь к концу лета пройти весь этот путь, после чего тоже смогу написать статью :)
                                                +1
                                                А вы читали? Они арбитражом с огромными плечами занимались :)

                                                image
                                                  +2
                                                  не читал :)
                                                  я для себя давно еще решил не торговать в кредит, да и производные бумаги меня тоже настораживают
                                                    +1
                                                    Как история — довольно захватывающе описано.
                                                • UFO just landed and posted this here
                                                    +1
                                                    Не уловил сарказма.
                                                    Предлагаю не вырывать текст из контекста. В самом начале комментария я обозначил, что есть список равнозначных бумаг, мы с ним и работаем. Что это значит?
                                                    Например у нас в списке облигации только эмитентов с наивысшим кредитным риском, которые находятся еще и в ломбардном списке ЦБ. Вероятность банкротства таких эмитентов крайне низкая, еще ниже риск их непогашения. Соответственно задача бота ловить разницу изменений стоимости таких облигаций и на этом зарабатывать дополнительно к облигационному доходу.
                                                    Ну или еще один Вам пример — облигации разного выпуска одного эмитента. Не знаю как сейчас, а раньше, лет 10-15 назад были и такие варианты. Понятно, что разные бумаги одного эмитента могут быть по разному защищены, однако мы с самого начала договорились иметь ввиду равнозначные бумаги.
                                                    Повторюсь, в этой схеме наиболее значимым является ликвидность бумаг.
                                                    И да, еще раз, прошу не вырывать слова из контекста. У меня нет бота, который будет что-то предсказывать и создавать такой бот я не намерен. Вообще заниматься предсказаниями на рынке бумаг дело на благодарное.
                                                      +1
                                                      Соответственно задача бота ловить разницу изменений стоимости таких облигаций и на этом зарабатывать дополнительно к облигационному доходу.

                                                      Не уловил. Это как получается?

                                                        +2
                                                        Предположу, что есть 10 бумаг, каждый день цены по ним меняются. Допустим все они были куплены по номиналу (1000 рублей), а уже на следующий день они стоят 999,9; 1000,1; 999,8; 1000,2 и т.д. Соответственно, те которые стоят 999,8 и 1000,2 продаются и покупаются те, которые стоят 999,9 и 999,8. На следующий день, ситуация меняется, и покупается всё уже в соответствии с ней. Условие, что это будет идеально работать — продаваться и покупаться должно в один момент, чтобы соотношения не успели поменяться. Ну и другое условие — облигации должны быть равноценными. Оба выполнимы с трудом.
                                                          +1
                                                          именно это и имелось ввиду

                                                          по старой памяти, основным препятствием для проведения таких сделок раньше была низкая ликвидность. Как сейчас — не знаю

                                                          В июле/августе буду входить на рынок спустя более чем 10 летнего перерыва. Может что-то изменилось
                                                            +1

                                                            ОФЗ только по настоящему ликвидные. Но там никакой скрипт для поиска не нужен :)
                                                            А корпоративные — иногда бывают.

                                                          +1
                                                          так за счет курсовых изменений стоимости облигаций и условно гарантированного дохода

                                                          Ну например, это чисто теоритическая ситуация, Вы считаете, что бумаги Роснефти и Газпрома равнозначны с точки зрения риска банкротства и неплатежей и сроки погашения облигация плюс/минус одинаковые. Но когда, Вы решились на покупку, по Роснефти был доход 5%, по Газпрому 4,7%. Вы берете Роснефть, так как она дает Вам большую доходность.
                                                          Предлагаю на этом этапе внести уточнение — эти облигации с купонным доходом, то есть доход выплачивается раз допустим в квартал.
                                                          Прошел допустим месяц с момента сделки. Никаких финансовых потрясений не происходило, спекулятивных новостей не было, а значит за месяц цены на облигации Роснефти и Газпрома в общем случае должны были немного вырасти, так чтобы сохранить доходность для других покупателей бумаг на том же уровне: 4,7% и 5%.

                                                          Но!!! Допустим в какой-то момент, какой-то фонд решил затариться бумагами Роснефти и они начали расти в цене. Доходность бумаг в таком случае будет падать. Допустим она упала до 3,5%. А бумаги газпрома показывают такую же доходность как и месяц назад — 4,7%. В этот момент бот и действует: он продает Роснефть, и покупает Газпром.
                                                          Что Вы получите в итоге? 4,7% годовых по купону от Газпрома плюс курсовая разница в (5-3,5) 1,5% от сделки с Роснефтью.
                                                          Безусловно это очень упрощенная модель и мысли о таком боте у меня были более 10 лет назад. Тогда мне казалось это возможным, но торговал в то время я ручками.
                                                            +1

                                                            Сейчас технологических возможностей несомненно больше.

                                                        • UFO just landed and posted this here
                                                            +1
                                                            Если из-за одной новости о начале выпуска какого-то неудачного продукта компания может допустить технический дефолт или совсем обанкротиться, то скорее всего эта компания вряд ли имеет высшие кредитные оценки и ее бумаги вряд ли находится в ломбардном списке ЦБ. И торговля такими бумагами изначально считается высокорискованной. Я же говорил о торговле облигациями, которые заменяют банковские депозиты, так как посыл статьи был именно в альтернативе депозитов, а не в погоне за сверх доходами. А это в первую очередь надежность эммитентов.

                                                            За последние 10 лет в России я не припомню банкротств эмитентов т.н.голубых фишек или субъектов РФ из-за одного неудачного решения. Так что мне такой фильтр о котором Вы говорите не нужен. Здесь важнее всего будет фильтр на отсев не надежных эмитентов, у которых есть риск банкротства/не выполнения обязательств.

                                                            Насчет тарифов. Уже не в первый раз пишу о том, что более 10 лет назад вышел с РЦБ и как раз статья меня побудила к возвращению. Про тарифы еще предстоит узнать. Но когда я торговал, тарифы не были уж больно грабительскими, сейчас по логике они должны быть еще ниже. Но здесь могу ошибаться.
                                                              +1

                                                              А ЮКОС когда был?

                                                                +1
                                                                ну это в начале 2000-х было, то есть почти 20 лет назад

                                                                да и что уж говорить, все-таки ЮКОС — исключение, нежели закономерность

                                                                плюс и новость там была не о выпуске какой-то неудачной продукции, а это было политическое решение
                                                                  +1
                                                                  А как с «Трансаэро» было в 2014?)
                                                        +1
                                                        А вы считали? Мне кажется, комиссии больше съедят. Мне кажется, выгоднее ботом на предторгах выставлять заявки на продажу в расчете на «толстые пальцы», иногда прострелы в обе стороны бывают на 2%-5%.
                                                          +1

                                                          Поддерживаю.

                                                            +1
                                                            Комиссии не считал, так как давно не торгую. Этим летом, если получится, то вернусь на рынок. По результатам, вероятно, напишу статью. И на случай «толстых пальцев» тоже посмотрим :)
                                                            «Толстые пальцы» это же из казуса с Самсунг или какая-то специфичная терминология?
                                                              +1
                                                              Точно не скажу, но мне кажется этот термин уже давно в обиходе, в том числе и в англоязычном.
                                                                0
                                                                «Толстые пальцы» типа проскальзывание получается?
                                                                  +1
                                                                  Не типа, а именно оно, так сказать, следствие «толстых пальцев». Хотя теперь это может быть ошибка не человека-трейдера, а сбоя или неожиданного поведения алгоритма в боте.
                                                                    0

                                                                    Да, современная интерпретация.

                                                                +1
                                                                Комиссии и проскальзывание могут убить любую идею.
                                                                  +1
                                                                  Теперь мне вот захотелось как можно быстрее реализовать на РЦБ свой алгоритм, чтобы сказать «Да все работает! Просто надо немного проявить гибкость мышления», ну или на крайний случай — «Да Вы были правы, черт подери! Лютые комиссии губят на корню все благие намерения.» :)
                                                                  Спасибо за поднятую тему, оказалось очень актуально

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

                                                                  ru.qwe.wiki/wiki/Fat-finger_error
                                                                    +1
                                                                    Обычно правда работающими торговыми идеями не делятся. Но вы хоть пошлите телеграму image получилось или нет.
                                                                      0
                                                                      Получилось спустя полгода?
                                                          0
                                                          Docker support. Пользователь supaflyster сделал форк с Docker версией.
                                                            +2
                                                            Спасибо за статью.

                                                            Возможно было бы интересным:
                                                            — видеть дюрацию также и в целых днях (где это возможно), а не в месяцах;
                                                            — оценивать также и общую годовую доходность с учетом изменения стоимости облигации с даты сделки;
                                                            — выражать объём сделок не только одной цифрой, но и видеть небольшой график объема сделок в прошлом, не глубже двух дюраций либо года, что больше;
                                                            — видеть «возраст» размещения компании, количество месяцев/лет с момента начала размещений облигаций (либо конкретного их типа);
                                                            — видеть также объем размещений долга компании (либо его полный исторический график), либо общий по всем типам облигаций, либо по каким-то конкретным;
                                                            — видеть соотношение объемов облигаций ко всему существующему долгу, включая акции и все виды деривативов;
                                                            — видеть топ-10 список компаний из той же отрасли, у кого имеются кросс-покупки облигаций (обе компании владеют долгами друг друга);

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

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

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

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

                                                            Объём размещения долга в облигациях (и не только) и его характер может помочь с пониманием что происходит с компанией, не идет ли она «вразнос» или же большие объемы займов связаны с чем-то естественным/сезонным.

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

                                                            Топ список компаний-конкурентов может помочь с пониманием отрасли в целом, насколько она растет и насколько она склонна к конкуренции. Когда компании-конкуренты достаточно сильно влияют через владение долгами друг на друга, то это может привести к высокой корелляции движения облигаций таких компаний. И это также может быть полезным в определенных случаях (начало проблем у одной из таких компаний может дать возможность работы на расширяющихся спредах между облигациями компаний-конкурентов).
                                                              +1
                                                              Это интересно, но требует весьма глубокой проработки, а второй пункт это вообще к учету портфеля относится.
                                                              1. видеть дюрацию также и в целых днях (где это возможно), а не в месяцах;
                                                              2. оценивать также и общую годовую доходность с учетом изменения стоимости облигации с даты сделки;
                                                              3. выражать объём сделок не только одной цифрой, но и видеть небольшой график объема сделок в прошлом, не глубже двух дюраций либо года, что больше;
                                                              4. видеть «возраст» размещения компании, количество месяцев/лет с момента начала размещений облигаций (либо конкретного их типа);
                                                              5. видеть также объем размещений долга компании (либо его полный исторический график), либо общий по всем типам облигаций, либо по каким-то конкретным;
                                                              6. видеть соотношение объемов облигаций ко всему существующему долгу, включая акции и все виды деривативов;
                                                              7. видеть топ-10 список компаний из той же отрасли, у кого имеются кросс-покупки облигаций (обе компании владеют долгами друг друга);


                                                              Мне очень понравилось, но на мой взгляд это всё сильно усложняет — интересных и ликвидных облигаций на российском рынке и так не особо много. А если такой глубинный анализ проводить боюсь вообще может оказаться, что ничего покупать и и не следует, а стоит смотреть в сторону облигационных ETF image.
                                                                +1

                                                                Наводки интересные, но это уже не скрипт, а полноценное приложение.

                                                                  +1
                                                                  Слишком специализированное на мой взгляд.
                                                                  +2
                                                                  С ETF тоже свои заморочки, те же проблемы с ликвидностью.

                                                                  Это были больше мысли вслух, чем пожелания по доработкам. Естественно, для полноценного анализа нужен сложный софт, который в одного довольно сложно/долго реализовать. Ну и нет смысла ограничиваться только российским рынком, софт можно аккуратно разделить на специфические и универсальные части. Это как работа с брокерами/биржами: у кого-то FIX/FAST, а у кого-то… PLAZA :) Но со всем этим можно жить и работать тем не менее. Условия торговли у всех разные и рано или поздно лидеры по таким условиям меняются, зачастую они связаны с конкретной страной. Потому ограничивать себя чем-то одним черевато. Самый правильный вариант — в еще большем усложнении и работе в разных юриздикциях с разными поставщиками услуг, постоянно оценивая риск/ликвидность по инструментам и источникам услуг, имея под рукой наиболее корелированные инструменты для возможности переключения на них при необходимости (при запрете/невозможности торговли по каким-то конкретным из-за различных ограничений).

                                                                  Всё это сложно, это постоянный «геморрой» и неопределенность с ожиданием результата. Но тем не менее очень интересно и вариантов самореализации гораздо больше, чем просто работа на дядю. Нужны как всегда — хорошие мозги и терпение. Много терпения.
                                                                    0
                                                                    Вот и он примерно о том же:

                                                                +2
                                                                Отличное решение, сам таким пользуюсь. Всегда есть куда расти, и куда развиваться. Еще бы присобачить к этому делу графику, так организм наш лучше воспринимает информацию, и цены не будет. И приготовьтесь к жесткой критике, многие товарищи откровенно завидуют таким штукам, поэтому начинают всячески «нахваливать», начиная от «этот метод не работает», и заканчивая «не грузиться». халявщиков всегда у нас в избытке, они всегда «убьют» и волю, и желание, ну и конечно сам продукт.
                                                                  0
                                                                  Мне кажется конкретно в моём случае графики вроде как ни к чему? Что на них должно быть?
                                                                    +1
                                                                    графика — это визуализация информации, любую табличку можно вывести в граф. Какой параметр использовать — это может быть ожидаемая доходность%, срок работы, либо какой коэф. Использовать или не использовать тут графику — конечно дело вкуса.
                                                                  +1
                                                                  FR. может добавить в фильтры и вывод или только в вывод такой показатель как «отрасль»? чтоб было легче отсеять лизинги, застройщиков и микрофинансистов?
                                                                    +1

                                                                    API Мосбиржи не предоставляет такую информацию как "отрасль".

                                                                      +1
                                                                      печально. я для своей таблицы отрасль дергаю из finviz, но у меня нет российских облиг. думал, что есть сервисы где можно по тикеру узнать.
                                                                      0

                                                                      Биржа не предоставляет подобную информацию.

                                                                        +1
                                                                        печально. я для своей таблицы отрасль дергаю из finviz, но у меня нет российских облиг. думал, что есть сервисы где можно по тикеру узнать.
                                                                          0

                                                                          По облигациям есть вроде категории в black терминал, но и то не для всех.

                                                                      +1
                                                                      А какая стратегия работы с акциями? Покупаете и ждете закрытия? или как?
                                                                        0

                                                                        Конкретно это только по облигациям.
                                                                        Над акциями думаю.
                                                                        Никаких фундаментальных параметров биржа не предоставляет.

                                                                      • UFO just landed and posted this here
                                                                          +2
                                                                          Доходность рынка выше, согласен. Но рисков в акциях больше. И можно попасть на тот временной диапазон, когда тренд медвежий. Поэтому, как мне кажется, лучше все же по классике — часть в акции или фонды, часть в облигации.
                                                                          • UFO just landed and posted this here
                                                                              0

                                                                              Asset allocation тоже забывать не следует.

                                                                              • UFO just landed and posted this here
                                                                                  0

                                                                                  А есть издание книги на русском?

                                                                                  • UFO just landed and posted this here
                                                                                      0
                                                                                      А вы и практически применяете эту теорию?
                                                                                      • UFO just landed and posted this here
                                                                            0

                                                                            Разумно, ну ситуации разные бывают — облигации нельзя сбрасывать со счетов.

                                                                            +1
                                                                            А подскажите пожалуйста, как в вашем скрипте отфильтровать облигации по валюте номинала? Хочется посмотреть какие есть наиболее ликвидные облигации в евро и долларах.
                                                                              0
                                                                              Такого функционала в нём нет.
                                                                              0
                                                                              Если не хотите заморачиваться с Node.js, то Т—Ж опубликовал мой другой вариант этого скрипта для поиска ликвидных облигаций на Московской бирже — на этот раз внутри гугл таблиц (реализация через Google Apps Script).

                                                                              Only users with full accounts can post comments. Log in, please.