Расчет цены и чувствительности для европейских или американских вариантов корзины с использованием моделирования Монте-Карло
[ вычисляет цену и чувствительность для европейских или американских вариантов корзины с использованием модели Лонгстафа-Шварца. PriceSens,Paths,Times,Z] = basketsensbyls(RateSpec,BasketStockSpec,OptSpec,Strike,Settle,ExerciseDates)
Для американских вариантов используется метод наименьших квадратов Лонгстаффа-Шварца для расчета ранней надбавки за упражнения.
Найдите европейский вариант корзины из двух акций. Корзина содержит 50% каждого запаса. Акции в настоящее время торгуются на уровне 90 и 75 долларов, с годовой волатильностью 15%. Предположим, что корреляция между активами равна нулю. 1 мая 2009 года инвестор хочет купить однолетний пут-опцион с ценой страйка $80. Текущий годовой, непрерывно увеличивающийся процент составляет 5%. Эти данные используются для вычисления цены и дельты опции пут-корзины с помощью модели аппроксимации Лонгстафа-Шварца.
Settle = 'May-1-2009'; Maturity = 'May-1-2010'; % Define RateSpec Rate = 0.05; Compounding = -1; RateSpec = intenvset('ValuationDate', Settle, 'StartDates',... Settle, 'EndDates', Maturity, 'Rates', Rate, 'Compounding', Compounding); % Define the Correlation matrix. Correlation matrices are symmetric, % and have ones along the main diagonal. NumInst = 2; InstIdx = ones(NumInst,1); Corr = diag(ones(NumInst,1), 0); % Define BasketStockSpec AssetPrice = [90; 75]; Volatility = 0.15; Quantity = [0.50; 0.50]; BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr); % Compute the price of the put basket option. Calculate also the delta % of the first stock. OptSpec = {'put'}; Strike = 80; OutSpec = {'Price','Delta'}; UndIdx = 1; % First element in the basket [PriceSens, Delta] = basketsensbyls(RateSpec, BasketStockSpec, OptSpec,... Strike, Settle, Maturity,'OutSpec', OutSpec,'UndIdx', UndIdx)
PriceSens = 0.9822
Delta = -0.0995
Вычислите Price и Delta корзины с корреляцией -20%:
NewCorr = [1 -0.20; -0.20 1]; % Define the new BasketStockSpec. BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, NewCorr); % Compute the price and delta of the put basket option. [PriceSens, Delta] = basketsensbyls(RateSpec, BasketStockSpec, OptSpec,... Strike, Settle, Maturity,'OutSpec', OutSpec,'UndIdx', UndIdx)
PriceSens = 0.7814
Delta = -0.0961
BasketStockSpec — BasketStock спецификацияBasketStock спецификация, указанная с помощью basketstockspec.
Типы данных: struct
OptSpec - Определение опциона 'call' или 'put' | массив ячеек символьных векторов со значениями 'call' или 'put'Определение опции как 'call' или 'put', указанный как символьный вектор или 2около-1 клеточный массив символьных векторов.
Типы данных: char | cell
Strike - Цена страйка опционаЦена страйка опциона, указанная как одно из следующих значений:
Для европейского или бермудского варианта: Strike - скаляр (европейский) или 1около-NSTRIKES (Бермудские острова) вектор цен забастовки.
Для американского варианта, Strike - скалярный вектор цены страйка.
Типы данных: double
Settle - Дата расчета или торговлиДата расчета или торговая дата для опции корзины, указанная как скалярный серийный номер даты или вектор символов даты.
Типы данных: double | char
ExerciseDates - Даты опционных упражненийДаты исполнения опциона, указанные как порядковый номер даты или символьный вектор даты:
Для европейского или бермудского варианта: ExerciseDates является 1около-1 (европейский) или 1около-NSTRIKES (Бермудские острова) вектор дат учений. Для европейского варианта есть только один ExerciseDate на дату истечения срока действия опциона.
Для американского варианта, ExerciseDates является 1около-2 вектор границ даты упражнения. Опция выполняется на любую дату между или включая пару дат в этой строке. При наличии только одного не-NaN дата, или если ExerciseDates является 1около-1, опционные упражнения между Settle дата и один из перечисленных ExerciseDate.
Типы данных: double | char | cell
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
PriceSens = basketsensbyls(RateSpec,BasketStockSpec,OptSpec, Strike,Settle,Maturity,'AmericanOpt',AmericanOpt,'NumTrials',NumTrial,'OutSpec','delta')'AmericanOpt' - Тип опции0 (Европейский/Бермудские острова) (по умолчанию) | значения [0,1]Тип опции, указанный как разделенная запятыми пара, состоящая из 'AnericanOpt' и NINSTоколо-1 положительные целочисленные скалярные флаги со значениями:
0 - Европейский/Бермудские острова
1 - американский
Примечание
Для американских вариантов используется метод наименьших квадратов Лонгстаффа-Шварца для расчета ранней надбавки за упражнения. Для получения дополнительной информации о методе наименьших квадратов см. https://people.math.ethz.ch / % 7Ehjfurrer/teaching/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.
Типы данных: double
'NumPeriods' - Количество периодов моделирования на пробную версию100 (по умолчанию) | неотрицательное целое числоКоличество периодов моделирования на пробу, указанное как пара, разделенная запятыми, состоящая из 'NumPeriods' и скалярное неотрицательное целое число.
Примечание
NumPeriods рассматривается только при ценообразовании европейских опционов на корзину. Для американских и бермудских вариантов корзины, NumPeriod равняется количеству дней упражнений в течение срока действия опциона.
Типы данных: double
'NumTrials' - Количество независимых путей выборки (имитационные испытания)1000 (по умолчанию) | неотрицательное целое числоКоличество независимых путей выборки (испытания моделирования), указанных как пара, разделенная запятыми, состоящая из 'NumTrials' и скалярное неотрицательное целое число.
Типы данных: double
'Z' - Массив временных рядов зависимых случайных вариацийМассив временных рядов зависимых случайных вариаций, указанный как пара, разделенная запятыми, состоящая из 'Z' и NumPeriodsоколо-NINSTоколо-NumTrials 3-D массив временных рядов. Z значение генерирует броуновский вектор движения (то есть процессы Винера), который управляет моделированием.
Типы данных: double
'Antithetic' - Индикатор антитетического отбора пробfalse
(по умолчанию) | скалярный логический флаг со значением true или falseИндикатор для антитетической выборки, указанный как пара, разделенная запятыми, состоящая из 'Antithetic' и значение true или false.
Типы данных: logical
'OutSpec' - Определение выходных данных{'Price'}
(по умолчанию) | символьный вектор со значениями 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', и 'All' | массив ячеек символьных векторов со значениями 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', и 'All'Определите выходы, указанные как разделенная запятыми пара, состоящая из 'OutSpec' и NOUTоколо-1 или 1около-NOUT массив ячеек символьных векторов с возможными значениями 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', и 'All'.
OutSpec = {'All'} указывает, что выходные данные Delta, Gamma, Vega, Lambda, Rho, Theta, и Price, в таком порядке. Это то же самое, что указать OutSpec для включения каждой чувствительности.
Пример: OutSpec = {'delta','gamma','vega','lambda','rho','theta','price'}
Типы данных: char | cell
'UndIdx' - Индекс базового инструмента для вычисления чувствительности[]
(по умолчанию) | скалярный числовойИндекс базового инструмента для вычисления чувствительности, указанный как пара, разделенная запятыми, состоящая из 'UndIdx' и скалярный числовой.
Типы данных: double
PriceSens - Ожидаемые цены или чувствительность для варианта корзиныОжидаемые цены или чувствительность (определяются с помощью OutSpec) для опции корзины, возвращенной как NINSTоколо-1 матрица.
Paths - Смоделированные пути коррелированных переменных состоянияМоделируемые пути коррелированных переменных состояния, возвращаемые как NumPeriods + 1около-1около-NumTrials 3-D массива временных рядов моделируемых путей коррелированных переменных состояния. Каждая строка Paths является транспонированием вектора состояния X (t) в момент времени t для данного испытания.
Times - Время наблюдения, связанное с моделируемыми путямиВремя наблюдения, связанное с моделируемыми путями, возвращаемое как NumPeriods + 1около-1 вектор столбца времен наблюдения, связанных с моделируемыми путями. Каждый элемент Times связан с соответствующей строкой Paths.
Z - Массив временных рядов зависимых случайных вариацийМассив временных рядов зависимых случайных вариаций, возвращаемый как NumPeriodsоколо-1около-NumTrials 3-D массив при Z указан в качестве входного аргумента. Если Z входной аргумент не указан, то Z выходной аргумент содержит случайные вариации, сгенерированные внутри.
Опцион на корзины - это опцион на портфель из нескольких базовых акционерных активов.
Выплата опциона корзины зависит от совокупной эффективности инкассации отдельных активов. Вариант корзины, как правило, дешевле, чем соответствующий портфель простых вариантов ванили по следующим причинам:
Если компоненты корзины коррелируют отрицательно, движения в значении одного компонента нейтрализуют противоположные движения другого компонента. Если все компоненты не коррелируют идеально, опцион на корзину дешевле, чем серия отдельных опционов на каждое из активов в корзине.
Вариант корзины минимизирует транзакционные издержки, поскольку инвестор должен приобрести только один вариант вместо нескольких отдельных вариантов.
Дополнительные сведения см. в разделе Параметры корзины.
[1] Лонгстафф, Ф.А. и Э.С. Шварц. «Оценка американских вариантов путем моделирования: простой подход методом наименьших квадратов». Обзор финансовых исследований. Том 14, № 1, весна 2001, стр. 113-147.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.