exponenta event banner

Прикосновение

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

Описание

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

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

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

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

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

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

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

Создание

Описание

пример

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

пример

TouchOpt = fininstrument(___,Name,Value) задает дополнительные свойства, используя дополнительные аргументы пары имя-значение в дополнение к требуемым аргументам в предыдущем синтаксисе. Например, TouchOpt = fininstrument("Touch",','ExerciseDate',datetime(2019,1,30),'BarrierValue',110,'PayoffValue',130,'BarrierType',"OT",'PayoffType',"Expiry",'Name',"Touch_option") создает Touch опцион с типом погашения по истечении срока действия. Можно указать несколько аргументов пары имя-значение.

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

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

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

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

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

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

Пример: TouchOpt = fininstrument("Touch",','ExerciseDate',datetime(2019,1,30),'BarrierValue',110,'PayoffValue',130,'BarrierType',"OT",'PayoffType',"Expiry",'Name',"Touch_option")
Необходимый Touch Аргументы пары «имя-значение»

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

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

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

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

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

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

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

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

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

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

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

  • 'OT' - Одно касание

    Опция one-touch обеспечивает выплату, если базовый актив когда-либо торгуется на или за пределами BarrierValue. В противном случае PayoffValue равно нулю.

  • 'NT' - Без касания

    Опция no-touch обеспечивает выплату, если базовый актив никогда не торгуется на или за пределами BarrierValue. В противном случае PayoffValue равно нулю.

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

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

Примечание

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

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

TouchOpt = fininstrument("Touch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',100,'PayoffValue',110,'BarrierType',"OT",'Name',"touch_option")
TouchOpt = 
  Touch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: 100
     PayoffValue: 110
     BarrierType: "ot"
      PayoffType: "expiry"
            Name: "touch_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

Инструмент Price Touch

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

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

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

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

    91.186    -2.1825    0.038281    -2.4413    -415.45    2.7374    35.998

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

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

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

TouchOpt = fininstrument("Touch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',110,'PayoffValue',140,'BarrierType',"OT",'Name',"touch_option")
TouchOpt = 
  Touch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: 110
     PayoffValue: 140
     BarrierType: "ot"
      PayoffType: "expiry"
            Name: "touch_option"

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

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

HestonModel = finmodel("Heston",'V0',0.032,'ThetaV',0.1,'Kappa',0.003,'SigmaV',0.2,'RhoSV',0.9)
HestonModel = 
  Heston with properties:

        V0: 0.0320
    ThetaV: 0.1000
     Kappa: 0.0030
    SigmaV: 0.2000
     RhoSV: 0.9000

Создать 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",HestonModel,'SpotPrice',112,'simulationDates',datetime(2022,9,15))
outPricer = 
  HestonMonteCarlo with properties:

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

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

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

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

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

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

    63.525    -7.2363    1.0541    -12.758    -320.21    3.5527    418.94    8.1498

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

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

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

TouchOpt = fininstrument("Touch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',140,'PayoffValue',170,'BarrierType',"OT",'Name',"touch_option")
TouchOpt = 
  Touch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: 140
     PayoffValue: 170
     BarrierType: "ot"
      PayoffType: "expiry"
            Name: "touch_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',135,'DividendValue',0.045)
outPricer = 
  BlackScholes with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    136.56    2.2346    0.005457    2.2092    30.812    3.9013    -465.89

Подробнее

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

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