exponenta event banner

BlackScholes

Создать BlackScholes объект модели для Asian, Barrier, DoubleBarrier, Lookback, Spread, Vanilla, Touch, DoubleTouch, или Binary инструмент

Описание

Создать и оценить Vanilla, Lookback, Barrier, DoubleBarrier Asian, Spread, Touch, DoubleTouch, или Binary объект прибора с BlackScholes модель с использованием этого рабочего процесса:

  1. Использовать fininstrument для создания Vanilla, Lookback, Barrier, Asian, Spread, DoubleBarrier, Binary, Touch, или DoubleTouch объект прибора.

  2. Использовать finmodel для указания BlackScholes объект модели для Vanilla, Lookback, Barrier, DoubleBarrier, Asian, Spread, Touch, DoubleTouch, или Binary инструмент.

  3. Использовать finpricer для указания поддерживаемого метода ценообразования. Для получения дополнительной информации о доступных методах ценообразования для Vanilla, Lookback, Barrier, DoubleBarrier, Asian, Spread, Touch, DoubleTouch, или Binary инструмент при использовании BlackScholes см. раздел Выбор инструментов, моделей и прайсеров.

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

Для получения дополнительной информации о доступных методах ценообразования для Vanilla, Lookback, Barrier, DoubleBarrier, Asian, Spread, Touch, DoubleTouch, или Binary инструмент при использовании BlackScholes см. раздел Выбор инструментов, моделей и прайсеров.

Создание

Описание

пример

BlackScholesModelObj = finmodel(ModelType,'Volatility',volatility_value) создает BlackScholes объект модели путем указания ModelType и задает свойства для требуемого аргумента пары имя-значение Volatility.

пример

BlackScholesModelObj = finmodel(___,Name,Value) задает дополнительные свойства, используя дополнительные пары имя-значение в дополнение к требуемым аргументам в предыдущем синтаксисе. Например, BlackScholesModelObj = finmodel("BlackScholes",'Volatility',0.032) создает BlackScholes объект модели. Можно указать несколько аргументов пары имя-значение.

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

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

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

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

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

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

Пример: BlackScholesModelObj = finmodel("BlackScholes",'Volatility',0.032)
Необходимый BlackScholes Аргументы пары «имя-значение»

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

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

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

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

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

Корреляция между базовыми ценами активов, указанными как пара, разделенная запятыми, состоящая из 'Correlation' и полуопределенную матрицу. Дополнительные сведения о создании положительной полуопределенной матрицы см. в разделе nearcorr.

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

Свойства

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

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

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

Корреляция между базовыми активами, возвращаемая в виде полуопределённой матрицы.

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

Примеры

свернуть все

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

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

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

AsianOpt = fininstrument("Asian",'ExerciseDate',datetime(2022,9,15),'Strike',105,'OptionType',"put",'ExerciseStyle',"european",'Name',"asian_option")
AsianOpt = 
  Asian with properties:

          OptionType: "put"
              Strike: 105
         AverageType: "arithmetic"
        AveragePrice: 0
    AverageStartDate: NaT
       ExerciseStyle: "european"
        ExerciseDate: 15-Sep-2022
                Name: "asian_option"

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

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

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

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

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

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

outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100,'PricingMethod',"TurnbullWakeman")
outPricer = 
  TurnbullWakeman with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    11.225    -0.38072    0.01087    -3.3917    44.242    -0.5256    -116.88

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

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

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

DoubleBarrierOpt = fininstrument("DoubleBarrier",'Strike',100,'ExerciseDate',datetime(2020,8,15),'OptionType',"call",'ExerciseStyle',"american",'BarrierType',"DKO",'BarrierValue',[110 80],'Name',"doublebarrier_option")
DoubleBarrierOpt = 
  DoubleBarrier with properties:

       OptionType: "call"
           Strike: 100
     BarrierValue: [110 80]
    ExerciseStyle: "american"
     ExerciseDate: 15-Aug-2020
      BarrierType: "dko"
           Rebate: [0 0]
             Name: "doublebarrier_option"

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

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

BlackScholesModel = finmodel("BlackScholes","Volatility",.3)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.3000
    Correlation: 1

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

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

Settle = datetime(2017,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-2017
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

ExerciseDate = datetime(2020,08,15);
Settle = datetime(2017,9,15);
outPricer = finpricer("AssetMonteCarlo","DiscountCurve",myRC,"Model",BlackScholesModel,'SpotPrice',100,'simulationDates', Settle+days(1):days(1):ExerciseDate);

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

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

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

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

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

    6.9563    0.23644    -0.11701    3.399     0.14976    -99.727    -8.344

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

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

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

VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2019,5,1),'Strike',29,'OptionType',"put",'ExerciseStyle',"european",'Name',"vanilla_option")
VanillaOpt = 
  Vanilla with properties:

       OptionType: "put"
    ExerciseStyle: "european"
     ExerciseDate: 01-May-2019
           Strike: 29
             Name: "vanilla_option"

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

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

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

     Volatility: 0.2500
    Correlation: 1

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

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

Settle = datetime(2018,1,1);
Maturity = datetime(2020,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-2020
                Rates: 0.0350
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

LRPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',30,'PricingMethod',"LeisenReimer",'Maturity',datetime(2019,5,1),'NumPeriods',15)
LRPricer = 
  LRTree with properties:

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

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

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

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

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

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

    2.2542    -0.33628    0.044039    12.724    -4.469    -16.433    -0.76073

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