Инструмент ценового европейского свопциона с использованием модели Black
свопции цен с использованием модели ценообразования опционов Black. Price = swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDates,Maturity,Volatility)
добавляет необязательные аргументы пары имя-значение. Price = swaptionbyblk(___,Name,Value)
Цена европейского свопциона, который дает держателю право ввести через пять лет в трехлетний платёжный своп, где выплачивается фиксированная ставка 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);
Цена свопциона с использованием модели 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
Этот пример показывает цену европейского свопциона с получающими и оплачивающими ногами, который дает держателю право вступить через пять лет в трехлетний платящий своп, где выплачивается фиксированная ставка 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);
Определите аргументы свопциона.
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
Цена свопциона.
Price= swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDates,Maturity,Volatility, ... 'Reset',Reset,'Principal',Principal,'Basis',Basis)
Price = 1.6494
Цена европейского свопциона, который дает держателю право заключить 5-летний получающий своп через год, где получена фиксированная ставка в 3% и выплачена плавающая. Предположим, что нулевые ставки за 1 год, 2 года, 3 года, 4 года и 5 лет составляют 3%, 3,4%, 3,7%, 3,9% и 4% при непрерывном компаундировании. Волатильность ставки свопа составляет 21%, основная сумма - $1000, и платежи обмениваются раз в полгода.
Создать 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
Цена свопциона с использованием модели 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
Определите кривые OIS и Libor.
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);
Определите инструменты свопциона.
ExerciseDate = '15-Mar-2018'; Maturity = {'15-Mar-2020';'15-Mar-2023'}; OptSpec = 'call'; Strike = 0.04; BlackVol = 0.2;
Ценообразование инструментов свопциона с использованием терминологической структуры OISCurve как для дисконтирования денежных потоков, так и для генерации будущих форвардных ставок.
Price = swaptionbyblk(OISCurve, OptSpec, Strike, Settle, ExerciseDate, Maturity, BlackVol,'Reset',1)Price = 2×1
1.0956
2.6944
Ценообразование инструментов свопциона с использованием терминологической структуры 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
Цена свопциона с отрицательным ударом с использованием модели Shilded 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
Оцените свопции с использованием модели Shaded 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 входная переменная RateSpecs, причем второй ввод является кривой дисконтирования для платящей ноги. Если указана только одна кривая, то она используется для дисконтирования обеих ветвей.
Типы данных: struct
OptSpec - Определение опциона 'call' или 'put' | массив ячеек символьного вектора со значениями 'call' или 'put'Определение опции как 'call' или 'put', указано как NINSTоколо-1 клеточный массив символьных векторов.
A 'call' swaption, или Payer swaption, позволяет покупателю опциона ввести процентный своп, в котором покупатель опциона платит фиксированную ставку и получает плавающую ставку.
A 'put' свопцион, или свопцион получателя, позволяет покупателю опциона ввести процентный своп, в котором покупатель опциона получает фиксированную ставку и оплачивает плавающую ставку.
Типы данных: char | cell
Strike - Значения ставки страйк-свопаЗначения ставки страйк-свопа, указанные как NINSTоколо-1 вектор десятичных значений.
Типы данных: double
Settle - Дата расчетаДата балансирования (представляющая дату балансирования для каждого свопциона), указанная как NINSTоколо-1 вектор серийных номеров дат или векторы символов дат. Settle не позднее, чем ExerciseDates.
Settle дата ввода для swaptionbyblk дата оценки, на которую рассчитывается цена свопциона (опциона для заключения свопа). Покупатель свопциона оплачивает эту цену на эту дату, чтобы удержать свопцион.
Типы данных: double | char
ExerciseDates - Даты истечения срока действия свопциона и начала базового свопаДаты, определенные как серийные номера дат или векторы символов дат, на которые истекает свопцион и начинается нижележащий своп. Держатель свопциона может ввести своп на эту дату, если ситуация благоприятна.
Для европейского варианта: 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 (факт/факт) (по умолчанию) | целое число от 0 кому 13Дневной отсчет прибора, определяемый как пара, разделенная запятыми, состоящая из 'Basis' и NINSTоколо-1 вектор или NINSTоколо-2 матрица, представляющая основу для каждого лег. если Basis является NINSTоколо-2, первый столбец представляет ветвь-получатель, в то время как второй столбец представляет лег. по умолчанию 0 (фактические/фактические).
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' - Условная основная сумма100 (по умолчанию) | числовыеУсловная основная сумма, указанная как разделенная запятыми пара, состоящая из 'Principal' и NINSTоколо-1 вектор.
Типы данных: double
'Reset' - Частота сброса в год для базового прямого свопа1 (по умолчанию) | числовыеЧастота сброса в год для базового прямого свопа, указанного как пара, разделенная запятыми, состоящая из 'Reset' и NINSTоколо-1 вектор или NINSTоколо-2 матрица, представляющая частоту сброса в год для каждого лег. если Reset является NINSTоколо-2первый столбец представляет принимающую ветвь, в то время как второй столбец представляет платящую ветвь.
Типы данных: double
'ProjectionCurve' - Кривая ставок, используемая при формировании будущих форвардных ставокProjectionCurve не указан, то RateSpec используется как для дисконтирования денежных потоков, так и для прогнозирования будущих форвардных ставок (по умолчанию) | structureКривая скорости, используемая при генерации будущих прямых скоростей, указанная как пара, разделенная запятыми, состоящая из 'ProjectionCurve' и структура, созданная с помощью intenvset. Используйте этот дополнительный ввод, если прямая кривая отличается от кривой скидки.
Типы данных: struct
'Shift' - Сдвиг десятичных знаков для сдвинутой модели Black0 (без сдвига) (по умолчанию) | положительное десятичное числоСдвиг в десятичных разрядах для сдвинутой модели черного, заданной как разделенная запятыми пара, состоящая из 'Shift' и скаляр или NINSTоколо-1 вектор сдвигов скорости в положительных десятичных разрядах. Установите для этого параметра положительное смещение ставки в десятичных разрядах, чтобы добавить положительное смещение к ставке прямого свопа и страйка, что эффективно устанавливает отрицательную нижнюю границу для ставки прямого свопа и страйка. Например, Shift из 0.01 равно 1% сдвигу.
Типы данных: double
Price - Цены для свопционов в момент времени 0Цены для свопционов в момент времени 0, возвращенные как NINSTоколо-1 вектор цен.
Форвардный своп - это своп, который начинается в будущем.
Модель сдвинутого черного по существу такая же, как модель черного, за исключением того, что она моделирует движения (F + Shift) в качестве базового актива, а не F (который является форвардной ставкой свопа в случае свопционов).
Эта модель допускает отрицательные скорости с фиксированной отрицательной нижней границей, определяемой величиной сдвига; то есть нулевая нижняя граница модели Блэка была сдвинута.
σB22) T
Где F - прямое значение, а K - удар.
ds2=ds1−σsBTσsB =σShifted_Black
Где F + Shift - прямое значение, а K + Shift - страйк для сдвинутой версии.
blackvolbysabr | bondbyzero | capbyblk | cfbyzero | fixedbyzero | floatbyzero | floorbyblk | intenvset | swaptionbynormal
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.