Цена опции и чувствительность локальной моделью энергозависимости, с помощью конечных разностей
[PriceSens,PriceGrid,AssetPrices,Times]
= optSensByLocalVolFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,ImpliedVolData)[PriceSens,PriceGrid,AssetPrices,Times]
= optSensByLocalVolFD(___,Name,Value)[ вычислите цену опции и чувствительность локальной моделью энергозависимости, с помощью метода Заводной-рукоятки-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.5462
Gamma = 0.0082
Lambda = 4.9173
Theta = -20.8350
Price = 65.5302
Rate — Постоянно составляемая безрисковая процентная ставкаПостоянно составляемая безрисковая процентная ставка, заданная числовым скаляром.
Типы данных: double
AssetPrice — Текущая цена базового активаТекущая цена базового актива, заданная как числовой скаляр.
Типы данных: double
Settle — Расчетный деньРасчетный день, заданный как скалярный последовательный номер даты, вектор символов даты, объект datetime или массив строк
Типы данных: double | char | datetime | string
ExerciseDates — Даты осуществления опцииДаты осуществления опции, заданные как последовательный номер даты, вектор символов даты, массив datetime или массив строк:
Для европейской опции существует только одно значение ExerciseDates, и это - дата окончания срока действия опции.
Для американской опции используйте 1-by-2 вектор последовательных чисел даты, векторов символов даты, datetimes, или строк. Американская опция может быть осуществлена в любую дату между или включая пару дат. Если только одна non-NaN дата перечислена, опция может быть осуществлена между Settle и одной перечисленной датой в ExerciseDates.
Типы данных: double | char | cell | datetime | string
OptSpec — Определение опции 'call' или 'put' | массив строк со значением "call" или "put"Определение опции, заданной как вектор символов или массив строк со значением 'call' или 'put'.
Типы данных: char | string
Strike — Значение цены исполнения опциона опцииЗначение цены исполнения опциона опции, заданное как неотрицательный скаляр.
Типы данных: double
ImpliedVolData — Таблица дат погашения, забастовки или цен исполнения и соответствующей подразумеваемой волатильностиТаблица дат погашения, забастовки или цен исполнения и их соответствующей подразумеваемой волатильности, заданной как NVOL-by-3 таблица.
Типы данных: table
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 (значение по умолчанию) | числовые значения: 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' — Постоянно составляемая доходность базовых активов0
(значение по умолчанию) | числовой скалярПостоянно составляемая доходность базовых активов, заданная как пара, разделенная запятой, состоящая из 'DividendYield' и числового скаляра.
Если вы вводите значение для DividendYield, то установленный DividendAmounts и ExDividendDates = [ ] или не вводят их. Если вы вводите значения для DividendAmounts и ExDividendDates, то установленный DividendYield = 0.
Типы данных: double
'DividendAmounts' — Суммы денежного дивиденда[ ]
(значение по умолчанию) | векторСуммы денежного дивиденда, заданные как пара, разделенная запятой, состоящая из 'DividendAmounts' и NDIV-by-1 вектор.
Для каждой суммы дивиденда должна быть соответствующая дата ExDividendDates. Если вы вводите значения для DividendAmounts и ExDividendDates, то установленный DividendYield = 0.
Если вы вводите значение для DividendYield, то установленный DividendAmounts и ExDividendDates = [ ] или не вводят их.
Типы данных: double
'ExDividendDates' — Без дивиденда даты[ ]
(значение по умолчанию) | последовательный номер даты | вектор символов даты | массив datetime | массив строкБез дивиденда даты, заданные как пара, разделенная запятой, состоящая из 'ExDividendDates' и NDIV-by-1 вектор.
Типы данных: double | char | string | datetime
'AssetPriceMax' — Максимальная цена за ценовой контур сеткиAssetPriceMax вычисляются с помощью дистрибутивов актива в зрелости (значение по умолчанию) | положительная скалярная величинаМаксимальная цена за ценовой контур сетки, заданный как пара, разделенная запятой, состоящая из 'AssetPriceMax' и положительной скалярной величины.
Типы данных: double
'AssetGridSize' — Размер сетки актива для сетки конечной разности400
(значение по умолчанию) | положительная скалярная величинаРазмер сетки актива для сетки конечной разности, заданной как пара, разделенная запятой, состоящая из 'AssetGridSize' и положительной скалярной величины.
Типы данных: double
'TimeGridSize' — Размер сетки времени для сетки конечной разности100
(значение по умолчанию) | положительная скалярная величинаРазмер сетки времени для сетки конечной разности, заданной как пара, разделенная запятой, состоящая из 'TimeGridSize' и положительной скалярной величины.
Типы данных: double
'AmericanOpt' — Тип опции0 (европейское) (значение по умолчанию) | скаляр со значениями [0,1]Тип опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt' и положительного целочисленного скаляра, отмечает с помощью одного из этих значений:
0 — Европеец
1 — Американец
Типы данных: double
'InterpMethod' — Метод интерполяции для оценки подразумеваемой волатильности появляется от ImpliedVolData'linear'
(значение по умолчанию) | вектор символов со значениями 'linear', 'makima', 'spline' или 'tpaps' | представляет в виде строки со значениями "linear", "makima", "spline" или "tpaps"Метод интерполяции для оценки подразумеваемой волатильности появляется от ImpliedVolData, заданного как пара, разделенная запятой, состоящая из 'InterpMethod' и вектора символов или строки с одним из следующих значений:
'linear' — Линейная интерполяция
'makima' — Измененный Акима кубическая интерполяция Эрмита
сплайн Интерполяция кубическим сплайном
'tpaps' — Тонкая пластина, сглаживающая интерполяцию сплайна
Метод 'tpaps' использует тонкую пластину, сглаживающую функциональность сплайна от Curve Fitting Toolbox™.
'makima' и методы 'spline' работают только на данные с координатной сеткой. Для данных, имеющий разброс используйте методы 'tpaps' или 'linear'.
Для получения дополнительной информации об или данных, имеющий разброс с координатной сеткой и деталях о методах интерполяции, смотрите и Рассеянные Выборочные данные С координатной сеткой (MATLAB) и Интерполяция Данных С координатной сеткой (MATLAB).
Типы данных: char | string
'OutSpec' — Define выходные параметры{'price'}
(значение по умолчанию) | массив ячеек из символьных векторов со значениями 'price', 'delta', 'gamma', 'vega', 'lambda', 'rho', 'theta' | массив строк со значениями "price", "delta", "gamma", "vega", "rho", "theta"Задайте выходные параметры, заданные как пара, разделенная запятой, состоящая из 'OutSpec' и NOUT - 1 или 1-by-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, возвращенного как вектор.
Локальная модель энергозависимости обрабатывает энергозависимость как функцию оба из уровня оборотного актива и времени.
Локальная энергозависимость может быть оценена при помощи формулы [2] Dupire:
[1] Андерсен, L. B. и Р. Бразэтон-Рэтклифф. "Улыбка Энергозависимости Опции Акции: Неявный Подход Конечной разности". Журнал Вычислительных Финансов. Издание 1, Номер 2, 1997, стр 5–37.
[2] Dupire, B. "Оценивая с Улыбкой". Риск. Издание 7, Номер 1, 1994, стр 18–20.
optByBatesFD | optByHestonFD | optByLocalVolFD | optByMertonFD | optBySensMertonFD | optSensByBatesFD | optSensByHestonFD | optstockbyfd | optstocksensbyfd
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.