swaptionbyhw

Ценовое свопцирование из дерева процентных ставок Hull-White

Описание

пример

[Price,PriceTree] = swaptionbyhw(HWTree,OptSpec,Strike,ExerciseDates,Spread,Settle,Maturity) ценовой свопцион с помощью дерева Халл-Уайт.

пример

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

Примеры

свернуть все

В этом примере показано, как оценить 3-летний свопцион с помощью дерева процентных ставок HW со следующими данными.

Rates =0.075 * ones (10,1);   
Compounding = 2;    
StartDates = ['jan-1-2007';'jul-1-2007';'jan-1-2008';'jul-1-2008';'jan-1-2009';...
'jul-1-2009';'jan-1-2010'; 'jul-1-2010';'jan-1-2011';'jul-1-2011'];    
EndDates =['jul-1-2007';'jan-1-2008';'jul-1-2008';'jan-1-2009';'jul-1-2009';...
'jan-1-2010';'jul-1-2010';'jan-1-2011';'jul-1-2011';'jan-1-2012'];      
ValuationDate = 'jan-1-2007';      

% define the RatesSpec
RateSpec = intenvset('Rates', Rates, 'StartDates', StartDates, 'EndDates',...
EndDates, 'Compounding', Compounding);  

% use HWVolSpec to compute the interest-rate volatility
Volatility = 0.05*ones(10,1);
AlphaCurve = 0.01*ones(10,1);
AlphaDates = EndDates;
HWVolSpec = hwvolspec(ValuationDate, EndDates, Volatility, AlphaDates, AlphaCurve);

% use HWTimeSpec to specify the structure of the time layout for an HW interest-rate tree
HWTimeSpec = hwtimespec(ValuationDate, EndDates, Compounding);

% build the HW tree
HWTree = hwtree(HWVolSpec, RateSpec, HWTimeSpec); 

% use the following arguments for a 1-year swap and 3-year swaption
ExerciseDates = 'jan-1-2010';
SwapSettlement = ExerciseDates;
SwapMaturity   = 'jan-1-2012';
Spread = 0;
SwapReset = 2 ; 
Principal = 100;
OptSpec = 'put';  
Strike= 0.04;
Basis=1;

% price the swaption
PriceSwaption = swaptionbyhw(HWTree, OptSpec, Strike, ExerciseDates, ...
Spread, SwapSettlement, SwapMaturity,'SwapReset', SwapReset, ...
'Basis', Basis,'Principal', Principal)
PriceSwaption = 2.9201

В этом примере показано, как оценить 3-летний свопцион с получением и оплатой ног с помощью дерева процентных ставок HW со следующими данными.

Rates =0.075 * ones (10,1);   
Compounding = 2;    
StartDates = ['jan-1-2007';'jul-1-2007';'jan-1-2008';'jul-1-2008';'jan-1-2009';...
'jul-1-2009';'jan-1-2010'; 'jul-1-2010';'jan-1-2011';'jul-1-2011'];    
EndDates =['jul-1-2007';'jan-1-2008';'jul-1-2008';'jan-1-2009';'jul-1-2009';...
'jan-1-2010';'jul-1-2010';'jan-1-2011';'jul-1-2011';'jan-1-2012'];      
ValuationDate = 'jan-1-2007';

Определите RatesSpec.

RateSpec = intenvset('Rates', Rates, 'StartDates', StartDates, 'EndDates',...
EndDates, 'Compounding', Compounding);

Использование HWVolSpec для вычисления волатильности процентной ставки.

Volatility = 0.05*ones(10,1);
AlphaCurve = 0.01*ones(10,1);
AlphaDates = EndDates;
HWVolSpec = hwvolspec(ValuationDate, EndDates, Volatility, AlphaDates, AlphaCurve);

Использование HWTimeSpec для определения структуры временного размещения для дерева процентных ставок HW.

HWTimeSpec = hwtimespec(ValuationDate, EndDates, Compounding);

Создайте дерево аппаратных средств.

HWTree = hwtree(HWVolSpec, RateSpec, HWTimeSpec);

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

ExerciseDates = 'jan-1-2010';
SwapSettlement = ExerciseDates;
SwapMaturity   = 'jan-1-2012';
Spread = 0;
SwapReset = [2 2]; % 1st column represents receiving leg, 2nd column represents paying leg 
Principal = 100;
OptSpec = 'put';  
Strike= 0.04;
Basis= [1 3];    % 1st column represents receiving leg, 2nd column represents paying leg

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

PriceSwaption = swaptionbyhw(HWTree, OptSpec, Strike, ExerciseDates, ...
Spread, SwapSettlement, SwapMaturity,'SwapReset', SwapReset, ...
'Basis', Basis,'Principal', Principal)
PriceSwaption = 2.9201

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: [Price,PriceTree] = swaptionbyhw(HWTree,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

Структура опций ценообразования производных, заданная как разделенная разделенными запятой парами, состоящая из 'Options' и структуру, полученную при использовании derivset.

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

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

свернуть все

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

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

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

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

Подробнее о

свернуть все

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

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

Поставьте Swaption

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

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