exponenta event banner

Lookback

Описание

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

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

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

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

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

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

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

Создание

Описание

пример

LookbackObj = fininstrument(InstrumentType,'Strike',strike_value,'ExerciseDate',exercise_date) создает Lookback путем указания объекта InstrumentType и задает свойства для необходимых аргументов пары имя-значение Strike и ExerciseDate.

Lookback инструмент поддерживает фиксированные и плавающие варианты обратного контроля удара. Для получения дополнительной информации о Lookback см. раздел Подробнее.

пример

LookbackObj = fininstrument(___,Name,Value) задает дополнительные свойства, используя дополнительные пары имя-значение в дополнение к требуемым аргументам в предыдущем синтаксисе. Например, LookbackObj = fininstrument("Lookback",'Strike',100,'ExerciseDate',datetime(2019,1,30),'OptionType',"put",'ExerciseStyle',"European",'Name',"lookback_option") создает Lookback пут вариант с европейским упражнением. Можно указать несколько аргументов пары имя-значение.

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

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

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

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

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

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

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

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

Цена страйка опциона, указанная как пара, разделенная запятыми, состоящая из 'Strike' и скалярное неотрицательное числовое значение для фиксированного удара Lookback вариант или NaN для плавающего удара Lookback вариант.

Примечание

Используйте ConzeViswanathan прайсер для фиксированного удара Lookback и используйте GoldmanSosinGatto прайсер для плавающего удара Lookback вариант.

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

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

Примечание

Для европейского варианта есть только один ExerciseDate на дату истечения срока действия опциона.

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

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

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

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

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

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

Стиль дополнительного упражнения, заданный как разделенная запятыми пара, состоящая из 'ExerciseStyle' и скалярный строковый или символьный вектор.

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

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

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

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

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

Свойства

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

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

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

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

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

Тип параметра, возвращаемый в виде строки со значением "call" или "put".

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

Стиль дополнительного упражнения, возвращаемый в виде строки со значением "European" или "American".

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

Максимальная или минимальная базовая цена актива, возвращаемая в виде скалярного числа.

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

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

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

Примеры

свернуть все

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

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

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

LookbackOpt = fininstrument("Lookback",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"lookback_option")
LookbackOpt = 
  Lookback with properties:

       OptionType: "put"
           Strike: 105
      AssetMinMax: NaN
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "lookback_option"

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

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.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"

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

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

outPricer = finpricer("analytic","Model",BlackScholesModel,"DiscountCurve",myRC,"SpotPrice",100,"DividendValue",0.25,"DividendType","continuous","PricingMethod","ConzeViswanathan")
outPricer = 
  ConzeViswanathan with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    57.879    -0.33404      0      -0.57714    32.587    -5.1863    -350.41

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

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

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

LookbackOpt = fininstrument("Lookback",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"lookback_option")
LookbackOpt = 
  Lookback with properties:

       OptionType: "put"
           Strike: 105
      AssetMinMax: NaN
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "lookback_option"

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

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.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"

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

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

NumPeriods = 15;
LRPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',150,'PricingMethod',"LeisenReimer",'Maturity',datetime(2022,9,15),'NumPeriods',NumPeriods)
LRPricer = 
  LRTree with properties:

    InversionMethod: PP1
             Strike: 150
               Tree: [1x1 struct]
         NumPeriods: 15
              Model: [1x1 finmodel.BlackScholes]
      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 150
       DividendType: "continuous"
      DividendValue: 0
          TreeDates: [1x15 datetime]

LRPricer.Tree
ans = struct with fields:
    Probs: [2x15 double]
    ATree: {1x16 cell}
     dObs: [1x16 datetime]
     tObs: [1x16 double]

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

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

[Price, outPR] = price(LRPricer,LookbackOpt,["all"])
Price = 3.9412
outPR = 
  priceresult with properties:

       Results: [1x7 table]
    PricerData: []

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

    3.9412    -0.13312    -0.011131    67.684    -5.0757    -73.857    -1.0383

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

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

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

LookbackOpt = fininstrument("Lookback",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"lookback_option")
LookbackOpt = 
  Lookback with properties:

       OptionType: "put"
           Strike: 105
      AssetMinMax: NaN
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "lookback_option"

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

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.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',200,'simulationDates',datetime(2022,9,15))
outPricer = 
  GBMMonteCarlo with properties:

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

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

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

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

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

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

    1.8553    -0.040442    0.00062792    -4.3596    -39.426    -0.71345    42.311

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

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

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

LookbackOpt = fininstrument("Lookback",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"lookback_option")
LookbackOpt = 
  Lookback with properties:

       OptionType: "put"
           Strike: 105
      AssetMinMax: NaN
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "lookback_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',100,'simulationDates',datetime(2022,9,15))
outPricer = 
  BatesMonteCarlo with properties:

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

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

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

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

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

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

    7.3592    -0.83923    -3.5527e-15    -11.404    -29.431    -0.030786    31.941    0.71394

Подробнее

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

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