Lookback

Описание

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

  1. Использование fininstrument создать Lookback инструментальный объект для одного или нескольких инструментов Lookback.

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

  3. Выберите метод ценообразования.

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

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

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

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

Создание

Описание

пример

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

Lookback инструмент поддерживает фиксированную забастовку и плавающую забастовку 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', NINST- 1 массив строк со значениями "Lookback", или NINST- 1 массив ячеек из символьных векторов со значениями 'Lookback'.

Типы данных: char | cell | 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' и скалярное неотрицательное числовое значение или NINST- 1 вектор из неотрицательных значений для фиксированной забастовки Lookback опция. Для плавающей забастовки Lookback опция, задайте 'Strike' как NaN или NINST- 1 вектор из NaNs.

Примечание

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

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

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

Примечание

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

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

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

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

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

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

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

Осуществление опции разрабатывает в виде разделенной запятой пары, состоящей из 'ExerciseStyle' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

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

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

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

Пользовательское имя для одного из большего количества инструментов в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

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

Свойства

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

Значение цены исполнения опциона опции, возвращенное как скаляр, неотрицательный числовой или NINST- 1 вектор из неотрицательных значений.

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

Дата осуществления опции, возвращенная как datetime или NINST- 1 вектор из datetimes.

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

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

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

Стиль осуществления опции, возвращенный как скалярная строка или NINST- 1 массив строк со значениями "European" или "American".

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

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

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

Пользовательское имя для инструмента, возвращенного как строка или NINST- 1 массив строк.

Типы данных: 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 объект калькулятора цен и использование 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 модель и ConzeViswanathan метод ценообразования.

Создайте Lookback Инструментальный объект

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

LookbackOpt = fininstrument("Lookback",'Strike',[105 ; 120; 140],'ExerciseDate',datetime([2022,9,15 ; 2022,10,15 ; 2022,11,15]),'OptionType',"put",'ExerciseStyle',"european",'Name',"lookback_option")
LookbackOpt=3×1 object
  3x1 Lookback array with properties:

    OptionType
    Strike
    AssetMinMax
    ExerciseStyle
    ExerciseDate
    Name

Создайте 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 объект калькулятора цен и использование 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 = 3×1

   57.8786
   71.3008
   88.9673

outPR=3×1 object
  3x1 priceresult array with properties:

    Results
    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

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

    71.301    -0.32722    2.8422e-06    -0.45894    31.997    -4.5677    -410.15

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

    88.967    -0.32033    1.4211e-06    -0.36005    31.395    -3.7989    -489.96

Этот пример показывает рабочий процесс, чтобы оценить 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 объект калькулятора цен для дерева акции 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: [21-Dec-2018 09:36:00    28-Mar-2019 19:12:00    ...    ]

LRPricer.Tree
ans = struct with fields:
    Probs: [2x15 double]
    ATree: {1x16 cell}
     dObs: [15-Sep-2018 00:00:00    21-Dec-2018 09:36:00    ...    ]
     tObs: [0 0.2667 0.5333 0.8000 1.0667 1.3333 1.6000 1.8667 2.1333 ... ]

Цена 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 объект калькулятора цен и использование 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 объект калькулятора цен и использование 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