swaptionbybk

Цена swaption от Черного-Karasinski дерева процентной ставки

Синтаксис

[Price,PriceTree] = swaptionbybk(BKTree,OptSpec,Strike,ExerciseDates,Spread,Settle,Maturity)
[Price,PriceTree] = swaptionbybk(___,Name,Value)

Описание

пример

[Price,PriceTree] = swaptionbybk(BKTree,OptSpec,Strike,ExerciseDates,Spread,Settle,Maturity) цены swaption использование Черного-Karasinski дерева.

пример

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

Примеры

свернуть все

Этот пример показывает, как оценить 4-летний вызов и поместить swaption использование дерева процентной ставки BK, приняв, что процентная ставка ежегодно фиксируется в 7%.

Rates =0.07 * 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 RateSpec

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

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

% use BKTimeSpec to specify the structure of the time layout for the BK interest-rate tree
BKTimeSpec = bktimespec(ValuationDate, EndDates, Compounding);

% build the BK tree
BKTree = bktree(BKVolSpec, RateSpec, BKTimeSpec); 

% use the following arguments for a 1-year swap and 4-year swaption
ExerciseDates = 'jan-1-2011';
SwapSettlement = ExerciseDates;  
SwapMaturity   = 'jan-1-2012';  
Spread = 0;  
SwapReset = 2 ;   
Principal = 100;  
OptSpec = {'call' ;'put'};    
Strike= [ 0.07 ; 0.0725];    
Basis=1; 

% price the swaption
PriceSwaption = swaptionbybk(BKTree, OptSpec, Strike, ExerciseDates, ...
Spread, SwapSettlement, SwapMaturity, 'SwapReset', SwapReset, 'Basis', Basis, ...
'Principal', Principal)
PriceSwaption = 2×1

    0.3634
    0.4798

Этот пример показывает, как оценить 4-летний вызов и поместить swaption с получением и оплатой участков с помощью дерева процентной ставки BK, приняв, что процентная ставка ежегодно фиксируется в 7%. Создайте дерево со следующими данными.

Rates =0.07 * 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';

Задайте RateSpec.

RateSpec = intenvset('Rates', Rates, 'StartDates', StartDates, 'EndDates', EndDates,...
'Compounding', Compounding)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: 2
             Disc: [10x1 double]
            Rates: [10x1 double]
         EndTimes: [10x1 double]
       StartTimes: [10x1 double]
         EndDates: [10x1 double]
       StartDates: [10x1 double]
    ValuationDate: 733043
            Basis: 0
     EndMonthRule: 1

Используйте BKVolSpec, чтобы вычислить энергозависимость процентной ставки.

Volatility = 0.10*ones(10,1);  
AlphaCurve = 0.05*ones(10,1);  
AlphaDates = EndDates;  
BKVolSpec = bkvolspec(ValuationDate, EndDates, Volatility, AlphaDates, AlphaCurve);

Используйте BKTimeSpec, чтобы задать структуру размещения времени для дерева BK.

BKTimeSpec = bktimespec(ValuationDate, EndDates, Compounding);

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

BKTree = bktree(BKVolSpec, RateSpec, BKTimeSpec);

Задайте аргументы для 1-летней подкачки и 4-летнего swaption.

ExerciseDates = 'jan-1-2011';
SwapSettlement = ExerciseDates;  
SwapMaturity   = 'jan-1-2012';  
Spread = 0;  
SwapReset = [2 2]; % 1st column represents swaption receiving leg, 2nd column represents swaption paying leg
Principal = 100;  
OptSpec = {'call' ;'put'};    
Strike= [ 0.07 ; 0.0725];    
Basis= [1 3]; % 1st column represents swaption receiving leg, 2nd column represents swaption paying leg

Оцените swaption.

PriceSwaption = swaptionbybk(BKTree, OptSpec, Strike, ExerciseDates, ...
Spread, SwapSettlement, SwapMaturity, 'SwapReset', SwapReset, 'Basis', Basis, ...
'Principal', Principal)
PriceSwaption = 2×1

    0.3634
    0.4798

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

свернуть все

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

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

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

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

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

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

Осуществите даты swaption, заданного как NINST-by-1 вектор или NINST-by-2 последовательные числа даты или векторы символов даты, в зависимости от типа опции.

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

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

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

Количество пунктов по ссылочному уровню, заданному как NINST-by-1 вектор.

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

(Необязательно) тип Опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt' и NINST-by-1 положительное целое число, отмечает с помощью значений:

  • 0 — Европеец

  • 1 — Американец

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

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

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

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

  •  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

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

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

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

свернуть все

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

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

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

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

Больше о

свернуть все

Вызовите Swaption

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

Поместите Swaption

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

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

Для просмотра документации необходимо авторизоваться на сайте