optstocksensbyfd

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

Описание

пример

[PriceSens,PriceGrid,AssetPrices,Times] = optstocksensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates) вычисляет цены опций ванили или чувствительности с помощью метода конечного различия.

пример

[PriceSens,PriceGrid,AssetPrices,Times] = optstocksensbyfd(___,Name,Value) добавляет необязательные аргументы пары "имя-значение".

Примеры

свернуть все

Создайте RateSpec.

AssetPrice = 50;
Strike = 45;
Rate = 0.035;
Volatility = 0.30;
Settle = '01-Jan-2015';
Maturity = '01-Jan-2016';
Basis = 1;
 
RateSpec = intenvset('ValuationDate',Settle,'StartDates',Settle,'EndDates',...
Maturity,'Rates',Rate,'Compounding',-1,'Basis',Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9656
            Rates: 0.0350
         EndTimes: 1
       StartTimes: 0
         EndDates: 736330
       StartDates: 735965
    ValuationDate: 735965
            Basis: 1
     EndMonthRule: 1

Создайте StockSpec.

StockSpec = stockspec(Volatility,AssetPrice)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.3000
         AssetPrice: 50
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

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

ExerciseDates = 'may-1-2015';
OptSpec = 'Call';
OutSpec = {'price'; 'delta'; 'theta'};
[PriceSens, Delta, Theta] = optstocksensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,...
ExerciseDates,'OutSpec',OutSpec)
PriceSens = 6.7352
Delta = 0.7765
Theta = -4.9999

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

свернуть все

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

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

Спецификация запаса для базового актива. Для получения информации о спецификации запаса см. stockspec.

stockspec обрабатывает несколько типов базовых ресурсов. Для примера, для физических товаров цена StockSpec.Asset, волатильность StockSpec.Sigma, и удобное выражение StockSpec.DividendAmounts.

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

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

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

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

  • Для европейской опции используйте скаляр цены доставки.

  • Для опции Бермудских островов используйте 1-by- NSTRIKES вектор страйк-цен.

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

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

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

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

Даты упражнения опции, заданные как неотрицательное скалярное целое число, вектор символов даты или объект datetime:

  • Для европейской опции используйте 1-by- 1 вектор дат, заданный как неотрицательное скалярное целое число, вектор символов даты или объект datetime. Для опции Бермудских островов используйте 1-by- NSTRIKES вектор дат, заданный как неотрицательное скалярное целое число, вектор символов даты или объект datetime.

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

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

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

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

Пример: PriceSens = optstocksensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'OutSpec',{'All'},'AssetGridSize',1000)

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

Размер сетки активов, используемой для сетки конечных различий, задается как разделенная разделенными запятой парами, состоящая из 'AssetGridSize' и положительная скалярная величина.

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Сетка, содержащая цены, рассчитанные методом конечного различия, возвращается как двумерная сетка с размером PriceGridSize*length(Times). Количество столбцов не должно равняться TimeGridSize, потому что бывшие даты дивидендов в StockSpec добавляются к временной сетке. Цена за t = 0 содержится в PriceGrid(:, end).

Цены основного средства, определяемые StockSpec соответствующий первой размерности PriceGrid, возвращается как вектор.

Время, соответствующее второму измерению PriceGrid, возвращается как вектор.

Подробнее о

свернуть все

Ванильные Опции

A vanilla option - это категория опций, которая включает только самые стандартные компоненты.

Ванильная опция имеет срок годности и прямолинейную цену доставки. Опции в американском стиле и опции в европейском стиле классифицируются как опции ванили.

Выплата для ванильной опции следующая:

  • Для вызова: max(StK,0)

  • Для размещения: max(KSt,0)

где:

St - цена базового актива на t времени.

K - цена доставки.

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

Ссылки

[1] Хауг, Э. Г., Дж. Хауг и А. Льюис. «Назад к основам: новый подход к дискретной дивидендной проблеме». Том 9, журнал Wilmott, 2003, стр. 37-47.

[2] Wu, L. and Y. K. Kwok. Метод фиксирования конечного различия для оценки американских опций. Журнал финансового инжиниринга. Том 6.4, 1997, стр. 83-97.

Введенный в R2016b