Цена swaption от дерева процентной ставки Black-Derman-Toy
[Price,PriceTree]
= swaptionbybdt(BDTTree,OptSpec,Strike,ExerciseDates,Spread,Settle,Maturity)
[Price,PriceTree]
= swaptionbybdt(___,Name,Value)
Этот пример показывает, как оценить 5-летний вызов swaption использование дерева процентной ставки BDT. Примите, что процентная ставка и энергозависимость фиксируются в 6% и 20% ежегодно между датой оценки дерева до его зрелости. Создайте дерево со следующими данными.
Rates = 0.06 * ones (10,1); StartDates = ['jan-1-2007';'jan-1-2008';'jan-1-2009';'jan-1-2010';'jan-1-2011';... 'jan-1-2012';'jan-1-2013';'jan-1-2014';'jan-1-2015';'jan-1-2016']; EndDates =['jan-1-2008';'jan-1-2009';'jan-1-2010';'jan-1-2011';'jan-1-2012';... 'jan-1-2013';'jan-1-2014';'jan-1-2015';'jan-1-2016';'jan-1-2017']; ValuationDate = 'jan-1-2007'; Compounding = 1; % define the RateSpec RateSpec = intenvset('Rates', Rates, 'StartDates', StartDates, 'EndDates', EndDates, ... 'Compounding', Compounding); % use VolSpec to compute interest-rate volatility Volatility = 0.20 * ones (10,1); VolSpec = bdtvolspec(ValuationDate,... EndDates, Volatility); % use TimeSpec to specify the structure of the time layout for a BDT tree TimeSpec = bdttimespec(ValuationDate, EndDates, Compounding); % build the BDT tree BDTTree = bdttree(VolSpec, RateSpec, TimeSpec); % use the following swaption arguments ExerciseDates = 'jan-1-2012'; SwapSettlement = ExerciseDates; SwapMaturity = 'jan-1-2015'; Spread = 0; SwapReset = 1; Principal = 100; OptSpec = 'call'; Strike=.062; Basis=1; % price the swaption [Price, PriceTree] = swaptionbybdt(BDTTree, OptSpec, Strike, ExerciseDates, ... Spread, SwapSettlement, SwapMaturity, 'SwapReset', SwapReset, ... 'Basis', Basis, 'Principal', Principal)
Price = 2.0592
PriceTree = struct with fields:
FinObj: 'BDTPriceTree'
tObs: [0 1 2 3 4 5 6 7 8 9 10]
PTree: {1x11 cell}
Этот пример показывает, как оценить 5-летний вызов swaption с получением и оплатой участков с помощью дерева процентной ставки BDT. Примите, что процентная ставка и энергозависимость фиксируются в 6% и 20% ежегодно между датой оценки дерева до его зрелости. Создайте дерево со следующими данными.
Rates = 0.06 * ones (10,1); StartDates = ['jan-1-2007';'jan-1-2008';'jan-1-2009';'jan-1-2010';'jan-1-2011';... 'jan-1-2012';'jan-1-2013';'jan-1-2014';'jan-1-2015';'jan-1-2016']; EndDates =['jan-1-2008';'jan-1-2009';'jan-1-2010';'jan-1-2011';'jan-1-2012';... 'jan-1-2013';'jan-1-2014';'jan-1-2015';'jan-1-2016';'jan-1-2017']; ValuationDate = 'jan-1-2007'; Compounding = 1;
Задайте RateSpec
.
RateSpec = intenvset('Rates', Rates, 'StartDates', StartDates, 'EndDates', EndDates, ... 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [10x1 double]
Rates: [10x1 double]
EndTimes: [10x1 double]
StartTimes: [10x1 double]
EndDates: [10x1 double]
StartDates: [10x1 double]
ValuationDate: 733043
Basis: 0
EndMonthRule: 1
Используйте VolSpec
, чтобы вычислить энергозависимость процентной ставки.
Volatility = 0.20 * ones (10,1); VolSpec = bdtvolspec(ValuationDate,EndDates, Volatility);
Используйте TimeSpec
, чтобы задать структуру размещения времени для дерева BDT.
TimeSpec = bdttimespec(ValuationDate, EndDates, Compounding);
Создайте дерево BDT.
BDTTree = bdttree(VolSpec, RateSpec, TimeSpec)
BDTTree = struct with fields:
FinObj: 'BDTFwdTree'
VolSpec: [1x1 struct]
TimeSpec: [1x1 struct]
RateSpec: [1x1 struct]
tObs: [0 1 2 3 4 5 6 7 8 9]
dObs: [1x10 double]
TFwd: {1x10 cell}
CFlowT: {1x10 cell}
FwdTree: {1x10 cell}
Задайте swaption аргументы.
ExerciseDates = 'jan-1-2012'; SwapSettlement = ExerciseDates; SwapMaturity = 'jan-1-2015'; Spread = 0; SwapReset = [1 1]; % 1st column represents receiving leg, 2nd column represents paying leg Principal = 100; OptSpec = 'call'; Strike=.062; Basis= [2 4]; % 1st column represents receiving leg, 2nd column represents paying leg
Оцените swaption.
[Price, PriceTree] = swaptionbybdt(BDTTree, OptSpec, Strike, ExerciseDates, ... Spread, SwapSettlement, SwapMaturity, 'SwapReset', SwapReset, ... 'Basis', Basis, 'Principal', Principal)
Price = 2.0592
PriceTree = struct with fields:
FinObj: 'BDTPriceTree'
tObs: [0 1 2 3 4 5 6 7 8 9 10]
PTree: {1x11 cell}
BDTTree
— Древовидная структура процентной ставкиДревовидная структура процентной ставки, заданная при помощи bdttree
.
Типы данных: struct
OptSpec
— Определение опции 'call'
или 'put'
| массив ячеек вектора символов со значениями 'call'
или 'put'
Определение опции как 'call'
или 'put'
, заданный как NINST
-by-1
массив ячеек из символьных векторов. Для получения дополнительной информации см. Определения.
Типы данных: char | cell
Strike
— Ударьте значения уровня подкачкиУдарьте значения уровня подкачки, заданные как NINST
-by-1
вектор.
Типы данных: double
ExerciseDates
— Осуществите даты swaptionОсуществите даты 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
Spread
— Количество пунктов по ссылочному уровнюКоличество пунктов по ссылочному уровню, заданному как NINST
-by-1
вектор.
Типы данных: double
Settle
— Расчетный деньРасчетный день (представляющий уладить дату каждой подкачки), заданный как NINST
-by-1
вектор последовательных чисел даты или даты векторы символов. Дата Settle
каждого swaption назначена к ValuationDate
дерева BDT. Аргумент Settle
подкачки проигнорирован. Базовая подкачка запускается в зрелости swaption.
Типы данных: double
| char
Maturity
— Дата погашения для подкачкиДата погашения для каждой подкачки, заданной как NINST
-by-1
вектор дат с помощью последовательных чисел даты или векторов символов даты.
Типы данных: double
| char
| cell
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[Price,PriceTree] = swaptionbybdt(BDTTree,OptSpec, ExerciseDates,Spread,Settle,Maturity,'SwapReset',4,'Basis',5,'Principal',10000)
'AmericanOpt'
— Тип опции0
(европейское) (значение по умолчанию) | целое число со значениями 0
или 1
(Необязательно) тип Опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt'
и NINST
-by-1
положительное целое число, отмечает с помощью значений:
0
— Европеец
1
— Американец
Типы данных: double
'SwapReset'
— Сбросьте частоту в год для лежания в основе подкачки1
(значение по умолчанию) | числовойСбросьте частоту в год для базовой подкачки, заданной как пара, разделенная запятой, состоящая из 'SwapReset'
и NINST
-by-1
вектор или NINST
-by-2
матрица, представляющая частоту сброса в год для каждого участка. Если SwapReset
является NINST
-by-2
, первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.
Типы данных: double
'Basis'
— Основание дневного количества инструмента0
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
до 13
Основание дневного количества, представляющее основание, используемое при пересчитывании на год входного дерева форвардного курса для каждого инструмента, заданного как пара, разделенная запятой, состоящая из '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'
— Отвлеченная основная сумма100
(значение по умолчанию) | числовойОтвлеченная основная сумма, заданная как пара, разделенная запятой, состоящая из 'Principal'
и NINST
-by-1
вектор.
Типы данных: double
Опции
Производные оценивая структуру опцийПроизводные оценивая структуру опций, заданную как пара, разделенная запятой, состоящая из 'Options'
и структуры, получены из использования derivset
.
Типы данных: struct
Price
— Ожидаемые цены swaptions во время 0Ожидаемые цены swaptions во время 0, возвращенный как NINST
-by-1
вектор.
PriceTree
— Древовидная структура цен на инструментыДревовидная структура цен на инструменты, возвращенных как структура MATLAB® деревьев, содержащих векторы swaption цен на инструменты и вектор времен наблюдения для каждого узла. В PriceTree
:
PriceTree.PTree
содержит чистые цены.
PriceTree.tObs
содержит времена наблюдения.
call swaption или плательщик swaption позволяют покупателю опции вводить в процентную ставку, загружают, который покупатель опции платит фиксированной процентной ставке и получает плавающий курс.
put swaption или получатель swaption позволяют покупателю опции вводить в процентную ставку, загружают, который покупатель опции получает фиксированную процентную ставку и платит плавающему курсу.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.