basketsensbyju

Определите европейскую цену опций корзины или чувствительность с помощью модели приближения Ненгджиу Джу

Синтаксис

PriceSens = basketsensbyju(RateSpec,BasketStockSpec,OptSpec,Strike,Settle,Maturity)
PriceSens = basketsensbyju(___,Name,Value)

Описание

пример

PriceSens = basketsensbyju(RateSpec,BasketStockSpec,OptSpec,Strike,Settle,Maturity) вычисляет цены или чувствительность для опций корзины с помощью модели приближения Ненгджиу Джу.

пример

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

Примеры

свернуть все

Найдите европейскую опцию корзины вызова пяти запасов. Примите, что корзина содержит:

  • 5% первой продажи акций на уровне 110$

  • 15% второй продажи акций на уровне 75$

  • 20% третьей продажи акций на уровне 40$

  • 25% четвертой продажи акций на уровне 125$

  • 35% пятой продажи акций на уровне 92$

Эти запасы имеют ежегодные колебания 20%, и корреляция между активами является нулем. 1 мая 2009 инвестор хочет купить 1-летний колл-опцион с ценой исполнения опциона 90$. Пересчитанный на год ток, постоянно начисляемые проценты составляют 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  = 5;
InstIdx = ones(NumInst,1);
Corr = diag(ones(5,1), 0);

% Define BasketStockSpec
AssetPrice =  [110; 75; 40; 125; 92]; 
Volatility = 0.2;
Quantity = [0.05; 0.15; 0.2; 0.25; 0.35];
BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr);

% Compute the price of the call basket option. Calculate also the delta 
% of the first stock.
OptSpec = {'call'};
Strike = 90;
OutSpec = {'Price','Delta'}; 
UndIdx = 1; % First element in the basket
[Price, Delta] = basketsensbyju(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, ...
Maturity, 'OutSpec', OutSpec,'UndIdx', UndIdx)
Price = 5.1610
Delta = 0.0297

Вычислите Delta относительно второго актива:

UndIdx = 2; % Second element in the basket
OutSpec = {'Delta'}; 
Delta = basketsensbyju(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity, ...
'OutSpec',OutSpec,'UndIdx',UndIdx)
Delta = 0.0906

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аргументы в виде пар имя-значение

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

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

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

Ссылки

[1] Ненгджиу Джу. “Оценивая азиата и опции корзины через разложение Тейлора”. Журнал вычислительных финансов. Издание 5, 2002.

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