swaptionbycir

Ценовое свопцирование из дерева процентных ставок Кокс-Ингерсолл-Росс

Описание

пример

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

пример

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

Примеры

свернуть все

Определите 3-летний свопцион.

Rates =0.075 * ones (10,1);   
Compounding = 2;    
StartDates = ['Jan-1-2017';'Jul-1-2017';'Jan-1-2018';'Jul-1-2018';'Jan-1-2019';...
'Jul-1-2019';'Jan-1-2020'; 'Jul-1-2020';'Jan-1-2021';'Jul-1-2021'];    
EndDates =['Jul-1-2017';'Jan-1-2018';'Jul-1-2018';'Jan-1-2019';'Jul-1-2019';...
'Jan-1-2020';'Jul-1-2020';'Jan-1-2021';'Jul-1-2021';'Jan-1-2022'];      
ValuationDate = 'Jan-1-2017';      

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

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;    
Maturity = '01-jan-2023'; 
CIRTimeSpec = cirtimespec(ValuationDate, Maturity, NumPeriods); 
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 0.6000 1.2000 1.8000 2.4000 3 3.6000 4.2000 4.8000 5.4000]
        dObs: [1x10 double]
     FwdTree: {1x10 cell}
     Connect: {1x9 cell}
       Probs: {1x9 cell}

Используйте следующие аргументы для 1-летнего свопа и 3-летнего свопциона.

ExerciseDates = 'Jan-1-2020';
SwapSettlement = ExerciseDates;
SwapMaturity   = 'Jan-1-2022';
Spread = 0;
SwapReset = 2 ; 
Principal = 100;
OptSpec = 'put';  
Strike= 0.04;
Basis=1;

Оцените свопцион.

[Price,PriceTree] = swaptionbycir(CIRT,OptSpec,Strike,ExerciseDates,Spread,SwapSettlement,SwapMaturity,'SwapReset',SwapReset, ...
'Basis',Basis,'Principal',Principal)
Price = 3.1537
PriceTree = struct with fields:
     FinObj: 'CIRPriceTree'
      PTree: {1x11 cell}
       tObs: [0 0.6000 1.2000 1.8000 2.4000 3 3.6000 4.2000 4.8000 5.4000 6]
    Connect: {1x9 cell}
      Probs: {1x9 cell}

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

свернуть все

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

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

Определение опции как 'call' или 'put', заданный как NINST-by- 1 массив ячеек из векторов символов или строковых массивов. Дополнительные сведения см. в разделе Дополнительные сведения.

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

Значения скорости ударного свопа, заданные как NINST-by- 1 вектор.

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

Даты упражнений для свопциона, заданные как NINST-by- 1 вектор или NINST-by- 2 использование серийных номеров дат, векторов символов даты, строковых массивов или массивов datetime в зависимости от типа опции.

  • Для европейской опции, ExerciseDates являются NINST-by- 1 вектор дат упражнений. Каждая строка является расписанием для одной опции. При использовании европейской опции существует только одна ExerciseDate на дату истечения срока действия опции.

  • Для американской опции, ExerciseDates являются NINST-by- 2 вектор контуров дат упражнения. Для каждого инструмента опция может быть реализована на любую дату купона между или включая пару дат в этой строке. Если только один не - NaN указана дата, или если ExerciseDates является NINST-by- 1, опция может быть реализована между ValuationDate дерева и единственного перечисленного ExerciseDate.

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

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

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

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

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

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

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

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

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

Пример: [Price,PriceTree] = swaptionbycir(CIRTree,OptSpec, ExerciseDates,Spread,Settle,Maturity,'SwapReset',4,'Basis',5,'Principal',10000)

Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'AmericanOpt'и NINST-by- 1 положительные целочисленные флаги со значениями:

  • 0 - Европейский

  • 1 - Американский

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

Частота сброса в год для базового свопа, заданная как разделенная разделенными запятой парами, состоящая из 'SwapReset' и a NINST-by- 1 вектор или NINST-by- 2 матрица, представляющая частоту сброса в год для каждой ноги. Если SwapReset является NINST-by- 2первый столбец представляет приемную ветвь, а второй столбец представляет платежную ветвь.

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

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

  • 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

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

свернуть все

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

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

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

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

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

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

Подробнее о

свернуть все

Переключение вызовов

Свопцион call swaption или плательщика позволяет покупателю опции заключить процентный своп, при котором покупатель опции платит фиксированную ставку и получает плавающую ставку.

Поставьте Swaption

Свопцион put swaption или приемник позволяет покупателю опции заключить процентный своп, при котором покупатель опции получает фиксированную ставку и платит плавающую ставку.

Ссылки

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

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

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

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

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

Введенный в R2018a