Цена swaptions использование Normal или модели ценообразования опционов Bachelier
Price = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDates,Maturity,Volatility)
Price = swaptionbynormal(___,Name,Value)
цены swaptions использование модели ценообразования опционов Normal или Bachelier.Price
= swaptionbynormal(RateSpec
,OptSpec
,Strike
,Settle
,ExerciseDates
,Maturity
,Volatility
)
добавляют дополнительные аргументы пары "имя-значение". Price
= swaptionbynormal(___,Name,Value
)
Задайте кривую нулевой ширины и создайте RateSpec
.
Settle = datenum('20-Jan-2016'); ZeroTimes = [.5 1 2 3 4 5 7 10 20 30]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = datemnth(Settle,12*ZeroTimes); RateSpec = intenvset('StartDate',Settle,'EndDates',ZeroDates,'Rates',ZeroRates)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 2
Disc: [10x1 double]
Rates: [10x1 double]
EndTimes: [10x1 double]
StartTimes: [10x1 double]
EndDates: [10x1 double]
StartDates: 736349
ValuationDate: 736349
Basis: 0
EndMonthRule: 1
Задайте swaption.
ExerciseDate = datenum('20-Jan-2021'); Maturity = datenum('20-Jan-2026'); OptSpec = 'call'; LegReset = [1 1];
Вычислите уровень подкачки паритета.
[~,ParSwapRate] = swapbyzero(RateSpec,[NaN 0],Settle,Maturity,'LegReset',LegReset)
ParSwapRate = 0.0216
Strike = ParSwapRate; BlackVol = .3; NormalVol = BlackVol*ParSwapRate;
Цена с Черной энергозависимостью.
Price = swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,BlackVol)
Price = 5.9756
Цена с Нормальной энергозависимостью.
Price_Normal = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol)
Price_Normal = 5.5537
Создайте 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.
ExerciseDate = datenum('20-Jan-2021'); Maturity = datenum('20-Jan-2026'); Settle = 'Jan-1-2010'; OptSpec = 'call'; Strike = .09; NormalVol = .03; Reset = [1 4]; % 1st column represents receiving leg, 2nd column represents paying leg Basis = [1 7]; % 1st column represents receiving leg, 2nd column represents paying leg
Цена с Нормальной энергозависимостью.
Price_Normal = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol,'Reset',Reset,'Basis',Basis)
Price_Normal = 5.9084
swaptionbynormal
и сравните с swaptionbyblk
Задайте RateSpec
.
Settle = datenum('20-Jan-2016'); ZeroTimes = [.5 1 2 3 4 5 7 10 20 30]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = datemnth(Settle,12*ZeroTimes); RateSpec = intenvset('StartDate',Settle,'EndDates',ZeroDates,'Rates',ZeroRates)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 2
Disc: [10x1 double]
Rates: [10x1 double]
EndTimes: [10x1 double]
StartTimes: [10x1 double]
EndDates: [10x1 double]
StartDates: 736349
ValuationDate: 736349
Basis: 0
EndMonthRule: 1
Задайте swaption инструмент и цену с swaptionbyblk
.
ExerciseDate = datenum('20-Jan-2021'); Maturity = datenum('20-Jan-2026'); OptSpec = 'call'; [~,ParSwapRate] = swapbyzero(RateSpec,[NaN 0],Settle,Maturity,'StartDate',ExerciseDate)
ParSwapRate = 0.0326
Strike = ParSwapRate; BlackVol = .3; NormalVol = BlackVol*ParSwapRate; Price = swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,BlackVol)
Price = 3.6908
Оцените swaption инструмент с помощью swaptionbynormal
.
Price_Normal = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol)
Price_Normal = 3.7602
Оцените swaption инструмент с помощью swaptionbynormal
для отрицательной забастовки.
Price_Normal = swaptionbynormal(RateSpec,OptSpec,-.005,Settle,ExerciseDate,Maturity,NormalVol)
Price_Normal = 16.3674
RateSpec
— Структура термина процентной ставкиСтруктура термина процентной ставки (пересчитанный на год и постоянно составляемый), заданный RateSpec
получена из intenvset
. Для получения информации о спецификации процентной ставки смотрите intenvset
.
Если дисконтная кривая для участка оплаты отличается, чем участок получения, RateSpec
может быть NINST
-by-2
входная переменная RateSpec
s со вторым входом, являющимся дисконтной кривой для участка оплаты. Если только одна кривая задана, то она используется, чтобы обесценить оба участка.
Типы данных: struct
OptSpec
— Определение опции 'call'
или 'put'
| массив ячеек вектора символов со значениями 'call'
или 'put'
Определение опции как 'call'
или 'put'
, заданный как NINST
-by-1
массив ячеек из символьных векторов.
'call'
swaption или Payer swaption, позволяет покупателю опции вводить в процентную ставку, загружают, который покупатель опции платит фиксированной процентной ставке и получает плавающий курс.
'put'
swaption или Receiver swaption, позволяет покупателю опции вводить в процентную ставку, загружают, который покупатель опции получает фиксированную процентную ставку и платит плавающему курсу.
Типы данных: char | cell
Strike
— Ударьте значения уровня подкачкиУдарьте значения уровня подкачки, заданные как NINST
-by-1
вектор десятичных значений.
Типы данных: double
Settle
— Расчетный деньРасчетный день (представляющий уладить дату каждого swaption), заданный как NINST
-by-1
вектор последовательных чисел даты или массив ячеек векторов символов даты, объектов datetime или объектов строки. Settle
не должен быть позже, чем ExerciseDates
.
Вход даты Settle
для swaptionbynormal
является датой оценки, в которую оценен swaption (опция, чтобы ввести в подкачку). swaption покупатель платит эту цену на эту дату, чтобы содержать swaption.
Типы данных: double
| char
| cell
| datetime
| string
ExerciseDates
— Даты, в которые swaption истекает и базовая подкачка, запускаютсяДаты, в которые swaption истекает и базовая подкачка, запускаются, заданный как NINST
-by-1
вектор последовательных чисел даты или массив ячеек векторов символов даты, объектов datetime или объектов строки. На дате окончания срока действия опции существует только один ExerciseDate
. Это - также StartDate
базовой прямой подкачки.
Типы данных: double
| char
| cell
| datetime
| string
Maturity
— Дата погашения для каждой прямой подкачкиДата погашения для каждой прямой подкачки, заданной как NINST
-by-1
вектор дат с помощью последовательных чисел даты, массива ячеек векторов символов даты, объектов datetime или объектов строки.
Типы данных: double
| char
| cell
| datetime
| string
Volatility
— Значения колебанийЗначения колебаний (для нормальной энергозависимости), заданный как NINST
-by-1
вектор числовых значений.
Для получения дополнительной информации о модели Normal смотрите работу с Отрицательными процентными ставками.
Типы данных: double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
Price = swaptionbynormal(OISCurve,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol,'Reset',4)
сброс
Сбросьте частоту в год для лежания в основе прямой подкачки1
(значение по умолчанию) | числовойСбросьте частоту в год для базовой прямой подкачки, заданной как пара, разделенная запятой, состоящая из 'Reset'
и NINST
-by-1
вектор или NINST
-by-2
матрица, представляющая частоту сброса в год для каждого участка. Если Reset
является 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
'ProjectionCurve'
— Кривая уровня используется в проектировании будущих потоков наличностиProjectionCurve
не задан, то RateSpec
используется и для дисконтирования потоков наличности и для проектирования будущих потоков наличности (значение по умолчанию) | структураКривая уровня, которая будет использоваться в проектировании будущих потоков наличности, заданных как пара, разделенная запятой, состоящая из 'ProjectionCurve'
и структуры кривой уровня. Эта структура должна быть создана с помощью intenvset
. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.
Типы данных: struct
Price
— Цены на swaptions во время 0Цены на swaptions во время 0, возвращенный как NINST
-by-1
вектор цен.
Call swaption или Плательщик swaption позволяют покупателю опции вводить в процентный своп, в котором покупатель опции платит фиксированную процентную ставку и получает плавающий курс.
Put swaption или Получатель swaption позволяют покупателю опции вводить в процентный своп, в котором покупатель опции получает фиксированную процентную ставку и платит плавающий курс.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.