Dupire

Создание Dupire объект модели для локальной волатильности для Vanilla инструмент

Описание

Создайте и оцените Vanilla объект инструмента со Dupire моделировать с использованием этого рабочего процесса:

  1. Использовать fininstrument для создания Vanilla объект прибора.

  2. Использовать finmodel для задания Dupire объект модели для Vanilla прибора.

  3. Использовать finpricer для задания FiniteDifference метод ценообразования для Vanilla прибора.

Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.

Для получения дополнительной информации о доступных методах ценообразования для Vanilla инструмент, см. «Выбор инструментов», «Модели» и «Цены».

Создание

Описание

пример

DupireObj = finmodel(ModelType,'ImpliedVolData',impliedvoldata_value) создает Dupire объект модели путем определения ModelType и необходимый аргумент пары "имя-значение" ImpliedVolData чтобы задать свойства с помощью аргументов пары "имя-значение". Для примера, DupireObj = finmodel("Dupire",'ImpliedVolData',voldata_table) создает Dupire объект модели.

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

расширить все

Тип модели, заданный как строка со значением "Dupire" или вектор символов со значением 'Dupire'.

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

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

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

Пример: DupireObj = finmodel("Dupire",'ImpliedVolData',voldata_table)

Таблица дат погашения, цен забастовки или упражнений и их соответствующих предполагаемых волатильностей, заданная как разделенная разделенными запятой парами, состоящая из 'ImpliedVolData' и NVOL-by- 3 таблица.

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

Свойства

расширить все

Таблица дат погашения, цены забастовки или упражнения и соответствующие подразумеваемые волатильности, возвращенные как NVOL-by- 3 таблица.

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

Примеры

свернуть все

В этом примере показан рабочий процесс по цене V anilla инструмент, когда вы используете Dupire модель и FiniteDifference метод ценообразования.

Создание Vanilla Объект прибора

Использование fininstrument для создания Vanilla объект прибора.

VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2020,1,1),'Strike',105,'ExerciseStyle',"american",'Name',"vanilla_option")
VanillaOpt = 
  Vanilla with properties:

       OptionType: "call"
    ExerciseStyle: "american"
     ExerciseDate: 01-Jan-2020
           Strike: 105
             Name: "vanilla_option"

Создание Dupire Объект модели

Задайте данные о подразумеваемой поверхности волатильности.

AssetPrice = 590;
Maturity = ["06-Mar-2018" "05-Jun-2018" "12-Sep-2018" "10-Dec-2018" "01-Jan-2019" ...
"02-Jul-2019" "01-Jan-2020" "01-Jan-2021" "01-Jan-2022" "01-Jan-2023"];
Maturity = repmat(Maturity,10,1);
Maturity = Maturity(:);

ExercisePrice = AssetPrice.*[0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.30 1.40];
ExercisePrice = repmat(ExercisePrice,1,10)';

ImpliedVol = [...
    0.190; 0.168; 0.133; 0.113; 0.102; 0.097; 0.120; 0.142; 0.169; 0.200; ...
    0.177; 0.155; 0.138; 0.125; 0.109; 0.103; 0.100; 0.114; 0.130; 0.150; ...
    0.172; 0.157; 0.144; 0.133; 0.118; 0.104; 0.100; 0.101; 0.108; 0.124; ...
    0.171; 0.159; 0.149; 0.137; 0.127; 0.113; 0.106; 0.103; 0.100; 0.110; ...
    0.171; 0.159; 0.150; 0.138; 0.128; 0.115; 0.107; 0.103; 0.099; 0.108; ...
    0.169; 0.160; 0.151; 0.142; 0.133; 0.124; 0.119; 0.113; 0.107; 0.102; ...
    0.169; 0.161; 0.153; 0.145; 0.137; 0.130; 0.126; 0.119; 0.115; 0.111; ...
    0.168; 0.161; 0.155; 0.149; 0.143; 0.137; 0.133; 0.128; 0.124; 0.123; ...
    0.168; 0.162; 0.157; 0.152; 0.148; 0.143; 0.139; 0.135; 0.130; 0.128; ...
    0.168; 0.164; 0.159; 0.154; 0.151; 0.147; 0.144; 0.140; 0.136; 0.132];

ImpliedVolData = table(Maturity, ExercisePrice, ImpliedVol);

Использование finmodel для создания Dupire объект модели.

DupireModel = finmodel("Dupire",'ImpliedVolData',ImpliedVolData)
DupireModel = 
  Dupire with properties:

    ImpliedVolData: [100x3 table]

Создание ratecurve Объект

Создайте плоскую ratecurve объект, использующий ratecurve.

Settle = datetime(2018,1,1);
Maturity = datetime(2020,9,1);
Rate = 0.06;
myRC = ratecurve('zero',Settle,Maturity,Rate)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: 01-Sep-2020
                Rates: 0.0600
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создание FiniteDifference Объект прейскуранта

Использование finpricer для создания FiniteDifference и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("FiniteDifference",'Model',DupireModel,'DiscountCurve',myRC,'SpotPrice',100,'DividendValue',0.0262,'DividendType',"continuous")
outPricer = 
  FiniteDifference with properties:

     DiscountCurve: [1x1 ratecurve]
             Model: [1x1 finmodel.Dupire]
         SpotPrice: 100
    GridProperties: [1x1 struct]
      DividendType: "continuous"
     DividendValue: 0.0262

Ценовые Vanilla Инструмент

Использование price вычислить цену и чувствительность для Vanilla прибора.

[Price, outPR] = price(outPricer,VanillaOpt,["all"])
Price = 15.5930
outPR = 
  priceresult with properties:

       Results: [1x7 table]
    PricerData: [1x1 struct]

outPR.Results
ans=1×7 table
    Price      Delta       Gamma      Lambda     Theta      Rho      Vega 
    ______    _______    _________    ______    _______    ______    _____

    15.593    0.55004    0.0091484    3.5275    -3.3431    78.792    49.33

Подробнее о

расширить все

Ссылки

[1] Андерсен, Л. Б. и Р. Братертон-Рэтклифф. «Улыбка волатильности опции: неявный подход с конечной разницей». Журнал вычислительных финансов. Том 1, № 2, 1997, стр. 5-37.

[2] Дюпир, Б. «Ценообразование с улыбкой». Риск. Том 7, № 1, 1994, стр. 18-20.

Введенный в R2020a