Цена опции и чувствительность локальной моделью энергозависимости, с помощью конечных разностей
[
вычислите цену опции и чувствительность локальной моделью энергозависимости, с помощью метода Заводной-рукоятки-Nicolson.PriceSens
,PriceGrid
,AssetPrices
,Times
]
= optSensByLocalVolFD(Rate
,AssetPrice
,Settle
,ExerciseDates
,OptSpec
,Strike
,ImpliedVolData
)
[
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. PriceSens
,PriceGrid
,AssetPrices
,Times
]
= optSensByLocalVolFD(___,Name,Value
)
Задайте переменные опции.
AssetPrice = 590; Strike = 590; Rate = 0.06; DividendYield = 0.0262; Settle = '01-Jan-2018'; ExerciseDates = '01-Jan-2020';
Задайте данные о поверхности подразумеваемой волатильности.
Maturity = ["06-Mar-2018" "05-Jun-2018" "12-Sep-2018" "10-Dec-2018" "01-Jan-2019" ... "02-Jul-2019" "01-Jan-2020" "01-Jan-2021" "01-Jan-2022" "01-Jan-2023"]; Maturity = repmat(Maturity,10,1); Maturity = Maturity(:); ExercisePrice = AssetPrice.*[0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.30 1.40]; ExercisePrice = repmat(ExercisePrice,1,10)'; ImpliedVol = [... 0.190; 0.168; 0.133; 0.113; 0.102; 0.097; 0.120; 0.142; 0.169; 0.200; ... 0.177; 0.155; 0.138; 0.125; 0.109; 0.103; 0.100; 0.114; 0.130; 0.150; ... 0.172; 0.157; 0.144; 0.133; 0.118; 0.104; 0.100; 0.101; 0.108; 0.124; ... 0.171; 0.159; 0.149; 0.137; 0.127; 0.113; 0.106; 0.103; 0.100; 0.110; ... 0.171; 0.159; 0.150; 0.138; 0.128; 0.115; 0.107; 0.103; 0.099; 0.108; ... 0.169; 0.160; 0.151; 0.142; 0.133; 0.124; 0.119; 0.113; 0.107; 0.102; ... 0.169; 0.161; 0.153; 0.145; 0.137; 0.130; 0.126; 0.119; 0.115; 0.111; ... 0.168; 0.161; 0.155; 0.149; 0.143; 0.137; 0.133; 0.128; 0.124; 0.123; ... 0.168; 0.162; 0.157; 0.152; 0.148; 0.143; 0.139; 0.135; 0.130; 0.128; ... 0.168; 0.164; 0.159; 0.154; 0.151; 0.147; 0.144; 0.140; 0.136; 0.132]; ImpliedVolData = table(Maturity, ExercisePrice, ImpliedVol);
Вычислите европейскую цену колл-опциона и чувствительность.
OptSpec = 'Call'; [Delta,Gamma,Lambda,Theta,Price] = optSensByLocalVolFD(Rate, AssetPrice, ... Settle, ExerciseDates, OptSpec, Strike, ImpliedVolData, 'DividendYield',DividendYield, ... 'OutSpec',["Delta" "Gamma" "Lambda" "Theta" "Price"])
Delta = 0.5519
Gamma = 0.0091
Lambda = 4.9994
Theta = -20.9529
Price = 65.1319
Rate
— Постоянно составляемая безрисковая процентная ставкаПостоянно составляемая безрисковая процентная ставка, заданная числовым скаляром.
Типы данных: double
AssetPrice
— Текущая цена базового активаТекущая цена базового актива в виде числового скаляра.
Типы данных: double
Settle
— Расчетный деньРасчетный день в виде скалярного последовательного номера даты, вектора символов даты, объекта datetime или массива строк
Типы данных: double |
char
| datetime
| string
ExerciseDates
— Даты осуществления опцииДаты осуществления опции в виде последовательного номера даты, вектора символов даты, массива datetime или массива строк:
Для европейской опции существует только один ExerciseDates
значение и это являются датой окончания срока действия опции.
Для американской опции используйте 1
- 2
вектор из последовательных чисел даты, векторов символов даты, datetimes, или строк. Американская опция может быть осуществлена в любую дату между или включая пару дат. Если только один non-NaN
дата перечислена, опция может быть осуществлена между Settle
и одна перечисленная дата в ExerciseDates
.
Типы данных: double |
char
| cell
| datetime
| string
OptSpec
— Определение опции 'call'
или 'put'
| массив строк со значением "call"
или "put"
Определение опции в виде вектора символов или массива строк со значением 'call'
или 'put'
.
Типы данных: char |
string
Strike
— Значение цены исполнения опциона опцииЗначение цены исполнения опциона опции в виде неотрицательного скаляра.
Типы данных: double
ImpliedVolData
— Таблица дат погашения, забастовки или цен исполнения и соответствующей подразумеваемой волатильностиТаблица дат погашения, забастовки или цен исполнения и их соответствующей подразумеваемой волатильности в виде NVOL
- 3
таблица.
Типы данных: table
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
PriceSens = Price = optByLocalVolFD(Rate,AssetPrice,Settle, ExerciseDates,OptSpec,Strike,ImpliedVolData,'AssetGridSize',1000,'OutSpec',{'delta','gamma','vega','lambda','rho','theta','price'})
'Basis'
— Основание дневного количества
(значение по умолчанию) | числовые значения: 0
,1
, 2
, 3
, 4
, 6
, 7
, 8
, 9
, 10
, 11
, 12
, 13
Основание дневного количества в виде разделенной запятой пары, состоящей из 'Basis'
и скаляр с помощью одного из этих поддерживаемых значений:
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
'DividendYield'
— Постоянно составляемое выражение базового актива
(значение по умолчанию) | числовой скалярПостоянно составляемый базовый актив уступает в виде разделенной запятой пары, состоящей из 'DividendYield'
и числовой скаляр.
Примечание
Если вы вводите значение для DividendYield
, затем установите DividendAmounts
и ExDividendDates
= [ ]
или не вводите их. Если вы вводите значения для DividendAmounts
и ExDividendDates
, затем установите DividendYield
= 0 .
Типы данных: double
'DividendAmounts'
— Суммы денежного дивиденда[ ]
(значение по умолчанию) | векторДенежный дивиденд составляет в виде разделенной запятой пары, состоящей из 'DividendAmounts'
и NDIV
- 1
вектор.
Для каждой суммы дивиденда должен быть соответствующий ExDividendDates
дата. Если вы вводите значения для DividendAmounts
и ExDividendDates
, затем установите DividendYield
= 0 .
Примечание
Если вы вводите значение для DividendYield
, затем установите DividendAmounts
и ExDividendDates
= [ ]
или не вводите их.
Типы данных: double
'ExDividendDates'
— Без дивиденда даты[ ]
(значение по умолчанию) | последовательный номер даты | вектор символов даты | массив datetime | массив строкБез дивиденда даты в виде разделенной запятой пары, состоящей из 'ExDividendDates'
и NDIV
- 1
вектор.
Типы данных: double |
char
| string
| datetime
'AssetPriceMax'
— Максимальная цена за ценовой контур сеткиAssetPriceMax
значения вычисляются с помощью распределений актива в зрелости (значение по умолчанию) | положительная скалярная величинаМаксимальная цена за ценовой контур сетки в виде разделенной запятой пары, состоящей из 'AssetPriceMax'
и положительная скалярная величина.
Типы данных: double
'AssetGridSize'
— Размер сетки актива для сетки конечной разности
(значение по умолчанию) | положительная скалярная величинаРазмер сетки актива для сетки конечной разности в виде разделенной запятой пары, состоящей из 'AssetGridSize'
и положительная скалярная величина.
Типы данных: double
'TimeGridSize'
— Размер сетки времени для сетки конечной разности
(значение по умолчанию) | положительная скалярная величинаРазмер сетки времени для сетки конечной разности в виде разделенной запятой пары, состоящей из 'TimeGridSize'
и положительная скалярная величина.
Типы данных: double
'AmericanOpt'
— Тип опции
(Европейское) (значение по умолчанию) | скаляр со значениями [0,1]
Тип опции в виде разделенной запятой пары, состоящей из 'AmericanOpt'
и положительный целочисленный скаляр отмечает с помощью одного из этих значений:
0 — Европеец
1 — Американец
Типы данных: double
'InterpMethod'
— Метод интерполяции для оценки подразумеваемой волатильности появляется от ImpliedVolData
'linear'
(значение по умолчанию) | вектор символов со значениями 'linear'
, 'makima'
сплайн
, или 'tpaps'
| представьте в виде строки со значениями "linear"
, "makima"
сплайн
, или "tpaps"
Метод интерполяции для оценки подразумеваемой волатильности появляется от ImpliedVolData
В виде разделенной запятой пары, состоящей из 'InterpMethod'
и вектор символов или строка с одним из следующих значений:
'linear'
— Линейная интерполяция
'makima'
— Модифицированный Акима кубическая интерполяция Эрмита
'spline'
— Интерполяция кубическим сплайном
'tpaps'
— Тонкая пластина, сглаживающая интерполяцию сплайна
Примечание
'tpaps'
метод использует тонкую пластину, сглаживающую функциональность сплайна от Curve Fitting Toolbox™.
'makima'
и 'spline'
методы работают только на данные с координатной сеткой. Для данных, имеющий разброс используйте 'linear'
или 'tpaps'
методы.
Для получения дополнительной информации об или данных, имеющий разброс с координатной сеткой и деталях о методах интерполяции, смотрите и Рассеянные Выборочные данные С координатной сеткой и Интерполяцию Данных С координатной сеткой.
Типы данных: char |
string
'OutSpec'
— Задайте выходные параметры{'price'}
(значение по умолчанию) | массив ячеек из символьных векторов со значениями 'price'
\delta
\Gamma
, 'vega'
\lambda
\rho
, 'theta'
| массив строк со значениями "price"
\delta
\Gamma
, "vega"
\rho
, "theta"
Задайте выходные параметры в виде разделенной запятой пары, состоящей из 'OutSpec'
и NOUT
- 1
или 1
- NOUT
массив ячеек из символьных векторов с возможными значениями 'price'
\delta
\Gamma
, 'vega'
\lambda
\rho
, и 'theta'
.
Пример: OutSpec = {'delta','gamma','vega','lambda','rho','theta','price'}
Типы данных: cell
| string
PriceSens
— Цена опции и чувствительностьЦена опции и чувствительность, возвращенная как числовой скаляр. OutSpec
определяет типы и порядок выхода.
PriceGrid
— Сетка, содержащая цены, вычисленные методом конечной разностиСетка, содержащая цены, вычисленные методом конечной разности, возвращенным как сетка, которая двумерна с размером AssetGridSize
⨉ TimeGridSize
. Количество столбцов не должно быть равно TimeGridSize
, потому что ExerciseDates
и ExDividendDates
добавляются к сетке времени. PriceGrid(:, :, end)
содержит цену за t = 0
.
AssetPrices
— Цены активаЦены актива, соответствующего первой размерности PriceGrid
, возвращенный как вектор.
Times
\timesВремена соответствуя второму измерению PriceGrid
, возвращенный как вектор.
vanilla option является категорией опций, которая включает только самые стандартные компоненты.
Опция ванили имеет дату истечения срока и прямую цену исполнения опциона. Американские параметры стиля и европейские параметры стиля оба категоризированы как опции ванили.
Выплата для опции ванили следующие:
Для вызова:
Для помещенного:
где:
St является ценой базового актива во время t.
K является ценой исполнения опциона.
Для получения дополнительной информации см. Опцию Ванили.
Локальная модель энергозависимости обрабатывает энергозависимость как функцию оба из уровня оборотного актива и времени.
Локальная энергозависимость может быть оценена при помощи формулы [2] Dupire:
[1] Андерсен, L. B. и Р. Бразэтон-Рэтклифф. "Улыбка Энергозависимости Опции Акции: Неявный Подход Конечной разности". Журнал Вычислительных Финансов. Издание 1, Номер 2, 1997, стр 5–37.
[2] Dupire, B. "Оценивая с Улыбкой". Риск. Издание 7, Номер 1, 1994, стр 18–20.
optByBatesFD
| optByHestonFD
| optByLocalVolFD
| optByMertonFD
| optSensByBatesFD
| optSensByHestonFD
| optSensByMertonFD
| optstockbyfd
| optstocksensbyfd
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.