exponenta event banner

Барьер

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

Описание

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

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

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

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

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

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

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

Создание

Описание

пример

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

пример

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

Примечание

Для Barrier опция, BlackScholes только опоры прайсера "European" упражнение и FiniteDifference прайсер поддерживает "American" или "European" упражнение.

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

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

  • "UI" - Вклинивание

    Этот вариант вступает в силу, когда цена базового актива переходит выше барьерного уровня. Если базовый актив выходит за пределы барьерного уровня в течение срока действия опциона, держатель опциона имеет право, но не обязательство, покупать или продавать (звонить или ставить) основное обеспечение по цене страйка.

  • "UO" - Вверх нокаут-аут

    Этот опцион дает держателю опциона право, но не обязательство, покупать или продавать (звонить или ставить) основное обеспечение по цене страйка, если базовый актив не выходит за пределы барьерного уровня в течение срока действия опциона. Эта опция прекращается, когда цена базового обеспечения переходит выше барьерного уровня. Если спотовая цена базового актива достигает или превышает уровень барьера с опцией «вверх и назад», скидка выплачивается.

  • "DI" - Сбивка вниз

    Этот вариант вступает в силу, когда цена базовой акции проходит ниже барьерного уровня. Если основное обеспечение в течение срока действия опциона опускается ниже барьерного уровня, держатель опциона имеет право, но не обязательство, покупать или продавать (звонить или ставить) основное обеспечение по цене страйка. При использовании опциона «вниз-внутрь» бонус выплачивается, если спотовая цена андерлаинга не достигает барьерного уровня в течение срока действия опциона. Обратите внимание, что Barrier с использованием FiniteDifference Прайсер не поддерживает американские задирные варианты.

  • "DO" - Сбивание вниз

    Этот опцион дает держателю опциона право, но не обязательство, покупать или продавать (звонить или ставить) базовый актив по цене страйка, если базовый актив не опускается ниже барьерного уровня в течение срока действия опциона. Эта опция прекращается, когда цена базового обеспечения проходит ниже барьерного уровня. Если опцион бесполезен по истечении срока его действия, владелец опциона получает сумму бонуса.

ВыборТип барьераОкупаемость при пересечении барьераОкупаемость, если барьер не преодолен
Позвонить или поставитьВниз нокаут-аутБесполезныйСтандартный вызов или ввод
Позвонить или поставитьСбивка внизПозвонить или поставитьБесполезный
Позвонить или поставитьВверх нокаут-аутБесполезныйСтандартный вызов или ввод
Позвонить или поставитьВверх стук-инСтандартный вызов или вводБесполезный

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

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

  • Для опций Stock-In, Rebate выплачивается по истечении срока действия.

  • Для вариантов выбивания, Rebate оплачивается, когда BarrierValue достигнут.

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

Тип параметра барьера, возвращаемый как строка со значением "UI", "UO", "DI", или "DO".

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

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

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

Значение скидки, возвращаемое в виде скалярного числа.

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

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

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

Примеры

свернуть все

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

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

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

BarrierOpt = fininstrument("Barrier",'Strike',45,'ExerciseDate',datetime(2019,1,1),'OptionType',"call",'ExerciseStyle',"american",'BarrierType',"DO",'BarrierValue',40,'Name',"barrier_option")
BarrierOpt = 
  Barrier with properties:

       OptionType: "call"
           Strike: 45
      BarrierType: "do"
     BarrierValue: 40
           Rebate: 0
    ExerciseStyle: "american"
     ExerciseDate: 01-Jan-2019
             Name: "barrier_option"

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

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

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

     Volatility: 0.3000
    Correlation: 1

Создать ratecurve Объект

Создание плоского ratecurve объект с использованием ratecurve.

Settle = datetime(2018,1,1);
Maturity = datetime(2023,1,1);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2023
                Rates: 0.0350
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

outPricer = finpricer("FiniteDifference",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',50)
outPricer = 
  FiniteDifference with properties:

     DiscountCurve: [1x1 ratecurve]
             Model: [1x1 finmodel.BlackScholes]
         SpotPrice: 50
    GridProperties: [1x1 struct]
      DividendType: "continuous"
     DividendValue: 0

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

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

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

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

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

    8.5014    0.85673    0.0057199    5.0388    -1.8461    26.238    6.1837

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

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

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

BarrierOpt = fininstrument("Barrier",'Strike',45,'ExerciseDate',datetime(2019,1,1),'OptionType',"call",'ExerciseStyle',"american",'BarrierType',"DO",'BarrierValue',40,'Name',"barrier_option")
BarrierOpt = 
  Barrier with properties:

       OptionType: "call"
           Strike: 45
      BarrierType: "do"
     BarrierValue: 40
           Rebate: 0
    ExerciseStyle: "american"
     ExerciseDate: 01-Jan-2019
             Name: "barrier_option"

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

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

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

     Volatility: 0.3000
    Correlation: 1

Создать ratecurve Объект

Создание плоского ratecurve объект с использованием ratecurve.

Settle = datetime(2018,1,1);
Maturity = datetime(2023,1,1);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2023
                Rates: 0.0350
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

NumPeriods = 15;
EQPPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',1000,'PricingMethod',"EqualProbability",'Maturity',datetime(2019,1,1),'NumPeriods',NumPeriods)
EQPPricer = 
  EQPTree with properties:

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

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

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

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

[Price, outPR] = price(EQPPricer,BarrierOpt,["all"])
Price = 956.5478
outPR = 
  priceresult with properties:

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

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

    956.55      1      9.3133e-18    -6.8212e-09    1.0454    43.45    -1.5208

outPR.PricerData.PriceTree
ans = struct with fields:
     PTree: {1x16 cell}
    ExTree: {1x16 cell}
      tObs: [1x16 double]
      dObs: [1x16 datetime]
     Probs: [2x15 double]

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

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

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

BarrierOpt = fininstrument("Barrier",'Strike',45,'ExerciseDate',datetime(2019,1,1),'OptionType',"call",'ExerciseStyle',"american",'BarrierType',"DO",'BarrierValue',40,'Name',"barrier_option")
BarrierOpt = 
  Barrier with properties:

       OptionType: "call"
           Strike: 45
      BarrierType: "do"
     BarrierValue: 40
           Rebate: 0
    ExerciseStyle: "american"
     ExerciseDate: 01-Jan-2019
             Name: "barrier_option"

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

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

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

     Volatility: 0.3000
    Correlation: 1

Создать ratecurve Объект

Создание плоского ratecurve объект с использованием ratecurve.

Settle = datetime(2018,1,1);
Maturity = datetime(2023,1,1);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2023
                Rates: 0.0350
               Settle: 01-Jan-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(2019,1,1))
outPricer = 
  GBMMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 200
    SimulationDates: 01-Jan-2019
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.BlackScholes]
       DividendType: "continuous"
      DividendValue: 0

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

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

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

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

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

    156.63    1.0004    -7.6028e-12    1.2774    43.45      0      0.67904

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

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

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

BarrierOpt = fininstrument("Barrier",'Strike',45,'ExerciseDate',datetime(2019,1,1),'OptionType',"call",'ExerciseStyle',"american",'BarrierType',"DO",'BarrierValue',40,'Name',"barrier_option")
BarrierOpt = 
  Barrier with properties:

       OptionType: "call"
           Strike: 45
      BarrierType: "do"
     BarrierValue: 40
           Rebate: 0
    ExerciseStyle: "american"
     ExerciseDate: 01-Jan-2019
             Name: "barrier_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,1,1);
Maturity = datetime(2023,1,1);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2023
                Rates: 0.0350
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",HestonModel,'SpotPrice',200,'simulationDates',datetime(2019,1,1))
outPricer = 
  HestonMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 200
    SimulationDates: 01-Jan-2019
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.Heston]
       DividendType: "continuous"
      DividendValue: 0

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

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

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

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

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

     157     1.0022    -1.08e-12    1.2768    43.45      0      2.7882    0.0013677

Подробнее

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

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