PartialLookback

PartialLookback инструмент

Описание

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

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

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

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

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

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

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

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

Создание

Описание

пример

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

PartialLookback инструмент поддерживает фиксированную забастовку и плавающую забастовку частичные lookback опции. Вычислить значение плавающей забастовки частичная lookback опция, Strike должен быть задан как NaN. Для получения дополнительной информации о PartialLookback инструмент, смотрите Больше О.

пример

PartialLookbackObj = fininstrument(___,Name,Value) дополнительные наборы

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

Входные параметры

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

Инструментальный тип в виде строки со значением "PartialLookback", вектор символов со значением 'PartialLookback', NINST- 1 массив строк со значениями "PartialLookback", или NINST- 1 массив ячеек из символьных векторов со значениями 'PartialLookback'.

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

PartialLookback Аргументы в виде пар имя-значение

Задайте требуемые и дополнительные разделенные запятой пары 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 вектор из неотрицательных значений для фиксированной забастовки PartialLookback опция. Для плавающей забастовки частичная lookback опция задайте 'Strike' как NaN или NINST- 1 вектор из NaNs.

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

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

Примечание

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

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

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

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

  • Для фиксированной забастовки частичный lookback контрольным периодом является [MonitorDate, ExerciseDate]. MonitorDate дата начала фиксированной забастовки частичная lookback опция.

  • Для плавающей забастовки частичный lookback контрольным периодом является [Settle, MonitorDate], где Settle <MonitorDate <ExerciseDate. MonitorDate дата окончания плавающей забастовки частичная lookback опция.

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

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

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

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

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

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

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

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

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

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

Степень пристрастия к плавающей забастовке частичный lookback в виде разделенной запятой пары, состоящей из 'StrikeScaler' и числовой скаляр или NINST- 1 числовой вектор. StrikeScaler значение указывает на процент Strike это фиксируется выше или ниже AssetMinMax значение.

  • Для плавающей забастовки вызова частичный lookback, StrikeScaler ≥ 1.

  • Для помещенной плавающей забастовки частичный lookback, 0 <StrikeScaler ≤ 1.

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

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

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

Свойства

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

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

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

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

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

Предопределенная контрольная дата, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

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

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

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

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

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

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

Степень пристрастия к частичной плавающей забастовке lookback, возвращенный как числовой скаляр или NINST- 1 числовой вектор.

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

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

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить плавающую забастовку PartialLookback инструмент, когда вы используете BlackScholes модель и HeynenKat метод ценообразования.

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

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

PartialLookbackOpt = fininstrument("PartialLookback",'ExerciseDate',datetime(2022,9,15),'Strike',NaN,'StrikeScaler', 0.75, 'MonitorDate',datetime(2021,9,15),'OptionType',"put",'ExerciseStyle',"european",'AssetMinMax', 98,'Name',"partial_lookback_option")
PartialLookbackOpt = 
  PartialLookback with properties:

      MonitorDate: 15-Sep-2021
     StrikeScaler: 0.7500
       OptionType: "put"
           Strike: NaN
      AssetMinMax: 98
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "partial_lookback_option"

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

Используйте finmodel создать BlackScholes объект модели.

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.32)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.3200
    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"

Создайте HeynenKat Объект калькулятора цен

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

outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100,'DividendType',"continuous",'DividendValue',.05,'PricingMethod',"HeynenKat")
outPricer = 
  HeynenKat with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    24.815    0.27297    0.012438     1.1      131.33    -5.0942    -193.51

Этот пример показывает рабочий процесс, чтобы оценить несколько плавающая забастовка PartialLookback инструменты, когда вы используете BlackScholes модель и HeynenKat метод ценообразования.

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

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

PartialLookbackOpt = fininstrument("PartialLookback",'ExerciseDate',datetime([2022,9,15 ; 2022,10,15 ; 2022,11,15]),'Strike',NaN,'StrikeScaler', 0.75, 'MonitorDate',datetime([2021,9,15 ; 2021,10,15 ; 2021,11,15]),'OptionType',"put",'ExerciseStyle',"european",'AssetMinMax', 98,'Name',"partial_lookback_option")
PartialLookbackOpt=3×1 object
  3x1 PartialLookback array with properties:

    MonitorDate
    StrikeScaler
    OptionType
    Strike
    AssetMinMax
    ExerciseStyle
    ExerciseDate
    Name

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

Используйте finmodel создать BlackScholes объект модели.

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.32)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.3200
    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"

Создайте HeynenKat Объект калькулятора цен

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

outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100,'DividendType',"continuous",'DividendValue',.05,'PricingMethod',"HeynenKat")
outPricer = 
  HeynenKat with properties:

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

Цена PartialLookback Инструменты

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

[Price, outPR] = price(outPricer,PartialLookbackOpt,["all"])
Price = 3×1

   24.8148
   25.2306
   25.6545

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

    Results
    PricerData

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

    24.815    0.27297    0.012438     1.1      131.33    -5.0942    -193.51

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

    25.231    0.27694    0.012349    1.0976    133.05    -5.0265    -198.37

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

    25.655    0.28099    0.012264    1.0953    134.81    -4.9578    -203.4

Этот пример показывает рабочий процесс, чтобы оценить фиксированную забастовку PartialLookback инструмент, когда вы используете Heston модель и AssetMonteCarlo метод ценообразования.

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

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

PartialLookbackOpt = fininstrument("PartialLookback",'ExerciseDate',datetime(2022,9,15),'Strike',102, 'MonitorDate',datetime(2021,9,15),'OptionType',"call",'ExerciseStyle',"european",'Name',"partial_lookback_option")
PartialLookbackOpt = 
  PartialLookback with properties:

      MonitorDate: 15-Sep-2021
     StrikeScaler: 1
       OptionType: "call"
           Strike: 102
      AssetMinMax: NaN
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
             Name: "partial_lookback_option"

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

Используйте finmodel создать Hestone объект модели.

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 объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",HestonModel,'SpotPrice',100,'simulationDates',Settle+calmonths(1):calmonths(1):datetime(2022,9,15))
outPricer = 
  HestonMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 100
    SimulationDates: [15-Oct-2018    15-Nov-2018    15-Dec-2018    ...    ]
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.Heston]
       DividendType: "continuous"
      DividendValue: 0

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

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

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

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

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

    19.948    0.93159    0.0084898    4.6701    283.87    1.9218    48.04    2.666 

Больше о

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

Введенный в R2021b