Блог им. almir_sharifullin_d4m

Несколько лет, занимаясь инвестициями в облигации, время от времени была потребность посмотреть тепловую карту рынка, но не находил такой сервис. И пришла идея, сделать его самому.
Началось с получения данных с МОЕХ, в целом дело было не сложным, просто использовал API (iss.moex) и все, казалось все готов, просто отобрази их на сайте в виде графика и все довольны, но… Отобразить так много интерактивных объектов, с анимациями, и чтобы все не лагало бесконечно, оказалось не так просто. Пришлось упростить сильно анимации, поиграть с фильтрами и оптимизировать данные и все стало приемлемо. Уже видел, как добавлю тонну фильтров (рейтинги, сектора рынка, сектора бизнеса и т.д.), но мой внутренний «червяк» понес меня не туда.
Вспомнил, что считать доходности бумаг стало занимать больше времени чем планировал, при ребалансе портфеля и решил пора написать свой (да, есть скринеры, которые умеют считать, но не все и не всегда это делают хорошо, а проверять за каждым не хотелось).
Основной проблемой были разные виды облигаций, и что для них по разному стоит считать доходности. Точнее сама формула особо не отличается (считаю через «Численный метод Брента»), а вот данные для подсчета нужно было правильно собрать. Для флоатера беру последний известный купон (по данным МОЕХ) и предполагаю, что будущие купоны будут ему равны и на основе этих данных считаю доходность. Но самые неприятные оказались флоатеры с амортизациями (например ГТЛК 2P-10 — RU000A10CR50). Схема в целом та же, но теперь учитываются амортизации и величина купона пересчитывается в зависимости от нового номинала и чтобы стало понятно, на каких данных была получена такая доходность, решил ее выводить.

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

Думал, что так можно будет посмотреть моменты, когда рынок будет «насыщаться» свободным кешем и часть него будет перетекать в другие бумаги, что должно вызвать их рост. Если такая корреляция и есть, то я пока ее не нашел. Только сейчас подумал, что для таких целей не хватает графика, который бы показывал сумму выплат по дням (добавлю в ближайшее время).
Ну и конечно же работа с портфелем. Решил, что все равно не сделаю его ведение лучше чем специализированные сервисы, но зато, могу его сделать под себя. Основным таким приоритетом сделал «ребаланс». Запускаю его в тот момент когда хочу ребалансировать портфель и по моим параметрам ищутся альтернативы (тут сразу учитывается и мой калькулятор, который считает YTM более подходящим методом). Сейчас еще не хватает каких-то параметров, по которым я обычно подбираю бумаги в портфель, но всему свое время. На выходе я получаю простой отчет, на что стоит обратить внимание, а на что пока не стоит и потенциальную выгоду от изменения портфеля.

Тут не описаны еще многие аспекты, как какие-то функции начинали появляться, но умирали, т.к. понимал, что это огромные затраты по времени. Как это все разворачивалось на сервере.
Реклама ли это сервиса? Отчасти да (но ссылок я нигде не оставил), это больше просто пост выговориться.
Если есть какие-то вопросы — пишите, с радостью отвечу.