exponenta event banner

Азиат

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

Описание

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

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

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

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

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

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

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

Создание

Описание

пример

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

Asian инструмент поддерживает арифметические и геометрические средние цены азиатские опционы. Азиатские опционы средней цены также известны как азиатские опционы с фиксированной забастовкой.

пример

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

Средние типы, указанные как разделенная запятыми пара, состоящая из 'AverageType' и скалярный строковый или символьный вектор. Использовать "arithmetic" для среднего арифметического или "geometric" для среднего геометрического значения.

Примечание

При использовании RollGeskeWhaley прайсер, AverageType должно быть "geometric".

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

Средние типы, возвращаемые в виде скалярной строки со значением "arithmetic" для среднего арифметического или "geometric" для среднего геометрического.

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

Средняя цена базового актива на уровне Settle, возвращается в виде скалярного числа.

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

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

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

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

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

Примеры

свернуть все

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

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

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

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

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

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

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',.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"

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

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

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

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    56.707    -0.3155    0.0014381    -5.5637    408.85    -2.9341    -832.53

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

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

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

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

          OptionType: "put"
              Strike: 1000
         AverageType: "arithmetic"
        AveragePrice: 0
    AverageStartDate: NaT
       ExerciseStyle: "european"
        ExerciseDate: 15-Sep-2022
                Name: "asian_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 объект pricer для дерева акций CRR и используйте ratecurve объект для 'DiscountCurve' аргумент пары имя-значение.

NumPeriods = 15;
CRRPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',1000,'PricingMethod',"CoxRossRubinstein",'Maturity',datetime(2022,9,15),'NumPeriods',NumPeriods)
CRRPricer = 
  CRRTree with properties:

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

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    54.922    -0.32119    0.0581    393.85    -5.8481    -846.57    -2.4325

В этом примере показан поток операций для оценки Asian инструмент для арифметического среднего валютного опциона при использовании BlackScholes модель и Levy способ ценообразования. Предположим, что текущий курс составляет $0,52 и имеет волатильность 12% годовых. Годовая постоянно усложняемая иностранная безрисковая ставка составляет 8% годовых.

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

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

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

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

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

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

Sigma = .12;
BlackScholesModel = finmodel("BlackScholes",'Volatility',Sigma)
BlackScholesModel = 
  BlackScholes with properties:

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

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

Использовать finpricer для создания Levy pricer object и используйте ratecurve объект для 'DiscountCurve' аргумент пары имя-значение. При цене валют с использованием азиатского инструмента для арифметического варианта средней валюты DividendType должно быть 'continuous' и DividendValue - годовая безрисковая процентная ставка в иностранном государстве.

ForeignRate = 0.08;
outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',.52,'DividendType',"continuous",'DividendValue',ForeignRate,'PricingMethod',"Levy")
outPricer = 
  Levy with properties:

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

Цена Asian Прибор FX

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

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

       Results: [1x7 table]
    PricerData: []

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

    0.15161    -0.78532    0.37534    -2.6935    0.015668    -0.0038317    -1.3974

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

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

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

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

          OptionType: "put"
              Strike: 1000
         AverageType: "arithmetic"
        AveragePrice: 0
    AverageStartDate: NaT
       ExerciseStyle: "european"
        ExerciseDate: 15-Sep-2022
                Name: "asian_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 pricer object и используйте 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

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

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

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

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

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

    682.34    -0.93511    -5.6843e-14    -0.27409    -3129.1    27.433    -1.2121

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

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

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

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

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

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

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

MertonModel = finmodel("Merton",'Volatility',0.45,'MeanJ',0.02,'JumpVol',0.07,'JumpFreq',0.09)
MertonModel = 
  Merton with properties:

    Volatility: 0.4500
         MeanJ: 0.0200
       JumpVol: 0.0700
      JumpFreq: 0.0900

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

outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",MertonModel,'SpotPrice',200,'simulationDates',datetime(2022,9,15))
outPricer = 
  MertonMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 200
    SimulationDates: 15-Sep-2022
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.Merton]
       DividendType: "continuous"
      DividendValue: 0

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

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

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

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

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

    683.2    -0.9047    -1.9895e-13    -0.26484    -3110.3    25.93    20.227

Подробнее

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

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