zbtyield

Кривая нулевой ширины, загружающаяся из данных об облигации на предъявителя, данных выражение

Описание

пример

[ZeroRates,CurveDates] = zbtyield(Bonds,YieldsSettle) использует метод начальной загрузки, чтобы возвратить кривую нулевой ширины, учитывая портфель облигаций на предъявителя и их выражений.

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

пример

ZeroRates,CurveDates = zbtyield(___,OutputCompounding) добавляет дополнительный аргумент для OutputCompounding.

Примеры

свернуть все

Определенные данные и доходы до срока погашения для 12 облигаций на предъявителя, два с той же датой погашения; и, учитывая общий расчетный день.

Bonds = [datenum('6/1/1998')   0.0475   100  2  0  0;
         datenum('7/1/2000')   0.06     100  2  0  0;
         datenum('7/1/2000')   0.09375  100  6  1  0;
         datenum('6/30/2001')  0.05125  100  1  3  1;
         datenum('4/15/2002')  0.07125  100  4  1  0;
         datenum('1/15/2000')  0.065    100  2  0  0;
         datenum('9/1/1999')   0.08     100  3  3  0;
         datenum('4/30/2001')  0.05875  100  2  0  0;
         datenum('11/15/1999') 0.07125  100  2  0  0;
         datenum('6/30/2000')  0.07     100  2  3  1;
         datenum('7/1/2001')   0.0525   100  2  3  0;
         datenum('4/30/2002')  0.07     100  2  0  0];

Yields = [0.0616
          0.0605
          0.0687
          0.0612
          0.0615
          0.0591
          0.0603
          0.0608
          0.0655
          0.0646
          0.0641
          0.0627];

Settle = datenum('12/18/1997');

Установите полугодовое соединение для кривой нулевой ширины.

OutputCompounding = 2;

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

[ZeroRates, CurveDates] = zbtyield(Bonds, Yields, Settle,... 
OutputCompounding)
ZeroRates = 11×1

    0.0616
    0.0603
    0.0657
    0.0590
    0.0649
    0.0650
    0.0606
    0.0611
    0.0643
    0.0614
      ⋮

CurveDates = 11×1

      729907
      730364
      730439
      730500
      730667
      730668
      730971
      731032
      731033
      731321
      ⋮

Определенные данные и доходы до срока погашения для 12 облигаций на предъявителя (два с той же датой погашения), и, учитывая общий расчетный день, вычисляют кривую нулевой ширины с помощью datetime входные параметры.

Bonds = [datenum('6/1/1998')   0.0475   100  2  0  0;
         datenum('7/1/2000')   0.06     100  2  0  0;
         datenum('7/1/2000')   0.09375  100  6  1  0;
         datenum('6/30/2001')  0.05125  100  1  3  1;
         datenum('4/15/2002')  0.07125  100  4  1  0;
         datenum('1/15/2000')  0.065    100  2  0  0;
         datenum('9/1/1999')   0.08     100  3  3  0;
         datenum('4/30/2001')  0.05875  100  2  0  0;
         datenum('11/15/1999') 0.07125  100  2  0  0;
         datenum('6/30/2000')  0.07     100  2  3  1;
         datenum('7/1/2001')   0.0525   100  2  3  0;
         datenum('4/30/2002')  0.07     100  2  0  0];

Yields = [0.0616
          0.0605
          0.0687
          0.0612
          0.0615
          0.0591
          0.0603
          0.0608
          0.0655
          0.0646
          0.0641
          0.0627];

Settle = datenum('12/18/1997');
OutputCompounding = 2;
t = array2table(Bonds,'VariableNames',{'Maturity','CouponRate', 'Face' ,'Period', 'Basis', 'EndMonthRule'});
disp(t)
     Maturity     CouponRate    Face    Period    Basis    EndMonthRule
    __________    __________    ____    ______    _____    ____________

    7.2991e+05      0.0475      100       2         0           0      
    7.3067e+05        0.06      100       2         0           0      
    7.3067e+05     0.09375      100       6         1           0      
    7.3103e+05     0.05125      100       1         3           1      
    7.3132e+05     0.07125      100       4         1           0      
     7.305e+05       0.065      100       2         0           0      
    7.3036e+05        0.08      100       3         3           0      
    7.3097e+05     0.05875      100       2         0           0      
    7.3044e+05     0.07125      100       2         0           0      
    7.3067e+05        0.07      100       2         3           1      
    7.3103e+05      0.0525      100       2         3           0      
    7.3134e+05        0.07      100       2         0           0      
t.Maturity = datetime(t.Maturity,'ConvertFrom','datenum','Locale','en_US');
Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US');
[ZeroRates, CurveDates] = zbtyield(t, Yields, Settle,...
OutputCompounding)
ZeroRates = 11×1

    0.0616
    0.0603
    0.0657
    0.0590
    0.0649
    0.0650
    0.0606
    0.0611
    0.0643
    0.0614
      ⋮

CurveDates = 11x1 datetime
   01-Jun-1998
   01-Sep-1999
   15-Nov-1999
   15-Jan-2000
   30-Jun-2000
   01-Jul-2000
   30-Apr-2001
   30-Jun-2001
   01-Jul-2001
   15-Apr-2002
   30-Apr-2002

Используйте zbtyield вычислить действительные нулевые уровни из реальных доходностей соединенных с инфляцией связей.

% Load the data
load usbond_02Sep2008
Settle = datenum('02-Sep-2008');

Вычислите реальные доходности и затем вычислите действительные нулевые уровни.

RealYields = bndyield(TIPSPrice,TIPSCoupon,Settle,TIPSMaturity);
TIPSBonds = [TIPSMaturity TIPSCoupon];
[RealZeroRates, CurveDates] = zbtyield(TIPSBonds, RealYields, Settle)
RealZeroRates = 26×1

    0.0069
    0.0094
    0.0092
    0.0111
    0.0110
    0.0119
    0.0116
    0.0128
    0.0126
    0.0136
      ⋮

CurveDates = 26×1

      734153
      734243
      734518
      734608
      734883
      734974
      735065
      735339
      735430
      735614
      ⋮

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

свернуть все

Информация об облигации на предъявителя, чтобы сгенерировать кривую нулевой ширины в виде таблицы с 6 столбцами или n- 2 к n- 6 матрица информации о связи, где столбцы таблицы или столбцы матрицы содержит:

  • Maturity (Столбец 1, Необходимый) Дата погашения связи, как последовательный номер даты. Использование datenum преобразовывать векторы символов даты в последовательные числа даты. Если вход Bonds таблица, Maturity даты могут быть последовательными числами даты, векторами символов даты или массивами datetime.

  • CouponRate (Столбец 2, Необходимый) Десятичная дробь, указывающая на купонную ставку связи.

  • Face (Столбец 3, Дополнительный) Освобождение или номинальная стоимость связи. Значение по умолчанию = 100.

  • Period (Столбец 4, Дополнительный) Купоны в год связи. Позволенными значениями является 0, 1, 2 (значение по умолчанию), 3, 4, 6, и 12.

  • Basis (Столбец 5, Дополнительный) основание Дневного количества связи. Вектор из целых чисел.

    •  0 = фактический/фактический (значение по умолчанию)

    •  1 = 30/360 (СИА)

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

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

    •  4 = 30/360 (BMA)

    •  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

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

  • EndMonthRule (Столбец 6, Дополнительный) правило Конца месяца. Это правило применяется только когда Maturity дата конца месяца в течение месяца, имея 30 или меньше дней. 0 = проигнорируйте правило, подразумевая, что дата купонного платежа связи всегда является тем же числовым днем месяца. 1 = установите правило о (значении по умолчанию), подразумевая, что дата купонного платежа связи всегда является прошлым фактическим днем месяца

:

Примечание

  • Если Bonds таблица, Maturity даты могут быть последовательными числами даты, векторами символов даты или массивами datetime.

  • Если Bonds матрица, n- 2 к n- 6 матрица, где каждая строка описывает связь, первые два столбца (Maturity и CouponRate) требуются. Остаток от столбцов является дополнительным, но должен быть добавлен в порядке. Все строки в Bonds должен иметь одинаковое число столбцов.

.

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

Доход до срока погашения каждой связи в BondsВ виде N- 1 вектор-столбец. Количество строк (n) должно совпадать с количеством строк в Bonds.

Примечание

Доход до срока погашения должен раз в полгода составляться.

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

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

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

(Необязательно) Соединяя частоту выхода ZeroRates, заданное использование позволенных значений:

  • 0 — Простой процент (никакое соединение)

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

  • 2 — Полугодовое соединение (значение по умолчанию)

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

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

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

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

  • -1 — Непрерывное соединение

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

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

свернуть все

Подразумеваемые нулевые уровни для каждой точки вдоль инвестиционного горизонта, заданного датой погашения, возвращенной как m- 1 вектор из десятичных дробей, где m количество связей с уникальными датами погашения. В агрегате, уровнях в ZeroRates составьте кривую нулевой ширины.

Если больше чем одна связь имеет тот же Maturity дата, zbtyield возвращает средний нулевой уровень для того Maturity. Любые уровни перед первым Maturity приняты, чтобы быть равным уровню в первом Maturity, то есть, кривая принята, чтобы быть плоской перед первым Maturity.

Даты погашения, которые соответствуют ZeroRates, возвращенный как m- 1 вектор из уникальных дат погашения, где m количество связей различных дат погашения. Эти даты начинаются с самого раннего Maturity дата и конец с последним Maturityдата в Bonds таблица или матрица.

Если любой входные параметры для Bonds или Settle имейте значения datetime, затем CurveDatesCurveDates datetimes. В противном случае CurveDates последовательные числа даты.

Ссылки

[1] Фабоцци, Франк Дж. “Структура Процентных ставок”. Ch. 6 в Фабоцци, Франке Дж. и Т. Дессе Фабоцци, редакторах Руководство Fixed Income Securities. 4-й редактор Нью-Йорк, Irwin Professional Publishing, 1995.

[2] Мсеналли, Ричард В. и Джеймс В. Джордан. “Термин Структура Процентных ставок”. в Ch. 37 в Fabozzi и Fabozzi, там же

[3] Десять кубометров, Satyajit. “Вычисляя Уровни Нулевого купона”. в Подкачке и Производном Финансировании. Приложение к Ch. 8, стр 219–225. Нью-Йорк, Ирвин Профешенэл Паблишинг, 1994.

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