Dupire

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

Описание

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

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

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

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

Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.

Для получения дополнительной информации о доступных методах ценообразования для Vanilla инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

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 объект калькулятора цен и использование 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] Андерсен, L. B. и Р. Бразэтон-Рэтклифф. "Улыбка Энергозависимости Опции Акции: Неявный Подход Конечной разности". Журнал Вычислительных Финансов. Издание 1, Номер 2, 1997, стр 5–37.

[2] Dupire, B. "Оценивая с Улыбкой". Риск. Издание 7, Номер 1, 1994, стр 18–20.

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте