rangefloatbycir

Диапазон цен, плавающий примечание с помощью дерева Кокса-Инджерсолла-Росса

Синтаксис

[Price,PriceTree] = rangefloatbycir(CIRTree,Spread,Settle,Maturity,RateSched)
[Price,PriceTree] = rangefloatbycir(___,Name,Value)

Описание

пример

[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]}

Задайте инструмент примечания области значений, который назревает в Яне-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: {1x4 cell}
     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. Дата 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Примечание

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

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

Основание дневного количества, представляющее основание, используемое при пересчитывании на год входного дерева форвардного курса, заданного как пара, разделенная запятой, состоящая из 'Basis' и NINST-by-1 вектор целых чисел.

  •  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

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

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

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

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

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

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

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

Типы данных: логический

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

свернуть все

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

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

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

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

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

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

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

Больше о

свернуть все

Инструмент примечания области значений

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

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

Ссылки

[1] Cox, J., Ингерсолл, J. и С. Росс. "Теория термина структура процентных ставок". Econometrica. Издание 53, 1985.

[2] Brigo, D. и Ф. Меркурио. Модели процентной ставки - теория и практика. Финансы Спрингера, 2006.

[3] Hirsa, A. Вычислительные методы в финансах. Нажатие CRC, 2012.

[4] Nawalka, S., Soto, G. и Н. Беляева. Динамическое моделирование структуры термина. Вайли, 2007.

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

Введенный в R2018a