Назовите подкачки структурного анализа и процентной ставки

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

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

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

Шаг 1

Задайте значения в течение расчетного дня, дат погашения, купонных ставок и рыночных цен на 10 Связей Казначейства США. Эти данные позволяют вам оценивать пятилетнюю подкачку с сетевыми платежами потока наличности, которыми обмениваются каждые шесть месяцев. Для простоты примите значения по умолчанию для платежного правила конца месяца (правило в действительности) и (фактическое/фактическое) основание дневного количества. Чтобы избежать выпусков начисленных процентов, примите, что все Казначейские облигации платят полугодовые купоны и что урегулирование происходит в дату купонного платежа.

Settle   = datenum('15-Jan-1999');

BondData = {'15-Jul-1999'  0.06000   99.93
            '15-Jan-2000'  0.06125   99.72
            '15-Jul-2000'  0.06375   99.70
            '15-Jan-2001'  0.06500   99.40
            '15-Jul-2001'  0.06875   99.73
            '15-Jan-2002'  0.07000   99.42
            '15-Jul-2002'  0.07250   99.32
            '15-Jan-2003'  0.07375   98.45
            '15-Jul-2003'  0.07500   97.71
            '15-Jan-2004'  0.08000   98.15};

BondData является экземпляром массива ячеек MATLAB®, обозначенного фигурными скобками ({}).

Затем присвойте дату, сохраненную в массиве ячеек к Maturity, CouponRate и векторам Prices для последующей обработки.

Maturity   = datenum(char(BondData{:,1}));
CouponRate = [BondData{:,2}]';
Prices     = [BondData{:,3}]';
Period     = 2; % semiannual coupons

Шаг 2

Теперь, когда данные были заданы, используйте функцию структуры термина zbtprice, чтобы загрузить кривую нулевой ширины, подразумеваемую от цен переносящих купон связей. Эта подразумеваемая кривая нулевой ширины представляет серию Казначейских уровней нулевого купона, сопоставимых с ценами переносящих купон связей, таким образом, что арбитражные возможности не будут существовать.

ZeroRates = zbtprice([Maturity CouponRate], Prices, Settle); 

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

Шаг 3

От подразумеваемой кривой нулевой ширины найдите соответствующую серию подразумеваемых форвардных курсов с помощью функции структуры термина zero2fwd.

ForwardRates = zero2fwd(ZeroRates, Maturity, Settle);

Прямая кривая, сохраненная в ForwardRates, также заключается в кавычки на полугодовой основе связи. Первый элемент ForwardRates является годовым показателем, применился к интервалу между поселением и спустя шесть месяцев после урегулирования, второй элемент является годовым показателем, применился к интервалу от шести месяцев до 12 месяцев после урегулирования, и так далее. Эта подразумеваемая прямая кривая также сопоставима с наблюдаемыми рыночными ценами, таким образом, что арбитражные действия будут убыточны. Поскольку первый форвардный курс является также нулевым уровнем, первый элемент ZeroRates и ForwardRates является тем же самым.

Шаг 4

Теперь, когда вы вывели кривую нулевой ширины, преобразуйте ее в последовательность коэффициентов дисконтирования с функцией структуры термина zero2disc.

DiscountFactors = zero2disc(ZeroRates, Maturity, Settle);

Шаг 5

От коэффициентов дисконтирования вычислите приведенную стоимость переменных потоков наличности, выведенных от подразумеваемых форвардных курсов. Для простых процентных свопов отвлеченный принципал остается постоянным для каждого платежного дня и отмен из каждой стороны уравнения приведенной стоимости. Следующая строка принимает модуль отвлеченный принципал.

PresentValue = sum((ForwardRates/Period) .* DiscountFactors);

Шаг 6

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

SwapFixedRate = Period * PresentValue / sum(DiscountFactors);

Вывод для этих вычислений:

  Zero Rates  Forward Rates
    0.0614        0.0614
    0.0642        0.0670
    0.0660        0.0695
    0.0684        0.0758
    0.0702        0.0774
    0.0726        0.0846
    0.0754        0.0925
    0.0795        0.1077
    0.0827        0.1089
    0.0868        0.1239

  Swap Price (Fixed Rate) = 0.0845

Все уровни находятся в десятичном формате. Цена подкачки, 8,45%, вероятно, была бы средней точкой между участником рынка, предлагал/спрашивал кавычки.

Смотрите также

| | | | | | | | | |

Похожие темы