zero2pyld

Кривая доходности паритета, данная кривую нулевой ширины

В R2017b изменилась спецификация дополнительных входных параметров. В то время как предыдущий упорядоченный входной синтаксис все еще поддержан, он больше не может поддерживаться в будущем релизе. Используйте новые дополнительные входные параметры пары "имя-значение": InputCompounding, InputBasis, OutputCompounding и OutputBasis.

Синтаксис

[ParRates,CurveDates] = zero2pyld(ZeroRates,CurveDates,Settle)
[ParRates,CurveDates] = zero2pyld(___,Name,Value)

Описание

пример

[ParRates,CurveDates] = zero2pyld(ZeroRates,CurveDates,Settle) возвращает кривую доходности паритета, учитывая кривую нулевой ширины и ее даты погашения. Если или введенный для CurveDates или Settle массив datetime, CurveDates возвращен как массив datetime. В противном случае CurveDates возвращен как последовательный номер даты. ParRates является тем же самым для любого из этих типов входных данных.

пример

[ParRates,CurveDates] = zero2pyld(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение"

Примеры

свернуть все

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

ZeroRates = [0.0457
             0.0487
             0.0506
             0.0507
             0.0505
             0.0504
             0.0506
             0.0516
             0.0539
             0.0530];

CurveDates = [datenum('06-Nov-2000')
              datenum('11-Dec-2000')
              datenum('15-Jan-2001')
              datenum('05-Feb-2001')
              datenum('04-Mar-2001')
              datenum('02-Apr-2001')
              datenum('30-Apr-2001')
              datenum('25-Jun-2001')
              datenum('04-Sep-2001')
              datenum('12-Nov-2001')];

Settle = datenum('03-Nov-2000');
InputCompounding = 12;
InputBasis = 2;
OutputCompounding = 1;
OutputBasis = 2;

[ParRates, CurveDates] = zero2pyld(ZeroRates, CurveDates,...  
Settle, 'InputCompounding',1,'InputBasis',1,'OutputCompounding',12,'OutputBasis',1)
ParRates = 10×1

    0.0448
    0.0477
    0.0495
    0.0496
    0.0494
    0.0493
    0.0495
    0.0504
    0.0526
    0.0517

CurveDates = 10×1

      730796
      730831
      730866
      730887
      730914
      730943
      730971
      731027
      731098
      731167

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

ZeroRates = [0.0457
0.0487
0.0506
0.0507
0.0505
0.0504
0.0506
0.0516
0.0539
0.0530];
CurveDates = [datenum('06-Nov-2000')
datenum('11-Dec-2000')
datenum('15-Jan-2001')
datenum('05-Feb-2001')
datenum('04-Mar-2001')
datenum('02-Apr-2001')
datenum('30-Apr-2001')
datenum('25-Jun-2001')
datenum('04-Sep-2001')
datenum('12-Nov-2001')];
Settle = datenum('03-Nov-2000');
InputCompounding = 12;
InputBasis = 2;
OutputCompounding = 1;
OutputBasis = 2;

CurveDates = datetime(CurveDates, 'ConvertFrom', 'datenum','Locale','en_US');
Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US');
[ParRates, CurveDates] = zero2pyld(ZeroRates, CurveDates,...
Settle, 'InputCompounding',12,'InputBasis',2,'OutputCompounding',1,'OutputBasis',2)
ParRates = 10×1

   -0.0436
    0.0611
    0.0579
    0.0567
    0.0550
    0.0543
    0.0541
    0.0546
    0.0565
    0.0561

CurveDates = 10x1 datetime array
   06-Nov-2000 00:00:00
   11-Dec-2000 00:00:00
   15-Jan-2001 00:00:00
   05-Feb-2001 00:00:00
   04-Mar-2001 00:00:00
   02-Apr-2001 00:00:00
   30-Apr-2001 00:00:00
   25-Jun-2001 00:00:00
   04-Sep-2001 00:00:00
   12-Nov-2001 00:00:00

Учитывая следующую кривую нулевой ширины и ее даты погашения, возвратите ParRates.

Settle = datenum('01-Feb-2013');

CurveDates = [datenum('01-Feb-2014')
    datenum('01-Feb-2015')
    datenum('01-Feb-2016')
    datenum('01-Feb-2018')
    datenum('01-Feb-2020')
    datenum('01-Feb-2023')
    datenum('01-Feb-2033')
    datenum('01-Feb-2043')];

OriginalZeroRates = [.11 0.30 0.64 1.44 2.07 2.61 3.29 3.55]'/100;

OutputCompounding = 1;
OutputBasis = 0;
InputCompounding = 1;
InputBasis = 0;

ParRates = zero2pyld(OriginalZeroRates, CurveDates, Settle, ...
'OutputCompounding', OutputCompounding, 'OutputBasis', OutputBasis, ...
'InputCompounding', InputCompounding, 'InputBasis', InputBasis)
ParRates = 8×1

    0.0011
    0.0030
    0.0064
    0.0142
    0.0202
    0.0251
    0.0310
    0.0331

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

ZeroRatesOut = pyld2zero(ParRates, CurveDates, Settle, ...
'OutputCompounding', OutputCompounding, 'OutputBasis', OutputBasis, ...
'InputCompounding', InputCompounding, 'InputBasis', InputBasis)
ZeroRatesOut = 8×1

    0.0011
    0.0030
    0.0064
    0.0144
    0.0207
    0.0261
    0.0329
    0.0355

max(abs(OriginalZeroRates - ZeroRatesOut)) % Roundtrip error
ans = 1.4919e-16

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

свернуть все

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

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

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

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

Общий расчетный день для входа ZeroRates, заданного как последовательные числа даты, векторы символов даты или массивы datetime.

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

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

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

Пример: [ParRates,CurveDates] = zero2pyld(ZeroRates,CurveDates, Settle,'OutputCompounding',3,'OutputBasis',5,'InputCompounding',4,'InputBasis',5)

Соединение частоты вывода ParRates, заданного как пара, разделенная запятой, состоящая из 'OutputCompounding' и позволенных значений:

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

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

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

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

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

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

Примечание

  • Если InputCompounding является 1, 2, 3, 4, 6, или 12 и OutputCompounding не заданы, значение InputCompounding используется.

  • Если InputCompounding является (простой) 0, (непрерывный) -1, или 365 (ежедневно), допустимое значение OutputCompounding должно также быть задано.

  • Если или InputCompounding или OutputCompounding не заданы, значением по умолчанию является 2 (полугодовой) для обоих.

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

Дневное основание количества вывода ParRates, заданного как пара, разделенная запятой, состоящая из 'OutputBasis' и позволенных значений:

  •  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

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

Примечание

Если OutputBasis не задан, то OutputBasis присвоен значение, заданное для InputBasis. Если или InputBasis или OutputBasis не заданы, значением по умолчанию является 0 (фактический/фактический) для обоих.

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

Соединение частоты входа ZeroRates, заданного как пара, разделенная запятой, состоящая из 'InputCompounding' и позволенных значений:

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

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

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

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

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

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

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

  • 365 — Ежедневно соединение

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

Примечание

  • Если InputCompounding установлен в (простой) 0, (непрерывный) -1, или 365 (ежедневно), OutputCompounding должен также быть задан с помощью допустимого значения.

  • Если InputCompounding не задан, то InputCompounding присвоен значение, заданное для OutputCompounding.

  • Если или InputCompounding или OutputCompounding не заданы, значением по умолчанию является 2 (полугодовой) для обоих.

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

Дневное основание количества входа ZeroRates, заданного как пара, разделенная запятой, состоящая из 'InputBasis' и позволенных значений:

  •  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

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

Примечание

Если InputBasis не задан, то InputBasis присвоен значение, заданное для OutputBasis. Если или InputBasis или Outputbasis не заданы, значением по умолчанию является 0 (фактический/фактический) для обоих.

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

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

свернуть все

Уровни облигационного купона паритета, возвращенные как NUMBONDS-by-1 числовой вектор. ParRates упорядочен возрастающей зрелостью.

Даты погашения, которые соответствуют ParRates, возвратились как NUMBONDS-by-1 вектор дат погашения, которые соответствуют каждому уровню паритета, содержавшемуся в ParRates.

ParRates выражается как последовательные числа даты (значение по умолчанию) или datetimes (если CurveDates или Settle являются массивами datetime). CurveDates упорядочен возрастающей зрелостью.

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

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