exponenta event banner

DoubleTouch

DoubleTouch объект прибора

Описание

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

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

  2. Использовать finmodel для указания BlackScholes, Bates, Merton, или Heston модель для DoubleTouch инструмент.

    • При использовании BlackScholes модель, использование finpricer для указания BlackScholes или VannaVolga метод ценообразования для DoubleTouch инструмент.

    • При использовании BlackScholes, Heston, Bates, или Merton модель, использование finpricer для указания AssetMonteCarlo метод ценообразования для DoubleTouch инструмент.

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

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

Создание

Описание

пример

DoubleTouchOpt = fininstrument(InstrumentType,'ExerciseDate',exercise_date,'BarrierValue',barrier_value,'PayoffValue',payoff_value) создает DoubleTouch путем указания объекта InstrumentType и устанавливает свойства, используя необходимые аргументы пары имя-значение ExerciseDate, BarrierValue, и PayoffValue.

пример

DoubleTouchOpt = fininstrument(___,Name,Value) задает дополнительные свойства, используя дополнительные аргументы пары имя-значение в дополнение к требуемым аргументам в предыдущем синтаксисе. Например, DoubleTouchOpt = fininstrument("DoubleTouch",'Strike',100,'ExerciseDate',datetime(2019,1,30),'BarrierValue',110,'PayoffValue',150,'BarrierType',"DOT",'PayoffType',"Expiry",'Name',"DoubleTouch_option") создает DoubleTouch опцион с типом выплаты Expiry. Можно указать несколько аргументов пары имя-значение.

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

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

Тип прибора, указанный как строка со значением "DoubleTouch" или символьный вектор со значением 'DoubleTouch'.

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

DoubleTouch Аргументы пары «имя-значение»

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

Пример: DoubleTouchOpt = fininstrument("DoubleTouch",'Strike',100,'ExerciseDate',datetime(2019,1,30),'BarrierValue',110,'OptionType',"put",'ExerciseStyle',"European",'BarrierType',"DO",'Name',"DoubleTouch_option")
Необходимый DoubleTouch Аргументы пары «имя-значение»

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

Дата выполнения опциона, указанная как пара, разделенная запятыми, состоящая из 'ExerciseDate' и скалярное значение datetime, порядковый номер даты, вектор символов даты или строка даты.

Если используется вектор символов даты или строка даты, формат должен быть распознаваемым по datetime потому что ExerciseDate свойство сохраняется как datetime.

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

Уровни барьера опции, указанные как разделенная запятыми пара, состоящая из 'BarrierValue' и NINSTоколо-2 матрица числовых значений, где первый столбец является верхним барьером (1) (UB), а второй столбец - нижним барьером (2) (LB). Барьер (1) должен быть больше барьера (2).

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

Значение выплаты, указанное как пара, разделенная запятыми, состоящая из 'PayoffValue' и NINSTоколо-1 матрица числовых значений, где каждый элемент является 1около-2 вектор, в котором первый столбец является барьером (1) (UB), а второй столбец является барьером (2) (LB). Барьер (1) должен быть больше барьера (2).

Примечание

Значение выплаты рассчитывается для момента времени, на который BarrierValue достигнут. Выплата либо наличными, либо ничего. При указании двойной опции «без касания» с помощью BarrierType, погашение находится на сроке погашения опциона.

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

Дополнительный DoubleTouch Аргументы пары «имя-значение»

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

Тип двойного барьера, указанный как разделенная запятыми пара, состоящая из 'BarrierType' и вектор строки или символа с одним из следующих значений:

  • 'DOT' - Двойное одно касание. Двойная опция в одно касание определяет два BarrierValue значения. Двойная опция в одно касание обеспечивает PayoffValue если базовый актив когда-либо касается верхнего или нижнего BarrierValue значения.

  • 'DNT' - Двойное отсутствие касания. Параметр double no-touch определяет два BarrierValue значения. Двойная опция «без касания» обеспечивает PayoffValue если базовый актив никогда не касается ни верхнего, ни нижнего BarrierValue значения.

  • 'UNT-LOT' - Верхний BarrierValue Нет касания и ниже BarrierValue является одним касанием.

  • 'UOT-LNT' - Верхний BarrierValue является одним касанием и ниже BarrierValue Нет прикосновения.

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

Тип выплаты, указанный как пара, разделенная запятыми, состоящая из 'PayoffType' и скалярный строковый или символьный вектор. Нельзя использовать указание "Expiry" при использовании BarrierType из 'DNT'.

Примечание

При использовании BlackScholes цена, только "Expiry" PayoffType поддерживается.

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

Определяемое пользователем имя прибора, указанное как пара, разделенная запятыми, состоящая из 'Name' и скалярный строковый или символьный вектор.

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

Свойства

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

Дата выполнения опциона, возвращенная в качестве даты и времени.

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

Уровень барьера, возвращаемый как числовая матрица.

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

Погашение опциона, возвращаемое в виде числовой матрицы.

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

Тип двойного барьера, возвращаемый в виде строки.

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

Тип параметра, возвращаемый в виде строки.

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

Определяемое пользователем имя инструмента, возвращаемое в виде строки.

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

Примеры

свернуть все

В этом примере показан поток операций для оценки DoubleTouch инструмент при использовании BlackScholes модель и AssetMonteCarlo способ ценообразования.

Создать DoubleTouch Объект КИП

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

DoubleTouchOpt = fininstrument("DoubleTouch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',[110 90],'PayoffValue',50,'BarrierType',"DOT",'Name',"doubletouch_option")
DoubleTouchOpt = 
  DoubleTouch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: [110 90]
     PayoffValue: 50
     BarrierType: "dot"
      PayoffType: "expiry"
            Name: "doubletouch_option"

Создать BlackScholes Объект модели

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',.2)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.2000
    Correlation: 1

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

Создание плоского ratecurve объект с использованием ratecurve.

Settle = datetime(2018,9,15);
Maturity = datetime(2023,9,15);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',12)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 12
                Dates: 15-Sep-2023
                Rates: 0.0350
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создать AssetMonteCarlo Объект прайсера

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

outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",BlackScholesModel,'SpotPrice',102,'simulationDates',datetime(2022,9,15))
outPricer = 
  GBMMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 102
    SimulationDates: 15-Sep-2022
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.BlackScholes]
       DividendType: "continuous"
      DividendValue: 0

Цена DoubleTouch Инструмент

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

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

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

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

    43.386    0.0043916    0.0018346    0.010325    -173.28    1.4722    1.8176

В этом примере показан поток операций для оценки DoubleTouch инструмент при использовании Bates модель и AssetMonteCarlo способ ценообразования.

Создать DoubleTouch Объект КИП

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

DoubleTouchOpt = fininstrument("DoubleTouch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',[115 95],'PayoffValue',40,'BarrierType',"DOT",'Name',"doubletouch_option")
DoubleTouchOpt = 
  DoubleTouch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: [115 95]
     PayoffValue: 40
     BarrierType: "dot"
      PayoffType: "expiry"
            Name: "doubletouch_option"

Создать Bates Объект модели

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

BatesModel = finmodel("Bates",'V0',0.032,'ThetaV',0.1,'Kappa',0.003,'SigmaV',0.2,'RhoSV',0.9,'MeanJ',0.11,'JumpVol',.023,'JumpFreq',0.02)
BatesModel = 
  Bates with properties:

          V0: 0.0320
      ThetaV: 0.1000
       Kappa: 0.0030
      SigmaV: 0.2000
       RhoSV: 0.9000
       MeanJ: 0.1100
     JumpVol: 0.0230
    JumpFreq: 0.0200

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

Создание плоского ratecurve объект с использованием ratecurve.

Settle = datetime(2018,9,15);
Maturity = datetime(2023,9,15);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',12)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 12
                Dates: 15-Sep-2023
                Rates: 0.0350
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создать AssetMonteCarlo Объект прайсера

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

outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",BatesModel,'SpotPrice',102,'simulationDates',datetime(2022,9,15))
outPricer = 
  BatesMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 102
    SimulationDates: 15-Sep-2022
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.Bates]
       DividendType: "continuous"
      DividendValue: 0

Цена DoubleTouch Инструмент

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

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

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

outPR.Results 
ans=1×8 table
    Price     Delta    Gamma    Lambda      Rho      Theta     Vega    VegaLT
    ______    _____    _____    ______    _______    ______    ____    ______

    34.774      0        0        0       -139.07    1.2179     0        0   

В этом примере показан поток операций для оценки DoubleTouch инструмент при использовании BlackScholes модель и BlackScholes способ ценообразования.

Создать DoubleTouch Объект КИП

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

DoubleTouchOpt = fininstrument("DoubleTouch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',[115 95],'PayoffValue',70,'BarrierType',"UNT-LOT",'Name',"doubletouch_option")
DoubleTouchOpt = 
  DoubleTouch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: [115 95]
     PayoffValue: 70
     BarrierType: "unt-lot"
      PayoffType: "expiry"
            Name: "doubletouch_option"

Создать BlackScholes Объект модели

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.28)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.2800
    Correlation: 1

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

Создание плоского ratecurve объект с использованием ratecurve.

Settle = datetime(2018,9,15);
Maturity = datetime(2023,9,15);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',12)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 12
                Dates: 15-Sep-2023
                Rates: 0.0350
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создать BlackScholes Объект прайсера

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

outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',100,'DividendValue',0.045)
outPricer = 
  BlackScholes with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.BlackScholes]
        SpotPrice: 100
    DividendValue: 0.0450
     DividendType: "continuous"

Цена DoubleTouch Инструмент

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

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

       Results: [1x7 table]
    PricerData: []

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

    52.69    -3.4708    -0.0041339    -6.5871    -1.3469      0      -35.883

Подробнее

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

Представлен в R2020b