Распределение вероятностей количества дефолтов портфеля: итеративный подход

    • 22 марта 2026, 19:12
    • |
    • Tenant
  • Еще

Это в некотором роде отклик на статью Владимира, посвященную исследованию распределения дефолтов в портфеле облигаций методом Монте-Карло.

 В ней он, в частности, утверждает, что

«Нельзя посчитать вероятности для 40 облигаций через построение пространства событий, потому что количество вариантов слишком большое»

Нужно понимать, что автор —  не специалист в области финансов. Но Владимир движется в правильном направлении. Он старается копать все глубже, а в результате может получить неожиданный и полезный результат. Его глаз не замылен академическими формулировками. У него нет цели рекламировать и монетизировать свой тг-канал, как это делают уже примелькавшиеся на смартлабе финансовые блогеры. Он хочет честно во всем разобраться с точки зрения обычного инвестора, не желающего терять лишние деньги на рынке ВДО. Он чем-то напоминает Алексея Галицкого, который, имея бэкграунд школьного учителя ОБЖ,  благодаря упорному труду создал свое «народное» рейтинговое агентство и стал заметной фигурой в области оценки кредитных рисков. Однако пока что к изысканиям Владимира стоит относиться с осторожностью: его анализ в текущем виде — это ещё не экспертное заключение. В общем, будем наблюдать. 



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

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

    • 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 это не “общий доход”, а ставка дисконтирования. Мы ведь помним, чем качественно отличаются доход, прибыль и  процентная ставка? А выражение “реинвестирование купонов внутри года” правильно будет заменить на “сложную ставку процента ”

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



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

теги блога Tenant

....все тэги



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