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-by- 2 матрица числовых значений, где первый столбец является Верхним Барьером (1) (UB), а второй - Нижним Барьером (2) (LB). Барьер (1) должен быть больше барьера (2).

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

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

Примечание

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

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

Необязательные DoubleTouch Аргументы в виде пар имя-значение

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

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

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

  • 'DNT' - Двойной no-touch. Опция 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.

Типы данных: 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 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 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 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