maxassetsensbystulz

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

Синтаксис

PriceSens = maxassetsensbystulz(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr)
PriceSens = maxassetsensbystulz(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr,OutSpec)

Аргументы

RateSpec

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

StockSpec1

Спецификация запаса для актива 1. Смотрите stockspec.

StockSpec2

Спецификация запаса для актива 2. Смотрите stockspec.

Settle

NINST-by-1 вектор урегулирования или торговых дат.

Maturity

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

OptSpec

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

Strike

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

Corr

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

OutSpec

(Необязательно) Все дополнительные входные параметры заданы как соответствие с парами "имя-значение" параметра. Название параметра задано как вектор символов, сопровождаемый соответствующим значением параметров. Можно задать пары "имя-значение" параметра в любом порядке. Имена являются нечувствительными к регистру, и частичные соответствия позволены, если никакие неоднозначности не существуют. Допустимые названия параметра:

  • NOUT-by-1 или 1-by-NOUT массив ячеек из символьных векторов, указывающий на природу и порядок выходных параметров для функции. Возможными значениями является 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta' или 'All'.

    Например, OutSpec = {'Price'; 'Lambda'; 'Rho'} указывает, что выводом должен быть Price, Lambda и Rho, в том порядке.

    Вызвать от функции: [Price, Lambda, Rho] = maxassetsensbystulz(..., 'OutSpec', {'Price', 'Lambda', 'Rho'})

    OutSpec = {'All'} указывает, что выводом должен быть Delta, Gamma, Vega, Lambda, Rho, Theta и Price, в том порядке. Это совпадает с определением OutSpec как OutSpec = {'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', 'Price'};.

  • Значением по умолчанию является OutSpec = {'Price'}.

Описание

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

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

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

Примеры

свернуть все

Рассмотрите европейскую возможность радуги, которая дает держателю право купить любые 100 000$ фондового индекса по цене исполнения опциона 1 000 (актив 1) или 100 000$ государственной облигации (актив 2) с ценой исполнения опциона 100% номинальной стоимости, какой бы ни стоит больше в конце 12 месяцев. 15 января 2008 фондовый индекс стоит в 950, выплачивает дивиденд 2% ежегодно и имеет энергозависимость возврата 22%. Также 15 января 2008 государственная облигация торгует в 98, платит урожай купона 6% и имеет энергозависимость возврата 15%. Безрисковый уровень составляет 5%. Используя эти данные, вычислите цену и чувствительность европейской опции радуги, если корреляция между нормами прибыли-0.5, 0, и 0.5.

Поскольку цены активов в этом примере находятся в различных модулях, необходимо работать в любом индексе точки (для актива 1) или в долларах (для актива 2). Европейская опция радуги позволяет держателю покупать следующее: 100 модулей фондового индекса на уровне 1 000$ каждый (за в общей сложности 100 000$) или 1 000 модулей государственных облигаций на уровне 100$ каждый (за в общей сложности 100 000$). Чтобы преобразовать цену облигаций (актив 2), чтобы индексировать модули (актив 1), необходимо внести следующие корректировки:

  • Умножьте цену исполнения опциона и текущую цену государственной облигации на 10 (1000/100).

  • Умножьте цену опции на 100, полагая, что существует 100 модулей фондового индекса в опции.

Если эти корректировки введены, цена исполнения опциона является тем же самым для обоих активов (1 000$). Во-первых, создайте RateSpec:

Settle = 'Jan-15-2008';
Maturity = 'Jan-15-2009';
Rates = 0.05;
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.9512
            Rates: 0.0500
         EndTimes: 1
       StartTimes: 0
         EndDates: 733788
       StartDates: 733422
    ValuationDate: 733422
            Basis: 1
     EndMonthRule: 1

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

AssetPrice1 = 950;   % Asset 1 => Equity index
AssetPrice2 = 980;   % Asset 2 => Government bond
Sigma1 = 0.22;
Sigma2 = 0.15;
Div1 = 0.02; 
Div2 = 0.06; 

StockSpec1 = stockspec(Sigma1, AssetPrice1, 'continuous', Div1)
StockSpec1 = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.2200
         AssetPrice: 950
       DividendType: {'continuous'}
    DividendAmounts: 0.0200
    ExDividendDates: []

StockSpec2 = stockspec(Sigma2, AssetPrice2, 'continuous', Div2)
StockSpec2 = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.1500
         AssetPrice: 980
       DividendType: {'continuous'}
    DividendAmounts: 0.0600
    ExDividendDates: []

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

Strike = 1000 ; 
Corr = [-0.5; 0; 0.5];
OutSpec = {'price'; 'delta'};
OptSpec = 'call';
[Price, Delta] = maxassetsensbystulz(RateSpec, StockSpec1, StockSpec2,...
Settle, Maturity, OptSpec, Strike, Corr,'OutSpec', OutSpec)
Price = 3×1

  111.6683
  103.7715
   92.4412

Delta = 3×2

    0.4594    0.3698
    0.4292    0.3166
    0.4053    0.2512

Вывод Delta имеет два столбца: первый столбец представляет Delta относительно фондового индекса (актив 1), и второй столбец представляет Delta относительно государственной облигации (актив 2). Значение 0.4595 представляет Delta относительно одного модуля фондового индекса. С тех пор существует 100 модулей фондового индекса, полный Delta был бы 45.94 (100 * 0.4594) для уровня корреляции-0.5. Чтобы вычислить Delta относительно государственной облигации, помните, что настроенная цена 980 использовалась вместо 98. Поэтому, например, Delta относительно государственной облигации, для корреляции 0,5 был бы 251.2 (0.2512 * 100 * 10).

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