Barrier

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 pricer поддерживает только "European" упражнения и FiniteDifference прейскурант поддерживает "American" или "European" упражнение.

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

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

  • "UI" - Подача вверх

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

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

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

  • "DI" - Нисходящий ввод

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

  • "DO" - Нисходящий

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

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

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

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

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

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

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

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

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

Свойства

расширить все

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

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

Дата выполнения опции, возвращенная как datetime.

Типы данных: 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 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 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 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