Ценовой европеец или американские опции корзины с помощью симуляций Монте-Карло
[
ценовые опции корзины с помощью модели Лонгштафф-Шварца.Price
,Paths
,Times
,Z
] = basketbyls(RateSpec
,BasketStockSpec
,OptSpec
,Strike
,Settle
,ExerciseDates
)
Для американских опций метод наименьших квадратов Лонгштафф-Шварца используется, чтобы вычислить раннюю премию осуществления.
Найдите американскую опцию корзины вызова трех запасов. Запасы в настоящее время стоят на уровне 35$, 40$ и 45$ с ежегодными колебаниями 12%, 15% и 18%, соответственно. Корзина содержит 33,33% каждого запаса. Примите, что корреляция между всей парой активов составляет 50%. 1 мая 2009 инвестор хочет купить трехлетний колл-опцион с ценой исполнения опциона 42$. Текущая пересчитываемая на год постоянно составляемая процентная ставка составляет 5%. Используйте эти данные, чтобы вычислить цену опции корзины вызова с помощью модели Лонгштафф-Шварца.
Settle = 'May-1-2009'; Maturity = 'May-1-2012'; % 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. Corr = [1 0.50 0.50; 0.50 1 0.50;0.50 0.50 1]; % Define BasketStockSpec AssetPrice = [35;40;45]; Volatility = [0.12;0.15;0.18]; Quantity = [0.333;0.333;0.333]; BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr); % Compute the price of the call basket option OptSpec = {'call'}; Strike = 42; AmericanOpt = 1; % American option Price = basketbyls(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity,... 'AmericanOpt',AmericanOpt)
Price = 5.4687
Увеличьте число испытаний симуляции к 2 000, чтобы дать следующие результаты:
NumTrial = 2000; Price = basketbyls(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity,... 'AmericanOpt',AmericanOpt,'NumTrials',NumTrial)
Price = 5.5501
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
вектор контуров даты осуществления. Опция тренируется в любую дату между, или включая, пара дат на той строке. Если существует только один non-NaN
дата, или если ExerciseDates
1
- 1
, опция тренируется между Settle
дата и один перечисленный ExerciseDate
.
Типы данных: double |
char
| cell
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
Price = basketbyls(RateSpec,BasketStockSpec,OptSpec, Strike,Settle,Maturity,'AmericanOpt',AmericanOpt,'NumTrials',NumTrial)
'AmericanOpt'
— Тип опции
(Европеец/Бермуды) (значение по умолчанию) | значения [0,1]
Тип опции, заданный как разделенная запятой пара, состоящая из 'AnericanOpt'
и NINST
- 1
положительный целочисленный скаляр отмечает с помощью значений:
0 — Европеец/Бермуды
1 — Американец
Для американских опций метод наименьших квадратов Лонгштафф-Шварца используется, чтобы вычислить раннюю премию осуществления. Для получения дополнительной информации о методе наименьших квадратов см. https://people.math.ethz.ch / % 7Ehjfurrer/teaching/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.
Типы данных: double
'NumPeriods'
— Количество периодов симуляции на испытание
(значение по умолчанию) | неотрицательное целое числоКоличество периодов симуляции на испытание, заданное как разделенная запятой пара, состоящая из 'NumPeriods'
и скалярное неотрицательное целое число.
NumPeriods
рассматривается только при оценке европейских опций корзины. Для американца и опций корзины Бермуд, NumPeriod
равняется номеру дней осуществления во время жизни опции.
Типы данных: double
'NumTrials'
— Количество независимых демонстрационных путей (испытания симуляции)
(значение по умолчанию) | неотрицательное целое числоКоличество независимых демонстрационных путей (испытания симуляции), заданный как разделенная запятой пара, состоящая из 'NumTrials'
и скалярное неотрицательное целое число.
Типы данных: double
'Z'
— Массив временных рядов зависимых случайных варьируемых величинМассив временных рядов зависимых случайных варьируемых величин, заданных как разделенная запятой пара, состоящая из 'Z'
и NumPeriods
- NINST
- NumTrials
3-D массив временных рядов. Z
значение генерирует вектор Броуновского движения (то есть, Винеровские процессы), который управляет симуляцией.
Типы данных: double
'Antithetic'
— Индикатор для прямо противоположной выборкиfalse
(значение по умолчанию) | скалярный логический флаг со значением true
или false
Индикатор для прямо противоположной выборки, заданной как разделенная запятой пара, состоящая из 'Antithetic'
и значение true
или false
.
Типы данных: логический
Price
— Ожидаемые цены за опцию корзиныОжидаемые цены за опцию корзины, возвращенную как NINST
- 1
матрица.
Paths
— Симулированные пути коррелированых переменных состоянияСимулированные пути коррелированых переменных состояния, возвращенных как NumPeriods + 1
- 1
- NumTrials
3-D массив временных рядов симулированных путей коррелированых переменных состояния. Каждая строка Paths
транспонирование вектора состояния X (t) во время t для данного испытания.
Times
— Времена наблюдения сопоставлены с симулированными путямиВремена наблюдения сопоставлены с симулированными путями, возвращенными как NumPeriods + 1
- 1
вектор-столбец времен наблюдения сопоставлен с симулированными путями. Каждый элемент Times
сопоставлен с соответствующей строкой Paths
.
Z
— Массив временных рядов зависимых случайных варьируемых величинМассив временных рядов зависимых случайных варьируемых величин, возвращенных как NumPeriods
- 1
- NumTrials
Трехмерный массив, когда Z
задан как входной параметр. Если Z
входной параметр не задан, затем Z
выходной аргумент содержит случайные варьируемые величины, сгенерированные внутренне.
basket option является опцией на портфеле нескольких базовых активов акции.
Выплата для опции корзины зависит от совокупной производительности набора отдельных активов. Опция корзины имеет тенденцию быть более дешевой, чем соответствующий портфель простых опций ванили по этим причинам:
Если компоненты корзины коррелируют негативно, перемещения в значении одного компонента нейтрализуют противоположные перемещения другого компонента. Если все компоненты не коррелируют отлично, опция корзины является более дешевой, чем ряд отдельных опций на каждом из активов в корзине.
Опция корзины минимизирует операционные издержки, потому что инвестор должен купить только одну опцию вместо нескольких отдельных опций.
Для получения дополнительной информации см. Опцию Корзины.
[1] Longstaff, F.A., и Э.С. Шварц. “Оценивая американские Опции Симуляцией: Простой Подход Наименьших квадратов”. Анализ Финансовых Исследований. Издание 14, № 1, Spring 2001, стр 113–147.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.