basketsensbyls

Вычислите цену и чувствительность для европейских или американских опций корзины с помощью симуляций Монте-Карло

Описание

пример

[PriceSens,Paths,Times,Z] = basketsensbyls(RateSpec,BasketStockSpec,OptSpec,Strike,Settle,ExerciseDates) вычисляет цену и чувствительность для европейских или американских опций корзины с помощью модели Лонгштафф-Шварца.

Для американских опций метод наименьших квадратов Лонгштафф-Шварца используется, чтобы вычислить раннюю премию осуществления.

пример

[PriceSens,Paths,Times,Z] = basketsensbyls(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Найдите европейскую помещенную опцию корзины двух запасов. Корзина содержит 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

Входные параметры

свернуть все

Структура термина процентной ставки (пересчитанный на год и постоянно составляемый), заданный RateSpec полученный из intenvset. Для получения информации о спецификации процентной ставки смотрите intenvset.

Типы данных: struct

BasketStock спецификация, заданное использование basketstockspec.

Типы данных: struct

Определение опции как 'call' или 'put'В виде вектора символов или 2- 1 массив ячеек из символьных векторов.

Типы данных: char | cell

Значение цены исполнения опциона опции в виде одного из следующего:

  • Для европейца или опции Бермуд, Strike скаляр (европеец) или 1- NSTRIKES (Бермуды) вектор из цен исполнения опциона.

  • Для американской опции, Strike скалярный вектор из цены исполнения опциона.

Типы данных: double

Урегулирование или торговая дата опции корзины в виде скалярного последовательного номера даты или вектора символов даты.

Типы данных: double | char

Даты осуществления опции в виде последовательного номера даты или вектора символов даты:

  • Для европейца или опции Бермуд, ExerciseDates 1- 1 (Европеец) или 1- NSTRIKES (Бермуды) вектор из дат осуществления. Для европейской опции существует только один ExerciseDate на дате окончания срока действия опции.

  • Для американской опции, ExerciseDates 1- 2 вектор из контуров даты осуществления. Опция тренируется в любую дату между, или включая, пара дат на той строке. Если существует только один non-NaN дата, или если ExerciseDates 1- 1, опция тренируется между Settle дата и один перечисленный ExerciseDate.

Типы данных: double | char | cell

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: PriceSens = basketsensbyls(RateSpec,BasketStockSpec,OptSpec, Strike,Settle,Maturity,'AmericanOpt',AmericanOpt,'NumTrials',NumTrial,'OutSpec','delta')

Тип опции в виде разделенной запятой пары, состоящей из 'AnericanOpt' и NINST- 1 положительный целочисленный скаляр отмечает с помощью значений:

  • 0 — Европеец/Бермуды

  • 1 — Американец

Примечание

Для американских опций метод наименьших квадратов Лонгштафф-Шварца используется, чтобы вычислить раннюю премию осуществления. Для получения дополнительной информации о методе наименьших квадратов см. https://people.math.ethz.ch / % 7Ehjfurrer/teaching/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.

Типы данных: double

Количество периодов симуляции на испытание в виде разделенной запятой пары, состоящей из 'NumPeriods' и скалярное неотрицательное целое число.

Примечание

NumPeriods рассматривается только при оценке европейских опций корзины. Для американца и опций корзины Бермуд, NumPeriod равняется номеру дней осуществления во время жизни опции.

Типы данных: double

Количество независимых демонстрационных путей (испытания симуляции) в виде разделенной запятой пары, состоящей из 'NumTrials' и скалярное неотрицательное целое число.

Типы данных: double

Массив временных рядов зависимых случайных варьируемых величин в виде разделенной запятой пары, состоящей из 'Z' и NumPeriods- NINST- NumTrials 3-D массив временных рядов. Z значение генерирует вектор Броуновского движения (то есть, Винеровские процессы), который управляет симуляцией.

Типы данных: double

Индикатор для прямо противоположной выборки в виде разделенной запятой пары, состоящей из 'Antithetic' и значение true или false.

Типы данных: логический

Задайте выходные параметры в виде разделенной запятой пары, состоящей из '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' и числовой скаляр.

Типы данных: double

Выходные аргументы

свернуть все

Ожидаемые цены или чувствительность (заданное использование OutSpec) для опции корзины, возвращенной как NINST- 1 матрица.

Симулированные пути коррелированых переменных состояния, возвращенных как NumPeriods + 1- 1- NumTrials 3-D массив временных рядов симулированных путей коррелированых переменных состояния. Каждая строка Paths транспонирование вектора состояния X (t) во время t для данного испытания.

Времена наблюдения сопоставлены с симулированными путями, возвращенными как NumPeriods + 1- 1 вектор-столбец времен наблюдения сопоставлен с симулированными путями. Каждый элемент Times сопоставлен с соответствующей строкой Paths.

Массив временных рядов зависимых случайных варьируемых величин, возвращенных как NumPeriods- 1- NumTrials Трехмерный массив, когда Z задан как входной параметр. Если Z входной параметр не задан, затем Z выходной аргумент содержит случайные варьируемые величины, сгенерированные внутренне.

Больше о

свернуть все

Опция корзины

basket option является опцией на портфеле нескольких базовых активов акции.

Выплата для опции корзины зависит от совокупной эффективности набора отдельных активов. Опция корзины имеет тенденцию быть более дешевой, чем соответствующий портфель простых опций ванили по этим причинам:

  • Если компоненты корзины коррелируют негативно, перемещения в значении одного компонента нейтрализуют противоположные перемещения другого компонента. Если все компоненты не коррелируют отлично, опция корзины является более дешевой, чем ряд отдельных опций на каждом из активов в корзине.

  • Опция корзины минимизирует операционные издержки, потому что инвестор должен купить только одну опцию вместо нескольких отдельных опций.

Для получения дополнительной информации см. Опцию Корзины.

Ссылки

[1] Longstaff, F.A., и Э.С. Шварц. “Оценивая американские Опции Симуляцией: Простой Подход Наименьших квадратов”. Анализ Финансовых Исследований. Издание 14, № 1, Spring 2001, стр 113–147.

Представленный в R2009b