Длительность ключевой ставки облигации, заданная нулевая кривая
вычисляет длительности ключевой ставки для одной или нескольких облигаций, заданных нулевой кривой и набором ключевых ставок.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
ZeroData
- Нулевая криваяНулевая кривая, заданная как numRates
-by- 2
матрица или numRates
-by- 2
таблица.
Если ZeroData
представлен как numRates
-by- 2
матрица, первый столбец является MATLAB® серийный номер даты и второй столбец - это нулевые ставки.
Если ZeroData
является таблицей, первый столбец может быть серийными номерами дат, векторами символов даты или массивами datetime. Второй столбец должен быть числовыми данными, соответствующими нулевым ставкам.
Типы данных: double
| table
CouponRate
- Годовая процентная ставка, используемая для определения купонов, подлежащих уплате по облигацииГодовая процентная ставка, используемая для определения купонов, подлежащих уплате по облигации, в виде десятичного значения с использованием скаляра или NUMBONDS
-by- 1
вектор.
Типы данных: double
Settle
- Дата расчета по всем облигациям и нулевой кривойДата расчета для всех облигаций и нуля кривой, заданная в виде скаляра с использованием серийного номера даты, вектора символов даты или массива datetime. Settle
должна быть одинаковой датой расчета для всех облигаций и нулевой кривой.
Типы данных: double
| char
| datetime
Maturity
- Дата погашения облигацийДата погашения облигаций в виде скаляра или NUMBONDS
-by- 1
вектор с использованием серийных номеров дат, векторов символов дат или массивов данных времени.
Типы данных: 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'
Метод интерполяции, используемый для получения точек из нулевой кривой, заданный как разделенная разделенными запятой парами, состоящая из 'InterpMethod'
и вектор символов с использованием одного из следующих значений:
'linear'
(по умолчанию)
'cubic'
'pchip'
Типы данных: char
'ShiftValue'
- Значение, что нулевая кривая смещена вверх и вниз, чтобы вычислить длительность.01
(100 базисных точек) (по умолчанию) | числоЗначение, которое нулевая кривая смещена вверх и вниз, чтобы вычислить длительность, заданную как разделенная разделенными запятой парами, состоящая из 'ShiftValue'
и скалярное числовое значение.
Типы данных: double
'KeyRates'
- Ставки для выполнения расчета длительностиСкорости для выполнения вычисления длительности, заданные как разделенная разделенными запятой парами, состоящая из 'KeyRates'
и время до зрелости с использованием скаляра или NUMBONDS
-by- 1
вектор.
Типы данных: double
'CurveCompounding'
- Частота компаундирования кривой1
, 2
, 3
, 4
, 6
, или 12
Частота компаундирования кривой, заданная как разделенная разделенными запятой парами, состоящая из 'CurveCompounding'
и скаляр, использующий одно из следующих значений:
1
- Ежегодное компаундирование
2
- Полу-годичное компаундирование
3
- Смешивание три раза в год
4
- ежеквартальное компаундирование
6
- Двухмесячное компаундирование
12
- Ежемесячное компаундирование
.
Типы данных: double
'CurveBasis'
- Базис кривой0
(по умолчанию) | числовые значения: 0
, 1
, 2
, 3
, 4
, 6
, 7
, 8
, 9
, 10
, 11
, 12
, 13
Базис кривой, заданный как разделенная разделенными запятой парами, состоящая из 'CurveBasis'
и скаляр, использующий одно из следующих значений:
0 = факт/факт
1 = 30/360 (SIA)
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 = BUS/252
Для получения дополнительной информации см. раздел Базиса.
Типы данных: double
'Period'
- Количество купонных выплат в год2
(по умолчанию) | число со значениями 0
, 1
, 2
, 3
, 4
, 6
или 12
Количество купонных выплат в год в виде разделенной разделенными запятой парами, состоящей из 'Period'
и скаляр или NUMBONDS
-by- 1
вектор с использованием значений: 0
, 1
, 2
, 3
, 4
, 6
, или 12
.
Типы данных: double
'Basis'
- Основа прибора для подсчета дней0
(по умолчанию) | числовые значения: 0
, 1
, 2
, 3
, 4
, 6
, 7
, 8
, 9
, 10
, 11
, 12
, 13
Счетчик дней инструмента, заданный как разделенная разделенными запятой парами, состоящая из 'Basis'
и скаляр или NUMBONDS
-by- 1
вектор с поддерживаемым значением:
0 = факт/факт
1 = 30/360 (SIA)
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 = BUS/252
Для получения дополнительной информации см. раздел Базиса.
Типы данных: double
'EndMonthRule'
- Флаг правила в конце месяца1
(в действии) (по умолчанию) | неотрицательное целое число 0
или 1
Флаг правила в конце месяца, заданный как разделенная разделенными запятой парами, состоящая из 'EndMonthRule'
и скаляр или NUMBONDS
-by- 1
вектор. Это правило применяется только тогда, когда Maturity
- дата окончания месяца для месяца, имеющего 30 или менее дней.
0
= Игнорируйте правило, означающее, что дата выплаты купона по облигации всегда совпадает с числовым днем месяца.
1
= Установите правило, означающее, что дата выплаты купона по облигации всегда является последним фактическим днем месяца.
Типы данных: logical
'IssueDate'
- Дата выпуска облигацийДата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из 'IssueDate'
и скаляр или NUMBONDS
-by- 1
вектор с использованием серийных номеров дат, векторов символов дат или массивов данных времени.
Если вы не задаете IssueDate
Даты платежа денежного потока определяются из других входов.
Типы данных: double
| char
| datetime
'FirstCouponDate'
- Нерегулярная или нормальная дата первого купонаНерегулярная или нормальная дата первого купона, заданная как разделенная разделенными запятой парами, состоящая из 'FirstCouponDate'
и скаляр или NUMBONDS
-by- 1
вектор с использованием серийных номеров дат, векторов символов дат или массивов данных времени.
Если вы не задаете FirstCouponDate
Даты платежа денежного потока определяются из других входов.
Типы данных: double
| char
| datetime
'LastCouponDate'
- Нерегулярная или нормальная дата последнего купонаНерегулярная или нормальная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из 'LastCouponDate'
и скаляр или NUMBONDS
-by- 1
вектор с использованием серийных номеров дат, векторов символов дат или массивов данных времени.
Если вы не задаете LastCouponDate
Даты платежа денежного потока определяются из других входов.
Типы данных: double
| char
| datetime
'StartDate'
- Форвардная дата начала платежейДата начала пересчета платежей, заданная как разделенная разделенными запятой парами, состоящая из 'StartDate'
и скаляр или NUMBONDS
-by- 1
вектор с использованием серийных номеров дат, векторов символов дат или массивов данных времени. The StartDate
это когда облигация фактически начинается (дата, с которой рассматривается денежный поток облигаций). Чтобы сделать инструмент стартовым, укажите эту дату как будущую дату.
Если вы не задаете StartDate
, дата начала вступления в силу является Settle
дата.
Типы данных: double
| char
| datetime
'Face'
- Номинальное значение облигации100
(по умолчанию) | числоНоминальное значение облигации, заданная как разделенная разделенными запятой парами, состоящая из 'Face'
и скаляр или NUMBONDS
-by- 1
вектор.
Типы данных: double
KeyRateDuration
- Продолжительность ключевой ставкиДлительность ключевой ставки, возвращенная как numBonds
-by- numRates
матрица.
bndkrdur
вычисляет длительности ключевой ставки для одной или нескольких облигаций, заданных нулевой кривой и набором ключевых ставок. По умолчанию ключевыми ставками являются каждая из нулевых кривых ставок. Для каждой ключевой ставки длительность вычисляется путем сдвига нулевой кривой вверх и вниз на заданную величину (ShiftValue
) по этой конкретной ключевой ставке, вычисляя текущее значение облигации в каждом случае с новыми нулевыми кривыми, а затем оценивая следующее:
Примечание
Сдвиг на кривую вычисляется путем сдвига конкретной ключевой ставки ShiftValue
а затем интерполяция значений кривой в интервале между предыдущей и следующей ключевыми ставками. Для первой ключевой ставки любые значения кривых до даты равны ShiftValue
; аналогично, для последней ключевой ставки любые значения кривых после даты равны ShiftValue
.
[1] Голубь, Б., Тильман, Л. Управление рисками: подходы к рынкам фиксированного дохода. Уайли, 2000.
[2] Takman, B. Акции с фиксированным доходом: инструменты для современных рынков. Уайли, 2002.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.