exponenta event banner

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около-3 таблица.

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

Свойства

развернуть все

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

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

Примеры

свернуть все

В этом примере показан поток операций по цене Vanilla инструмент при использовании 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 object и используйте 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