bndkrdur

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

Синтаксис

KeyRateDuration = bndkrdur(ZeroData,CouponRate,Settle,Maturity)
KeyRateDuration = bndkrdur(___,Name,Value)

Описание

пример

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-by-2 матрица или numRates-by-2 таблица.

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

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

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

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

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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-by-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-by-1 вектор с помощью значений: 0, 1, 2, 3, 4, 6 или 12.

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

Дневное количество инструмента, заданного как пара, разделенная запятой, состоящая из 'Basis' и скаляра или NUMBONDS-by-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-by-1 вектор. Это правило применяется только, когда Maturity является датой конца месяца в течение месяца, имея 30 или меньше дней.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Алгоритмы

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

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

Примечание

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

Ссылки

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

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

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