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 инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

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' — Дважды без касания. Двойная опция без касания задает два 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 объект калькулятора цен и использование 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 объект калькулятора цен и использование 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 объект калькулятора цен и использование 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