rangefloatbycir

Ценовая область значений плавающей ноты с использованием дерева Кокса-Ингерсолла-Росса

Описание

пример

[Price,PriceTree] = rangefloatbycir(CIRTree,Spread,Settle,Maturity,RateSched) цены варьируются в области значений плавающей ноты с помощью процентного дерева Кокса-Ингерсолла-Росса (CIR) с использованием модели CIR++ с подходом Навалки-Беляевой (NB).

пример

[Price,PriceTree] = rangefloatbycir(___,Name,Value) добавляет дополнительные аргументы пары "имя-значение".

Примеры

свернуть все

Создайте RateSpec использование intenvset функция.

Rates = [0.035; 0.042147; 0.047345; 0.052707]; 
Dates = {'Jan-1-2017'; 'Jan-1-2018'; 'Jan-1-2019'; 'Jan-1-2020'; 'Jan-1-2021'}; 
ValuationDate = 'Jan-1-2017'; 
EndDates = Dates(2:end)'; 
Compounding = 1; 
RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', ValuationDate, 'EndDates',EndDates,'Rates', Rates, 'Compounding', Compounding); 

Создайте CIR дерево.

NumPeriods = length(EndDates); 
Alpha = 0.03; 
Theta = 0.02;  
Sigma = 0.1;   
Settle = '01-Jan-2017'; 
Maturity = '01-Jan-2020'; 
CIRTimeSpec = cirtimespec(Settle, Maturity, 3); 
CIRVolSpec = cirvolspec(Sigma, Alpha, Theta); 

CIRT = cirtree(CIRVolSpec, RateSpec, CIRTimeSpec)
CIRT = struct with fields:
      FinObj: 'CIRFwdTree'
     VolSpec: [1x1 struct]
    TimeSpec: [1x1 struct]
    RateSpec: [1x1 struct]
        tObs: [0 1 2]
        dObs: [736696 737061 737426]
     FwdTree: {[1.0350]  [1.0790 1.0500 1.0298]  [1x5 double]}
     Connect: {[3x1 double]  [3x3 double]}
       Probs: {[3x1 double]  [3x3 double]}

Определите инструмент нот области значений, который созревает в Jan-1-2014 и имеет следующий RateSchedule:

Spread = 100;
Settle = 'Jan-1-2017';
Maturity = 'Jan-1-2020';
RateSched(1).Dates = {'Jan-1-2018'; 'Jan-1-2019'  ; 'Jan-1-2020'};
RateSched(1).Rates = [0.045 0.055 ; 0.0525  0.0675; 0.06 0.08];

Вычислите цену плавающей ноты области значений.

[Price,PriceTree] = rangefloatbycir(CIRT,Spread,Settle,Maturity,RateSched)
Price = 91.6849
PriceTree = struct with fields:
     FinObj: 'CIRPriceTree'
      PTree: {[91.6849]  [88.9878 92.6039 95.1352]  [1x5 double]  [1x5 double]}
     AITree: {[0]  [0 0 0]  [0 0 0 0 0]  [0 0 0 0 0]}
       tObs: [0 1 2 3]
    Connect: {[3x1 double]  [3x3 double]}
      Probs: {[3x1 double]  [3x3 double]}

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

свернуть все

Древовидная структура процентной ставки, заданная при помощи cirtree.

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

Количество базисных точек над скоростью ссылки, заданное как NINST-by- 1 вектор.

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

Дата расчета для примечания плавающей области значений, заданная как NINST-by- 1 вектор серийных номеров дат, векторов символов даты, строковых массивов или массивов datetime. The Settle дата для каждой области значений плавающих приборов устанавливается в ValuationDate дерева CIR. Аргумент примечания с плавающей областью значений Settle игнорируется.

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

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

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

Область значений ставок, в пределах которых денежные потоки ненулевые, задается как NINST-by- 1 вектор структур. Каждый элемент массива структур содержит два поля:

  • RateSched.DatesNDates-by- 1 массив ячеек дат, соответствующих расписанию областей значений.

  • RateSched.RatesNDates-by- 2 массив с первым столбцом, содержащим нижнюю границу области значений, и вторым столбцом, содержащим верхнюю границу области значений. Денежный поток для дат RateSched.Dates(n) ненулевое для скоростей в области значений RateSched.Rates(n, 1) <Rate <RateSched.Rate (n, 2).

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [Price,PriceTree] = rangefloatbycir(CIRTree,Spread,Settle,Maturity,RateSched,'Reset',4,'Basis',5,'Principal',10000)

Частота платежей в год, заданная как разделенная разделенными запятой парами, состоящая из 'Reset' и a NINST-by- 1 вектор.

Примечание

Платежи по плавающим банкнотам области значений определяются эффективной процентной ставкой между датами сброса. Если период сброса для области значений охватывает более одного уровня дерева, вычисление платежа становится невозможным из-за рекомбинирования дерева. То есть древовидный путь, соединяющий две последовательные даты сброса, не может быть однозначно определен, поскольку существует несколько возможных путей для соединения двух дат платежа.

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

Базис отсчета дней, представляющий базис, используемый при аннуализации входа дерева прямой скорости, заданный как разделенная запятой пара, состоящий из 'Basis' и a NINST-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

Условная основная сумма, заданная как разделенная разделенными запятой парами, состоящая из 'Principal' и a NINST-by- 1 вектор.

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

Флаг правила в конце месяца, заданный как разделенная разделенными запятой парами, состоящая из 'EndMonthRule' и неотрицательное целое число со значением 0 или 1 использование NINST-by- 1 вектор.

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

  • 1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.

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

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

свернуть все

Ожидаемые цены области значений плавающих нот в момент 0, возвращенные как NINST-by- 1 вектор.

Древовидная структура цен на приборы, возвращаемая как структура, содержащая деревья векторов цен приборов и начисленных процентов, и вектор времени наблюдения для каждого узла. Значения:

  • PriceTree.PTree содержит чистые цены.

  • PriceTree.AITree содержит начисленные проценты.

  • PriceTree.tObs содержит время наблюдения.

  • PriceTree.Connect содержит векторы связности. Каждый элемент массива ячеек описывает, как узлы на этом уровне соединяются с следующим. Для заданного уровня дерева существуют NumNodes элементы в векторе, и они содержат индекс узла на следующем уровне, с которым соединяется средняя ветвь. Вычитание 1 из этого значения указывает, где соединяется восходящая ветвь, и добавление 1 указывает, где соединяется нисходящая ветвь.

  • PriceTree.Probs содержит массивы вероятностей. Каждый элемент массива ячеек содержит вероятности перехода вверх, посередине и вниз для каждого узла уровня.

Подробнее о

свернуть все

Примечание к области значений

A range note является структурированным (рыночным) обеспечением, ставка купона которого равна ссылочной ставке, пока базовая ставка находится в определенной области значений.

Если базовая ставка находится вне области значений, ставка купона 0 на этот период. Этот тип инструмента дает держателю право на денежные потоки, которые зависят от уровня некоторой ссылочной процентной ставки и являются положительными. Держатель нот получает прямое воздействие скорости ссылки. В обмен на недостаток, заключающийся в том, что проценты не выплачиваются за то время, когда остается ассортимент, они предлагают более высокие ставки купонов, чем сопоставимые стандартные продукты, ванильные плавающие ноты. Для получения дополнительной информации см. «Примечание по области значений».

Ссылки

[1] Кокс, Дж., Ингерсолл, Дж., и С. Росс. «Теория срочной структуры процентных ставок». Эконометрика. Том 53, 1985.

[2] Бриго, Д. и Ф. Меркурио. Модели процентных ставок - теория и практика. Springer Finance, 2006.

[3] Хирса, А. Вычислительные методы в финансах. CRC Press, 2012.

[4] Навалка, С., Сото, Г., и Н. Беляева. Динамическое моделирование структуры термина. Уайли, 2007.

[5] Нельсон, Д. и К. Рамасвами. Простые биномиальные процессы как диффузионные приближения в финансовых моделях. Обзор финансовых исследований. Vol 3. 1990, стр 393–430.

Введенный в R2018a