exponenta event banner

rangefloatbycir

Плавающая нота ценового диапазона с использованием дерева Кокса-Ингерсолла-Росса

Описание

пример

[Price,PriceTree] = rangefloatbycir(CIRTree,Spread,Settle,Maturity,RateSched) ценовой диапазон плавающей ноты с деревом процентных ставок Cox-Ingersoll-Ross (CIR) с использованием модели CIR++ с подходом Nawalka-Beliaeva (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около-1 вектор.

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

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

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

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

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

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

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

  • RateSched.RatesNDatesоколо-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' и NINSTоколо-1 вектор.

Примечание

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

Подробнее

свернуть все

Примечание диапазона

Нота диапазона - это структурированная (связанная с рынком) ценная бумага, купонная ставка которой равна базовой ставке, если базовая ставка находится в пределах определенного диапазона.

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

Ссылки

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

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

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

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

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

Представлен в R2018a