basketsensbyls

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

Описание

пример

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

Для американских опций Longstaff-Schwartz методом наименьших квадратов используется для вычисления премии за ранние упражнения.

пример

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

Примеры

свернуть все

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

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

Опция значения цены доставки, указанный как одно из следующего:

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

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

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

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

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

Даты упражнения опции, заданные как серийный номер даты или вектор символов даты:

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

  • Для американской опции, ExerciseDates является 1-by- 2 вектор контуров дат упражнения. Опция выполняется на любую дату между или включая пару дат в этой строке. Если существует только один не - NaN дата, или если ExerciseDates является 1-by- 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')

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

  • 0 - Европейский/Бермудские острова

  • 1 - Американский

Примечание

Для американских опций Longstaff-Schwartz методом наименьших квадратов используется для вычисления премии за ранние упражнения. Для получения дополнительной информации о методе наименьших квадратов смотрите https ://people.math.etz.ch/% 7Ehjfurrer/training/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Подробнее о

свернуть все

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

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

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

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

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

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

Ссылки

[1] Longstaff, F.A., and E.S. Schwartz. Оценка американских опций по симуляции: простой подход методом наименьших квадратов. Обзор финансовых исследований. Том 14, № 1, весна 2001, стр. 113-147.

Введенный в R2009b