Tenant

Читают

User-icon
208

Записи

54

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

    • 25 октября 2025, 13:41
    • |
    • Tenant
  • Еще
Код Python позволяет получать исторические данные по облигациям: цены, объемы, НКД. Нужно только ввести тикер или ISIN, а также указать диапазон дат. Полученные данные сохраняются в файл формата .csv

# Получение данных о ценах облигаций
import requests
import csv
from datetime import datetime
import time

def get_bond_data(bond_identifier, start_date, end_date):
    """Получение данных по облигации (ISIN, тикер или название)"""
    
    # Поиск облигации
    url = "https://iss.moex.com/iss/securities.json"
    params = {'q': bond_identifier}
    
    response = requests.get(url, params=params)
    data = response.json()
    
    # Ищем облигацию
    bond_info = None
    for security in data['securities']['data']:
        if (security[1] == bond_identifier or  # ISIN
            security[0] == bond_identifier or  # тикер
            security[2] == bond_identifier):   # название
            
            bond_info = {
                'ticker': security[0],
                'shortname': security[1],
                'fullname': security[2],
                'isin': security[1] if security[1].


( Читать дальше )

Продукты с горькой «начинкой»: как структурные облигации ВТБ сожрали 70% сбережений инвесторов

    • 18 сентября 2025, 15:24
    • |
    • Tenant
  • Еще
Продукты с горькой «начинкой»: как структурные облигации ВТБ сожрали 70% сбережений инвесторов


Непредвиденный результат

На излёте первой декады сентября держатели облигаций ВТБ С1-519 столкнулись с неприятным сюрпризом: оказалось, что их бумаги не будут погашены по номиналу, как они ожидали. Выяснилось, что инвесторы получат выплату в размере всего лишь 316 рублей на облигацию и небольшую сумму в довесок, как слабое утешение:

 

( Читать дальше )

Выгрузка данных о бескупонных доходностях гособлигаций с сайта ЦБ

    • 16 июля 2025, 16:44
    • |
    • Tenant
  • Еще
Python код для получения данных о бескупонных доходностях с сайта ЦБ РФ.

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

import pandas as pd
from datetime import datetime, timedelta

def get_cbr_data(start_date, end_date):
    """Получение данных с сайта ЦБ для указанного диапазона"""
    url = f'http://www.cbr.ru/hd_base/zcyc_params/?UniDbQuery.Posted=True&UniDbQuery.From={start_date}&UniDbQuery.To={end_date}'
    try:
        tables = pd.read_html(url, decimal=',', thousands=' ')
        df = tables[0]
        
        # Обработка заголовков
        df.columns = [col[1].replace(',', '.').replace('Дата', 'Date') if isinstance(col, tuple) 
                    else col.replace(',', '.').replace('Дата', 'Date') for col in df.columns]
        
        # Преобразование данных
        for col in df.columns[1:]:
            df[col] = df[col].


( Читать дальше )

Как использовать правильные подходы к оценке облигаций и не использовать неправильные

    • 03 июля 2025, 17:05
    • |
    • Tenant
  • Еще


Вчера мне  прислали ссылку на статью из “Пульса” и поинтересовались, действительно ли амортизируемые облигации могут принести дополнительную реализованную  доходность. В статье разбираются “две ситуации”  — реальная и гипотетическая. В одной ситуации приобретается конкретная облигация с ежемесячной амортизацией, а в другой  — искусственно предполагается, что происходило бы, если бы та же самая бумага платила обычные купоны, т.е. амортизация отсутствовала. Для убедительности в статье приведены расчеты в Excel и наглядно показано, что при определенных допущениях бумага с амортизацией выгоднее обычной.

Расчеты, конечно, можно не проверять, так как это не имеет смысла по простой причине: исходные предпосылки автора неверны. Но чисто арифметических ошибок там нет. 

Главная finmath ошибка состоит в предположении, что цены обеих облигаций (в % от номинала) на момент их покупки  можно считать равными. 

Вымышленную облигацию достаточно легко оценить, так как она отличается от реальной только структурой денежных потоков. Возможны два подхода: 1) через эффективную доходность и 2) используя КБД  с добавлением Z-спреда. Второй способ более правильный, но из за короткого срока бумаг отклонения будут минимальными. 



( Читать дальше )

Таргетирование дюрации

    • 25 декабря 2024, 19:07
    • |
    • Tenant
  • Еще
     Основной текст опубликован на сайте dzen.ru. Здесь представлен сокращенный вариант, не содержащий сложных математических выражений. 


Стратегии на рынке облигаций

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

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

⠀⠀⠀⠀⠀ 


 

Спекулятивным может считаться портфель, который инвестор собирается вскоре продать. Обычно с этой целью приобретаются длинные ОФЗ в расчете на рост их стоимости, если начнется снижение ставок. Инвестор ожидает, что реализованная доходность (HPR) его вложений за время смягчения ДКП превысит эффективную доходность к погашению (YTM).



( Читать дальше )

Линкеры. Часть I

    • 09 октября 2024, 19:14
    • |
    • Tenant
  • Еще
Линкеры. Часть I


Риск инфляции

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

Вместо того чтобы сразу израсходовать деньги на текущее потребление, инвестор откладывает траты на определенный срок. Пусть X₀ и Xₜ обозначают стоимость типичного набора товаров на сегодняшний день и через t лет соответственно. Как правило, Xₜ > X₀ вследствие потребительской инфляции — устойчивого роста общего уровня цен на товары и услуги, приводящего к уменьшению покупательной способности денег.

Предположим, что стоимость Xₜ известна заранее. Мы можем найти численное значение инфляции в годовом выражении, равное π, из выражения Xₜ = X₀∙( 1+ π)ᵗ Согласятся ли участники рынка на номинальную ставку i = π по вкладу в банке или облигациям с нулевым купоном?



( Читать дальше )

Код для построения графика КБД Мосбиржи

    • 08 октября 2024, 09:56
    • |
    • Tenant
  • Еще
0. Импортируем нужные библиотеки

import requests
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt


1. Извлекаем данные о расчетных параметрах КБД
Расчетные параметры на конкретную дату указаны внизу страницы
www.moex.com/ru/marketdata/indices/state/g-curve/
# URL для API MOEX, данные по ZCYC (zero coupon yield curve)
url = "https://iss.moex.com/iss/engines/stock/zcyc/securities.json"

# Запрос на получение данных
response = requests.get(url)
data = response.json()

# Извлекаем данные из секции 'params'
columns = data['params']['columns']
values = data['params']['data']

# Преобразуем в DataFrame
df = pd.DataFrame(values, columns=columns)

# Выбираем нужные столбцы: B1, B2, B3, T1, G1, ..., G9
df_selected = df[['tradedate', 'tradetime', 'B1', 'B2', 'B3', 'T1', 'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9']]

# Извлекаем параметры для функции GT из df_selected
beta0 = df_selected['B1'].values[0]  
beta1 = df_selected['B2'].values[0]  
beta2 = df_selected['B3'].values[0]  
tau = df_selected['T1'].values[0]   
g_values = df_selected[['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9']].values[0].tolist() 



( Читать дальше )

История о том, как одно маленькое упрощение привело специалистов компании “Арсагера” к ошибочным выводам

    • 05 сентября 2024, 12:53
    • |
    • Tenant
  • Еще
История о том, как одно маленькое упрощение привело специалистов компании “Арсагера” к ошибочным выводам


Около года назад в поисках материалов о стратегиях на рынках облигаций я натолкнулся на образовательное видео от компании “Арсагера” — “Управление портфелем облигаций. Эффекты стратегии и тактики” Это запись двухчасового семинара, на котором большей частью обсуждались свойства портфелей с неизменной дюрацией. Поскольку я в скором времени собираюсь написать небольшую статью о таргетировании дюрации, то решил пересмотреть видео более внимательно.

В самом начале семинара лектор сравнил пай фонда облигаций с “бесконечной облигацией” и задался вопросом, — а что, собственно, должно происходить с его стоимостью? Он рассказал, что долгое время обдумывал проблему и в результате разработал модель динамики доходности пая.

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

( Читать дальше )

Недоинвестированные купоны

    • 29 августа 2024, 16:06
    • |
    • Tenant
  • Еще

Вновь взяться за перо меня побудили пост  Андрея Х. о доходности к погашению (YTM) и чудовищные проявления ригоризма в  комментариях  к нему.

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

YTM (Yield to Maturity) — общий доход, ожидаемый от облигации, если облигация удерживается до погашения.

Этот вид доходности предполагает реинвестирование купонов внутри года и позволяет наиболее корректно сравнивать бумаги с разными параметрами (срок, купон, изменение цены)


И в самом деле, YTM это не “общий доход”, а ставка дисконтирования. Мы ведь помним, чем качественно отличаются доход, прибыль и  процентная ставка? А выражение “реинвестирование купонов внутри года” правильно будет заменить на “сложную ставку процента ”

Конечно,  Андрей Х. создает такие  миниатюрные  посты не в просветительских целях, а чтобы в очередной раз прорекламировать свои соцсети и телеграм-канал. Завсегдатаи смартлаба это понимают,  и  не имеют привычки придираться к содержанию и осуждать автора за мелкие  недочеты.  Мало кто ожидал, что в комментариях возникнет агрессивный неофит, гневно размахивающий старой публикацией малоизвестных американских финансистов



( Читать дальше )

Особенности амортизируемых облигаций

    • 09 июля 2024, 20:11
    • |
    • Tenant
  • Еще

В амортизируемых облигациях иногда можно наблюдать  ценовые разрывы после частичного погашения номинала. Подобная “дивотсечка” недавно произошла, например, в бумагах  Ульоб35002 (ISIN. RU000A101U61). 26 июня 2024 г. они торговались по цене около 87% от номинала, а на следующий день котировки упали до  84%  

Особенности амортизируемых облигаций

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

Однако у  облигации “Ульоб35002”  эффективная доходность в указанные дни почти не менялась и составляла примерно 18%  годовых, а значит, разницу цен  нельзя было использовать для получения финансовой выгоды.  Это легко увидеть, если перейти к абсолютным цифрам. Перед выплатой купона и частичным погашением в размере 200 руб. облигация стоила около  870 руб (с учетом  НКД   — 903 руб), а сразу после  —  670 руб, т.е.  цена упала на величину амортизированной стоимости и выплаченного купона.   Но почему тогда мы видим разрыв на графике? 



( Читать дальше )

теги блога Tenant

....все тэги



UPDONW
Новый дизайн