bndkrdur

Длительность ключевой процентной ставки связи, данная кривую нулевой ширины

Описание

пример

KeyRateDuration = bndkrdur(ZeroData,CouponRate,Settle,Maturity) вычисляет длительность ключевой процентной ставки для одной или нескольких связей, учитывая кривую нулевой ширины и набор ключевых процентных ставок.

пример

KeyRateDuration = bndkrdur(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение".

Примеры

свернуть все

В этом примере показано, как вычислить длительность ключевой процентной ставки связи в течение времен ключевой процентной ставки 2, 5, 10, и 30 лет.

ZeroRates = [0.0476 .0466 .0465 .0468 .0473 .0478 ...
.0493 .0539 .0572 .0553 .0530]';

ZeroDates = daysadd('31-Dec-1998',[30 360 360*2 360*3 360*5 ...
360*7 360*10 360*15 360*20 360*25 360*30],1);

ZeroData = [ZeroDates ZeroRates];

krdur = bndkrdur(ZeroData,.0525,'12/31/1998',...
'11/15/2028','KeyRates',[2 5 10 30])
krdur = 1×4

    0.2986    0.8791    4.1353    9.5814

В этом примере показано, как использовать datetime входные параметры для Settle и Maturity и также используйте таблицу в ZeroData вычислить длительность ключевой процентной ставки связи в течение времен ключевой процентной ставки 2, 5, 10, и 30 лет.

ZeroRates = [0.0476 .0466 .0465 .0468 .0473 .0478 ...
.0493 .0539 .0572 .0553 .0530]';

ZeroDates = daysadd('31-Dec-1998',[30 360 360*2 360*3 360*5 ...
360*7 360*10 360*15 360*20 360*25 360*30],1);

ZeroData = table(datetime(ZeroDates,'ConvertFrom','datenum','Locale','en_US'), ZeroRates);

krdur = bndkrdur(ZeroData,.0525,datetime('12/31/1998','Locale','en_US'),...
datetime('11/15/2028','Locale','en_US'),'KeyRates',[2 5 10 30])
krdur = 1×4

    0.2986    0.8791    4.1353    9.5814

Входные параметры

свернуть все

Кривая нулевой ширины, заданная как numRates- 2 матрица или numRates- 2 таблица.

Если ZeroData представлен как numRates- 2 матрица, первым столбцом является MATLAB®, последовательный номер даты и второй столбец являются сопроводительными нулевыми уровнями.

Если ZeroData таблица, первый столбец может быть последовательными числами даты, векторами символов даты или массивами datetime. Второй столбец должен быть числовыми данными, соответствующими нулевым уровням.

Типы данных: double | table

Годовая процентная ставка раньше определяла купоны, подлежащие оплате на связи, заданной как десятичное значение с помощью скаляра или NUMBONDS- 1 вектор.

Типы данных: double

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

Типы данных: double | char | datetime

Дата погашения для связей, заданных как скаляр или NUMBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Типы данных: double | char | datetime

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: KeyRateDuration = bndkrdur(ZeroData,.0525,'12/31/1998','11/15/2028','KeyRates',[2 5 10 30])

Метод интерполяции раньше получал точки из кривой нулевой ширины, заданной как разделенная запятой пара, состоящая из 'InterpMethod' и вектор символов с помощью одного из следующих значений:

  • 'linear' (значение по умолчанию)

  • 'cubic'

  • 'pchip'

Типы данных: char

Значение, что кривая нулевой ширины смещена вверх и вниз, чтобы вычислить длительность, заданную как разделенная запятой пара, состоящая из 'ShiftValue' и скалярное числовое значение.

Типы данных: double

Уровни, чтобы выполнить вычисление длительности, заданное как разделенная запятой пара, состоящая из 'KeyRates' и время к зрелости с помощью скаляра или NUMBONDS- 1 вектор.

Типы данных: double

Соединение частоты кривой, заданной как разделенная запятой пара, состоящая из 'CurveCompounding' и скаляр с помощью одного из следующих значений:

  • 1 — Ежегодное соединение

  • 2 — Полугодовое соединение

  • 3 — Соединение три раза в год

  • 4 — Ежеквартально соединение

  • 6 — Два раза в месяц соединение

  • 12 — Ежемесячно соединение

.

Типы данных: double

Основание кривой, заданной как разделенная запятой пара, состоящая из 'CurveBasis' и скаляр с помощью одного из следующих значений:

  •  0 = фактический/фактический

  •  1 = 30/360 (СИА)

  •  2 = Фактический/360

  •  3 = Фактический/365

  •  4 = 30/360 (PSA)

  •  5 = 30/360 (ISDA)

  •  6 = 30/360 (европеец)

  •  7 = Фактический/365 (японский язык)

  •  8 = фактический/фактический (ICMA)

  •  9 = Фактический/360 (ICMA)

  •  10 = Фактический/365 (ICMA)

  •  11 = 30/360E (ICMA)

  •  12 = Фактический/365 (ISDA)

  •  13 = ШИНА/252

Для получения дополнительной информации смотрите Основание.

Типы данных: double

Количество купонных платежей в год, заданный как разделенная запятой пара, состоящая из 'Period' и скаляр или NUMBONDS- 1 вектор с помощью значений: 0, 1, 2, 3, 4, 6, или 12.

Типы данных: double

Дневное количество инструмента, заданного как разделенная запятой пара, состоящая из 'Basis' и скаляр или NUMBONDS- 1 вектор с помощью поддерживаемого значения:

  •  0 = фактический/фактический

  •  1 = 30/360 (СИА)

  •  2 = Фактический/360

  •  3 = Фактический/365

  •  4 = 30/360 (PSA)

  •  5 = 30/360 (ISDA)

  •  6 = 30/360 (европеец)

  •  7 = Фактический/365 (японский язык)

  •  8 = фактический/фактический (ICMA)

  •  9 = Фактический/360 (ICMA)

  •  10 = Фактический/365 (ICMA)

  •  11 = 30/360E (ICMA)

  •  12 = Фактический/365 (ISDA)

  •  13 = ШИНА/252

Для получения дополнительной информации смотрите Основание.

Типы данных: double

Флаг правила конца месяца, заданный как разделенная запятой пара, состоящая из 'EndMonthRule' и скаляр или NUMBONDS- 1 вектор. Это правило применяется только когда Maturity дата конца месяца в течение месяца, имея 30 или меньше дней.

  • 0 = Проигнорируйте правило, подразумевая, что платежный день облигационного купона всегда является тем же числовым днем месяца.

  • 1 = Установите правило о, подразумевая, что платежный день облигационного купона всегда является прошлым фактическим днем месяца.

Типы данных: логический

Дата Выпуска облигаций, заданная как разделенная запятой пара, состоящая из 'IssueDate' и скаляр или NUMBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Если вы не задаете IssueDate, платежные дни потока наличности определяются из других входных параметров.

Типы данных: double | char | datetime

Неправильная или нормальная первая дата купона, заданная как разделенная запятой пара, состоящая из 'FirstCouponDate' и скаляр или NUMBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Если вы не задаете FirstCouponDate, платежные дни потока наличности определяются из других входных параметров.

Типы данных: double | char | datetime

Неправильная или нормальная последняя дата купона, заданная как разделенная запятой пара, состоящая из 'LastCouponDate' и скаляр или NUMBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Если вы не задаете LastCouponDate, платежные дни потока наличности определяются из других входных параметров.

Типы данных: double | char | datetime

Передайте срок начала работы платежей, заданных как разделенная запятой пара, состоящая из 'StartDate' и скаляр или NUMBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime. StartDate когда связь на самом деле запускается (дата, с которой поток наличности связи рассматривается). Чтобы сделать инструментальный запуск форварда, задайте эту дату как будущую дату.

Если вы не задаете StartDate, эффективной датой начала является Settle дата.

Типы данных: double | char | datetime

Номинальная стоимость связи, заданной как разделенная запятой пара, состоящая из 'Face' и скаляр или NUMBONDS- 1 вектор.

Типы данных: double

Выходные аргументы

свернуть все

Длительность ключевой процентной ставки, возвращенная как numBonds- numRates матрица.

Алгоритмы

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

krduri = (PVdown - PVup)(PV × ShiftValue × 2)

Примечание

Сдвиг на кривую вычисляется путем сдвига конкретной ключевой процентной ставки ShiftValue и затем интерполируя значения кривой в интервале между предыдущими и следующими ключевыми процентными ставками. Для первой ключевой процентной ставки, любые значения кривой перед датой равны ShiftValue; аналогично, для последней ключевой процентной ставки, любые значения кривой после даты равны ShiftValue.

Ссылки

[1] Golub, B., Тилмен, L. Управление рисками: подходы для рынков фиксированного дохода. Вайли, 2000.

[2] Такмэн, B. Ценные бумаги фиксированного дохода: инструменты для сегодняшних рынков. Вайли, 2002.

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте