Маколей и измененная длительность измеряют чувствительность цены облигации к изменениям уровня процентных ставок. Выпуклость измеряет изменение длительности для небольших сдвигов в кривой выражения, и, таким образом, измеряет ценовую чувствительность связи второго порядка. Обе меры могут оценить уязвимость значения портфеля облигаций к изменениям уровня процентных ставок.
Кроме того, аналитики могут использовать длительность и выпуклость для создания портфеля облигаций, который частично хеджируется против небольших сдвигов в структуре терминов. Если вы комбинируете облигации в портфеле, длительность равна нулю, портфель изолируется, в некоторой степени, от изменения процентной ставки. Если выпуклость портфеля также равна нулю, эта изоляция даже лучше. Однако, поскольку хеджирование стоит денег или уменьшает ожидаемый возврат, вы должны знать, какая степень защиты возникает из-за одной только продолжительности хеджирования по сравнению с хеджированием как длительности, так и выпуклости.
Этот пример демонстрирует способ анализа относительной важности длительности и выпуклости для портфеля облигаций с помощью некоторых функций облигаций, совместимых с SIA, в программном обеспечении Financial Toolbox™. Используя длительность, он создает приближение первого порядка изменения цены портфеля к сдвигу уровня процентных ставок. Затем, используя выпуклость, он вычисляет приближение второго порядка. Наконец, это сравнение двух приближений с истинным изменением цены, возникшим в результате изменения кривой выражения.
Определите три облигации, используя значения для даты расчета, даты погашения, номинальной стоимости и ставки купона. Для простоты примите значения по умолчанию для периодичности купонной выплаты (полугодовой), правила оплаты в конце месяца (правило в эффект) и базиса подсчета дней (фактическое/фактическое). Кроме того, синхронизируйте структуру купонного платежа с датой погашения (без нечетных первых или последних дат купона). Все входы, для которых приняты значения по умолчанию, устанавливаются в пустые матрицы ([]
) в качестве заполнителей, где это уместно.
Settle = '19-Aug-1999'; Maturity = ['17-Jun-2010'; '09-Jun-2015'; '14-May-2025']; Face = [100; 100; 1000]; CouponRate = [0.07; 0.06; 0.045];
Кроме того, укажите информацию о кривой выражения.
Yields = [0.05; 0.06; 0.065];
Используйте функции Financial Toolbox, чтобы вычислить цену, измененную длительность в годах и выпуклость в годах каждой облигации.
Истинная цена указана (чистая) цена плюс начисленные проценты.
[CleanPrice, AccruedInterest] = bndprice(Yields, CouponRate,... Settle, Maturity, 2, 0, [], [], [], [], [], Face); Durations = bnddury(Yields, CouponRate, Settle, Maturity, 2, 0,... [], [], [], [], [], Face); Convexities = bndconvy(Yields, CouponRate, Settle, Maturity, 2, 0,... [], [], [], [], [], Face); Prices = CleanPrice + AccruedInterest;
Выберите гипотетическую сумму, на которую можно сместить кривую выражения (здесь 0,2 процентные точки или 20 базисные точки).
dY = 0.002;
Взвешивайте три облигации одинаково и вычисляйте фактическое количество каждой облигации в портфеле, которое имеет общее значение 100 000 долларов США.
PortfolioPrice = 100000; PortfolioWeights = ones(3,1)/3; PortfolioAmounts = PortfolioPrice * PortfolioWeights ./ Prices;
Вычислите измененную длительность и выпуклость портфеля. Длительность портфеля или выпуклость является взвешенным средним значением длительности или выпуклости отдельных связей. Вычислите приближения процентного изменения цены первого и второго порядков как функцию изменения уровня процентных ставок.
PortfolioDuration = PortfolioWeights' * Durations;
PortfolioConvexity = PortfolioWeights' * Convexities;
PercentApprox1 = -PortfolioDuration * dY * 100;
PercentApprox2 = PercentApprox1 + ...
PortfolioConvexity*dY^2*100/2.0;
Оцените новую цену портфеля, используя две оценки для процентного изменения цены.
PriceApprox1 = PortfolioPrice + ... PercentApprox1 * PortfolioPrice/100; PriceApprox2 = PortfolioPrice + ... PercentApprox2 * PortfolioPrice/100;
Рассчитать истинную новую цену портфеля путем сдвига кривой выражения.
[CleanPrice, AccruedInterest] = bndprice(Yields + dY,... CouponRate, Settle, Maturity, 2, 0, [], [], [], [], [],... Face); NewPrice = PortfolioAmounts' * (CleanPrice + AccruedInterest);
Сравните результаты. Результаты анализа следующие:
Первоначальная цена портфеля составила $100 000.
Кривая выражения сместилась вверх на 0,2 процентные точки или 20 базисные точки.
Длительность портфеля и выпуклость составляют 10,3181 и 157,6346 соответственно. Они необходимы для портфеля облигаций для длительности хеджирования и выпуклости.
Приближение первого порядка, основанная на измененной длительности, предсказывает новую цену портфеля (PriceApprox1
), что составляет 97 936,37 долл. США.
Приближение второго порядка, основанная на длительности и выпуклости, предсказывает новую цену портфеля (PriceApprox2
), что составляет 97 967,90 $.
Истинная новая цена портфеля (NewPrice
) для этого выражения сдвиг кривой составляет $97 967,51.
Оценка с использованием длительности и выпуклости хороша (по крайней мере, для этого довольно небольшого сдвига кривой выражения), но лишь немного лучше оценки с использованием одной только длительности. Важность увеличений выпуклости как амплитуда выражения сдвига кривых увеличений. Попробуйте большой сдвиг (dY
), чтобы увидеть этот эффект.
Формулы приближения в этом примере рассматривают только параллельные сдвиги в структуре термина, потому что обе формулы являются функциями dY
, изменение выражения. Формулы не являются четко определенными, если только каждое выражение не изменяется на одно и то же количество. На фактических финансовых рынках изменения в уровне кривой выражения обычно объясняют значительный фрагмент движений цен на облигации. Однако другие изменения кривого выражения, такие как наклон, также могут быть важными и не охвачены здесь. Кроме того, обе формулы дают локальные приближения, точность которых ухудшается как dY
увеличивается в размере. Можно продемонстрировать это, запустив программу с большими значениями dY
.
blsdelta
| blsgamma
| blsprice
| blsvega
| bndconvy
| bnddury
| bndkrdur
| bndprice
| zbtprice
| zero2disc
| zero2fwd