zbtprice

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

Описание

пример

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

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

пример

ZeroRates,CurveDates = zbtprice(___,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];

Prices = [99.375;
          99.875;
         105.75 ;
          96.875;
         103.625;
         101.125;
         103.125;
          99.375;
         101.0  ;
         101.25 ;
          96.375;
         102.75 ];

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

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

OutputCompounding = 2;

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

[ZeroRates, CurveDates] = zbtprice(Bonds, Prices, Settle,... 
OutputCompounding)
ZeroRates = 11×1

    0.0616
    0.0609
    0.0658
    0.0590
    0.0647
    0.0655
    0.0606
    0.0601
    0.0642
    0.0621
      ⋮

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];

Prices = [99.375;
          99.875;
         105.75 ;
          96.875;
         103.625;
         101.125;
         103.125;
          99.375;
         101.0  ;
         101.25 ;
          96.375;
         102.75 ];

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

t=array2table(Bonds);
t.Bonds1=datetime(t.Bonds1,'ConvertFrom','datenum','Locale','en_US');
Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US');
[ZeroRates, CurveDates] = zbtprice(t, Prices, Settle,...
OutputCompounding)
ZeroRates = 11×1

    0.0616
    0.0609
    0.0658
    0.0590
    0.0647
    0.0655
    0.0606
    0.0601
    0.0642
    0.0621
      ⋮

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

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

свернуть все

Информация об облигации на предъявителя, чтобы сгенерировать кривую нулевой ширины, заданную как таблица с 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 дата, zbtprice возвращает средний нулевой уровень для того Maturity. Любые уровни перед первым Maturity приняты, чтобы быть равным уровню в первом Maturity, то есть, кривая принята, чтобы быть плоской перед первым Maturity.

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

Если любой входные параметры для Bonds или Settle имейте значения datetime, затем CurveDates 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