Этот пример создает портфель облигаций для хеджирования портфеля Чувствительности цен на облигации к процентным ставкам. Он принимает длинную позицию в (владении) портфеле, и что три другие облигации доступны для хеджирования. Он выбирает веса для этих трех других облигаций в новом портфеле, так что продолжительность и выпуклость нового портфеля совпадают с длительностью и выпуклостью исходного портфеля. Занимая короткую позицию в новом портфеле, в сумме, равной значению первого портфеля, частично хеджирует против параллельных сдвигов в кривой выражения.
Напомним, что длительность портфеля или выпуклость является взвешенным средним значением длительности или выпуклости отдельных облигаций в портфеле. Как и в предыдущем примере, этот пример использует измененную длительность в годах и выпуклость в годах. Задача хеджирования поэтому становится одним из решений системы линейных уравнений, что является простой вещью в MATLAB® программное обеспечение.
Определите три облигации, доступные для хеджирования исходного портфеля. Укажите значения для даты расчета, даты погашения, номинальной стоимости и ставки купона. Для простоты примите значения по умолчанию для периодичности купонной выплаты (полугодовой), правила оплаты в конце месяца (правило в эффект) и базиса подсчета дней (фактическое/фактическое). Кроме того, синхронизируйте структуру купонного платежа с датой погашения (т.е. без нечетных первых или последних дат купона). Установите все входы, для которых приняты значения по умолчанию, в пустые матрицы ([]
) в качестве заполнителей, где это уместно. Цель состоит в том, чтобы хеджировать против длительности и выпуклости и ограничивать общую цену портфеля.
Settle = '19-Aug-1999'; Maturity = ['15-Jun-2005'; '02-Oct-2010'; '01-Mar-2025']; Face = [500; 1000; 250]; CouponRate = [0.07; 0.066; 0.08];
Кроме того, задайте кривое выражение для каждой связи.
Yields = [0.06; 0.07; 0.075];
Используйте функции 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;
Настройте и решите систему линейных уравнений, решение которой является весами новых облигаций в новом портфеле с той же длительностью и выпуклостью, что и исходный портфель. В сложение шкалы веса в сумму 1
; то есть заставить их быть весами портфеля. Затем можно масштабировать этот портфель модулей измерения, чтобы иметь ту же цену, что и исходный портфель. Напомним, что исходные длительность портфеля и выпуклость 10.3181
и 157.6346
, соответственно. Кроме того, обратите внимание, что последняя строка линейной системы гарантирует, что сумма весов является единицей.
A = [Durations' Convexities' 1 1 1]; b = [ 10.3181 157.6346 1]; Weights = A\b;
Вычислите длительность и выпуклость портфеля хеджирования, которая теперь должна совпадать с исходным портфелем.
PortfolioDuration = Weights' * Durations; PortfolioConvexity = Weights' * Convexities;
Наконец, масштабируйте единичный портфель, чтобы соответствовать значению исходного портфеля и найти количество облигаций, необходимых для изоляции от небольших параллельных сдвигов в кривой выражения.
PortfolioValue = 100000; HedgeAmounts = Weights ./ Prices * PortfolioValue;
Сравните результаты.
При необходимости длительность и выпуклость нового портфеля 10.3181
и 157.6346
, соответственно.
Суммы хеджирования для облигаций 1, 2 и 3 -57.37
, 71.70
, и 216.27
, соответственно.
Заметьте, что хеджирование соответствует длительности, выпуклости и значению ($100 000) исходного портфеля. Если вы держите этот первый портфель, можно хеджировать, заняв короткую позицию в новом портфеле.
Так же, как приближения первого примера подходят только для небольших параллельных сдвигов в кривой выражения, портфель хеджирования подходит только для уменьшения влияния небольших изменений уровня в структуре термина.
blsdelta
| blsgamma
| blsprice
| blsvega
| bndconvy
| bnddury
| bndkrdur
| bndprice
| zbtprice
| zero2disc
| zero2fwd