minassetsensbystulz

Определите европейские цены опции радуги или чувствительность на минимуме двух опасных использований активов модель ценообразования опционов Stulz

Синтаксис

PriceSens = minassetsensbystulz(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr)
PriceSens = minassetsensbystulz(___,Name,Value)

Описание

пример

PriceSens = minassetsensbystulz(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) вычисляет цены опции с помощью модели ценообразования опционов Stulz.

пример

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

Примеры

свернуть все

Рассмотрите европейский пут-опцион радуги, который дает держателю право продать или акции A или запас B в забастовке 50,25, какой бы ни имеет нижнее значение на дату истечения срока 15 мая 2009. 15 ноября 2008 запас A стоит в 49,75 с непрерывной ежегодной дивидендной доходностью 4,5% и имеет энергозависимость возврата 11%. Сток Б торгует в 51 с непрерывной дивидендной доходностью 5% и имеет энергозависимость возврата 16%. Безрисковый уровень составляет 4,5%. Используя эти данные, если корреляция между нормами прибыли-0.5, 0, и 0.5, вычисляют цену и чувствительность минимума двух активов, которые являются европейскими пут-опционами радуги. Во-первых, создайте RateSpec:

Settle = 'Nov-15-2008';
Maturity = 'May-15-2009';
Rates = 0.045;
Basis = 1;

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,...
'EndDates', Maturity, 'Rates', Rates, 'Compounding', -1, 'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9778
            Rates: 0.0450
         EndTimes: 0.5000
       StartTimes: 0
         EndDates: 733908
       StartDates: 733727
    ValuationDate: 733727
            Basis: 1
     EndMonthRule: 1

Создайте два определения StockSpec.

AssetPriceA = 49.75;
AssetPriceB = 51;
SigmaA = 0.11;
SigmaB = 0.16;
DivA = 0.045; 
DivB = 0.05; 

StockSpecA = stockspec(SigmaA, AssetPriceA, 'continuous', DivA)
StockSpecA = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.1100
         AssetPrice: 49.7500
       DividendType: {'continuous'}
    DividendAmounts: 0.0450
    ExDividendDates: []

StockSpecB = stockspec(SigmaB, AssetPriceB, 'continuous', DivB)
StockSpecB = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.1600
         AssetPrice: 51
       DividendType: {'continuous'}
    DividendAmounts: 0.0500
    ExDividendDates: []

Вычислите цену и дельту для различных уровней корреляции.

Strike = 50.25;
Corr = [-0.5;0;0.5];
OptSpec = 'put';
OutSpec = {'Price'; 'delta'};
[P, D] = minassetsensbystulz(RateSpec, StockSpecA, StockSpecB,...
Settle, Maturity, OptSpec, Strike, Corr, 'OutSpec', OutSpec)
P = 3×1

    3.4320
    3.1384
    2.7694

D = 3×2

   -0.4183   -0.3496
   -0.3746   -0.3189
   -0.3304   -0.2905

Вывод Delta имеет два столбца: первый столбец представляет Delta относительно запаса (актив 1), и второй столбец представляет Delta относительно запаса B (актив 2). Значение 0.4183 представляет Delta относительно запаса для уровня корреляции-0.5. Delta относительно запаса B, для корреляции нуля-0.3189.

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

свернуть все

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

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

Спецификация запаса для актива 1, заданное использование stockspec.

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

Спецификация запаса для актива 2, заданное использование stockspec.

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

Урегулирование или торговые даты, заданные как NINST-by-1 вектор числовых дат.

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

Даты погашения, заданные как NINST-by-1 вектор.

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

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

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

Цены исполнения опциона, заданные как NINST-by-1 вектор.

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

Корреляция между ценами базового актива, заданными как NINST-by-1 вектор.

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

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

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

Пример: [PriceSens] = minassetsensbystulz(RateSpec, StockSpecA,StockSpecB,Settle,Maturity,OptSpec,Strike,Corr,'OutSpec',OutSpec)

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

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

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

свернуть все

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

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