Ценовой европеец swaption инструмент с помощью модели Black
цены swaptions использование Черной модели ценообразования опционов. Price
= swaptionbyblk(RateSpec
,OptSpec
,Strike
,Settle
,ExerciseDates
,Maturity
,Volatility
)
добавляют дополнительные аргументы пары "имя-значение". Price
= swaptionbyblk(___,Name,Value
)
Оцените европейский swaption, который дает держателю право войти за пять лет в трехлетнюю подкачку оплаты, где с фиксированной процентной ставкой из 6,2% заплачен, и плавание получено. Примите, что кривая доходности является плоской в 6% в год с непрерывным соединением, энергозависимость уровня подкачки составляет 20%, принципал составляет 100$, и платежами раз в полгода обмениваются.
Создайте RateSpec
.
Rate = 0.06; Compounding = -1; ValuationDate = 'Jan-1-2010'; EndDates = 'Jan-1-2020'; Basis = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', ValuationDate, ... 'EndDates', EndDates, 'Rates', Rate, 'Compounding', Compounding, 'Basis', Basis);
Оцените swaption использование модели Black.
Settle = 'Jan-1-2011'; ExerciseDates = 'Jan-1-2016'; Maturity = 'Jan-1-2019'; Reset = 2; Principal = 100; Strike = 0.062; Volatility = 0.2; OptSpec = 'call'; Price= swaptionbyblk(RateSpec, OptSpec, Strike, Settle, ExerciseDates, Maturity, ... Volatility, 'Reset', Reset, 'Principal', Principal, 'Basis', Basis)
Price = 2.0710
Этот пример показывает Цене европейский swaption с получением и оплатой участков, который дает держателю право войти за пять лет в трехлетнюю подкачку оплаты, где с фиксированной процентной ставкой из 6,2% заплачен, и плавание получено. Примите, что кривая доходности является плоской в 6% в год с непрерывным соединением, энергозависимость уровня подкачки составляет 20%, принципал составляет 100$, и платежами раз в полгода обмениваются.
Rate = 0.06; Compounding = -1; ValuationDate = 'Jan-1-2010'; EndDates = 'Jan-1-2020'; Basis = 1;
Задайте RateSpec
.
RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',ValuationDate, ... 'EndDates',EndDates,'Rates',Rate,'Compounding',Compounding,'Basis',Basis);
Задайте swaption аргументы.
Settle = 'Jan-1-2011'; ExerciseDates = 'Jan-1-2016'; Maturity = 'Jan-1-2019'; Reset = [2 4]; % 1st column represents receiving leg, 2nd column represents paying leg Principal = 100; Strike = 0.062; Volatility = 0.2; OptSpec = 'call'; Basis = [1 3]; % 1st column represents receiving leg, 2nd column represents paying leg
Оцените swaption.
Price= swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDates,Maturity,Volatility, ... 'Reset',Reset,'Principal',Principal,'Basis',Basis)
Price = 1.6494
Оцените европейский swaption, который дает держателю право ввести в 5-летнюю подкачку получения через год, где фиксированная процентная ставка 3% получена, и плавание заплачено. Примите, что 1 год, 2-летний, 3-летний, 4-летний и нулевые уровни 5-лет, составляет 3%, 3,4%, 3,7%, 3,9% и 4% с непрерывным соединением. Энергозависимость уровня подкачки составляет 21%, принципал составляет 1 000$, и платежами раз в полгода обмениваются.
Создайте RateSpec
.
ValuationDate = 'Jan-1-2010'; EndDates = {'Jan-1-2011';'Jan-1-2012';'Jan-1-2013';'Jan-1-2014';'Jan-1-2015'}; Rates = [0.03; 0.034 ; 0.037; 0.039; 0.04;]; Compounding = -1; Basis = 1; RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', ValuationDate, ... 'EndDates', EndDates, 'Rates', Rates, 'Compounding', Compounding,'Basis', Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: [5x1 double]
Rates: [5x1 double]
EndTimes: [5x1 double]
StartTimes: [5x1 double]
EndDates: [5x1 double]
StartDates: 734139
ValuationDate: 734139
Basis: 1
EndMonthRule: 1
Оцените swaption использование модели Black.
Settle = 'Jan-1-2011'; ExerciseDates = 'Jan-1-2012'; Maturity = 'Jan-1-2017'; Strike = 0.03; Volatility = 0.21; Principal =1000; Reset = 2; OptSpec = 'put'; Price = swaptionbyblk(RateSpec, OptSpec, Strike, Settle, ExerciseDates, ... Maturity, Volatility,'Basis', Basis, 'Reset', Reset,'Principal', Principal)
Price = 0.5771
Задайте кривые LIBOR и OIS.
Settle = datenum('15-Mar-2013');
CurveDates = daysadd(Settle,360*[1/12 2/12 3/12 6/12 1 2 3 4 5 7 10],1);
OISRates = [.0018 .0019 .0021 .0023 .0031 .006 .011 .017 .021 .026 .03]';
LiborRates = [.0045 .0047 .005 .0055 .0075 .0109 .0162 .0216 .0262 .0309 .0348]';
Создайте связанный RateSpec
для OIS и кривых LIBOR.
OISCurve = intenvset('Rates',OISRates,'StartDate',Settle,'EndDates',CurveDates,'Compounding',2,'Basis',1); LiborCurve = intenvset('Rates',LiborRates,'StartDate',Settle,'EndDates',CurveDates,'Compounding',2,'Basis',1);
Задайте swaption инструменты.
ExerciseDate = '15-Mar-2018'; Maturity = {'15-Mar-2020';'15-Mar-2023'}; OptSpec = 'call'; Strike = 0.04; BlackVol = 0.2;
Оцените swaption инструменты с помощью структуры термина OISCurve
и для дисконтирования потоков наличности и для генерации будущих форвардных курсов.
Price = swaptionbyblk(OISCurve, OptSpec, Strike, Settle, ExerciseDate, Maturity, BlackVol,'Reset',1)
Price = 2×1
1.0956
2.6944
Оцените swaption инструменты с помощью структуры термина LiborCurve
сгенерировать будущие форвардные курсы. Структура термина OISCurve
используется для дисконтирования потоков наличности.
PriceLC = swaptionbyblk(OISCurve, OptSpec, Strike, Settle, ExerciseDate, Maturity, BlackVol,'ProjectionCurve',LiborCurve,'Reset',1)
PriceLC = 2×1
1.5346
3.8142
Создайте RateSpec
.
ValuationDate = 'Jan-1-2016'; EndDates = {'Jan-1-2017';'Jan-1-2018';'Jan-1-2019';'Jan-1-2020';'Jan-1-2021'}; Rates = [-0.02; 0.024 ; 0.047; 0.090; 0.12;]/100; Compounding = 1; Basis = 1; RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',ValuationDate, ... 'EndDates',EndDates,'Rates',Rates,'Compounding',Compounding,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [5x1 double]
Rates: [5x1 double]
EndTimes: [5x1 double]
StartTimes: [5x1 double]
EndDates: [5x1 double]
StartDates: 736330
ValuationDate: 736330
Basis: 1
EndMonthRule: 1
Оцените swaption с отрицательной забастовкой с помощью модели Shifted Black.
Settle = 'Jan-1-2016'; ExerciseDates = 'Jan-1-2017'; Maturity = 'Jan-1-2020'; Strike = -0.003; % Set -0.3 percent strike. ShiftedBlackVolatility = 0.31; Principal = 1000; Reset = 1; OptSpec = 'call'; Shift = 0.008; % Set 0.8 percent shift. Price = swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDates, ... Maturity,ShiftedBlackVolatility,'Basis',Basis,'Reset',Reset,... 'Principal',Principal,'Shift',Shift)
Price = 12.8301
Создайте RateSpec
.
ValuationDate = 'Jan-1-2016'; EndDates = {'Jan-1-2017';'Jan-1-2018';'Jan-1-2019';'Jan-1-2020';'Jan-1-2021'}; Rates = [-0.02; 0.024 ; 0.047; 0.090; 0.12;]/100; Compounding = 1; Basis = 1; RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',ValuationDate, ... 'EndDates',EndDates,'Rates',Rates,'Compounding',Compounding,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [5x1 double]
Rates: [5x1 double]
EndTimes: [5x1 double]
StartTimes: [5x1 double]
EndDates: [5x1 double]
StartDates: 736330
ValuationDate: 736330
Basis: 1
EndMonthRule: 1
Оцените swaptions с использованием модели Shifted Black.
Settle = 'Jan-1-2016'; ExerciseDates = 'Jan-1-2017'; Maturities = {'Jan-1-2018';'Jan-1-2019';'Jan-1-2020'}; Strikes = [-0.0034;-0.0032;-0.003]; ShiftedBlackVolatilities = [0.33;0.32;0.31]; % A vector of volatilities. Principal = 1000; Reset = 1; OptSpec = 'call'; Shifts = [0.0085;0.0082;0.008]; % A vector of shifts. Prices = swaptionbyblk(RateSpec,OptSpec,Strikes,Settle,ExerciseDates, ... Maturities,ShiftedBlackVolatilities,'Basis',Basis,'Reset',Reset, ... 'Principal',Principal,'Shift',Shifts)
Prices = 3×1
4.1117
8.0577
12.8301
RateSpec
— Структура термина процентной ставкиСтруктура термина процентной ставки (пересчитанный на год и постоянно составляемый), заданный RateSpec
полученный из intenvset
. Для получения информации о спецификации процентной ставки смотрите intenvset
.
Если участок оплаты отличается, чем участок получения, RateSpec
может быть NINST
- 2
входная переменная RateSpec
s, со вторым входом, являющимся скидкой, изгибаются для участка оплаты. Если только одна кривая задана, то она используется, чтобы обесценить оба участка.
Типы данных: struct
OptSpec
— Определение опции 'call'
или 'put'
| массив ячеек вектора символов со значениями 'call'
или 'put'
Определение опции как 'call'
или 'put'
В виде NINST
- 1
массив ячеек из символьных векторов.
'call'
swaption или Payer swaption, позволяет покупателю опции вводить в процентную ставку, загружают, который покупатель опции платит фиксированной процентной ставке и получает плавающий курс.
'put'
swaption или Receiver swaption, позволяет покупателю опции вводить в процентную ставку, загружают, который покупатель опции получает фиксированную процентную ставку и платит плавающему курсу.
Типы данных: char |
cell
Strike
— Ударьте значения уровня подкачкиУдарьте значения уровня подкачки в виде NINST
- 1
вектор из десятичных значений.
Типы данных: double
Settle
— Расчетный деньРасчетный день (представляющий уладить дату каждого swaption) в виде NINST
- 1
вектор из последовательных чисел даты или векторов символов даты. Settle
не должен быть позже, чем ExerciseDates
.
Settle
дата вводится для swaptionbyblk
дата оценки, в которую оценен swaption (опция, чтобы ввести в подкачку). swaption покупатель платит эту цену на эту дату, чтобы содержать swaption.
Типы данных: double |
char
ExerciseDates
— Даты, в которые swaption истекает и базовая подкачка, запускаютсяДаты в виде последовательных чисел даты или векторов символов даты, на которых swaption истекает и базовая подкачка, запускаются. swaption держатель может принять решение ввести в подкачку в эту дату, если ситуация благоприятна.
Для европейской опции, ExerciseDates
NINST
- 1
вектор из дат осуществления. Каждая строка является расписанием для одной опции. При использовании европейской опции существует только один ExerciseDate
на дате окончания срока действия опции.
Типы данных: double |
char
| cell
Maturity
— Дата погашения для каждой прямой подкачкиДата погашения для каждой прямой подкачки в виде NINST
- 1
вектор из дат с помощью последовательных чисел даты или векторов символов даты.
Типы данных: double |
char
| cell
Volatility
— Ежегодные значения колебанийЕжегодные значения колебаний в виде NINST
- 1
вектор из числовых значений.
Типы данных: double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
Price = swaptionbyblk(OISCurve,OptSpec,Strike,Settle,ExerciseDate,Maturity,BlackVol,'Reset',1,'Shift',.5)
Basis
— Базис дневного количества инструмента
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Базис дневного количества инструмента в виде разделенной запятой пары, состоящей из 'Basis'
и NINST
- 1
вектор или NINST
- 2
матрица, представляющая базис для каждого участка. Если Basis
NINST
- 2
, первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты. Значением по умолчанию является 0
(фактический/фактический).
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
— Отвлеченная основная сумма
(значение по умолчанию) | числовойОтвлеченная основная сумма в виде разделенной запятой пары, состоящей из 'Principal'
и NINST
- 1
вектор.
Типы данных: double
Reset
— Сбросьте частоту в год для лежания в основе прямой подкачки
(значение по умолчанию) | числовойСбросьте частоту в год для базовой прямой подкачки в виде разделенной запятой пары, состоящей из 'Reset'
и NINST
- 1
вектор или NINST
- 2
матрица, представляющая частоту сброса в год для каждого участка. Если Reset
NINST
- 2
, первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.
Типы данных: double
ProjectionCurve
— Кривая уровня используется в генерации будущих форвардных курсовProjectionCurve
не задан, затем RateSpec
используется и для дисконтирования потоков наличности и для проектирования будущих форвардных курсов (значение по умолчанию) | структураКривая уровня, которая будет использоваться в генерации будущих форвардных курсов в виде разделенной запятой пары, состоящей из 'ProjectionCurve'
и структура создала использование intenvset
. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.
Типы данных: struct
Shift
— Переключите десятичные числа на нижний регистр для переключенной модели Black
(никакой сдвиг) (значение по умолчанию) | положительное десятичное числоПереключите десятичные числа на нижний регистр для переключенной модели Black в виде разделенной запятой пары, состоящей из 'Shift'
и скаляр или NINST
- 1
вектор из уровня переключает положительные десятичные числа на нижний регистр. Установите этот параметр на положительный уровень, переключают десятичные числа на нижний регистр, чтобы добавить положительный сдвиг на прямой уровень подкачки и забастовку, которая эффективно устанавливает отрицательную нижнюю границу для прямого уровня подкачки и забастовки. Например, Shift
из 0.01
равно 1%-му сдвигу.
Типы данных: double
Price
— Цены на swaptions во время 0Цены на swaptions во время 0, возвращенный как NINST
- 1
вектор из цен.
forward swap является подкачкой, которая запускается позднее.
Модель Shifted Black является по существу тем же самым как моделью Черного цвета, за исключением того, что это моделирует перемещения (F + Shift) как базовый актив вместо F (который является прямым уровнем подкачки в случае swaptions).
Эта модель позволяет отрицательные уровни с фиксированной отрицательной нижней границей, заданной суммой сдвига; то есть, нулевая нижняя граница модели Черного цвета была смещена.
Где F является прямым значением, и K является забастовкой.
Где F +Shift является прямым значением, и K +Shift является борьбой за переключенную версию.
bondbyzero
| cfbyzero
| fixedbyzero
| floatbyzero
| blackvolbysabr
| intenvset
| swaptionbynormal
| capbyblk
| floorbyblk
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.