exponenta event banner

цена

Расчетная цена долевого инструмента с AssetMonteCarlo калькулятор цен

Описание

пример

[Price,PriceResult] = price(inpPricer,inpInstrument) вычисляет цену долевого инструмента и соответствующую информацию о расчете цены на основе объекта расчета цены inpPricer и объект прибора inpInstrument.

пример

[Price,PriceResult] = price(___,inpSensitivity) добавляет необязательный аргумент для указания чувствительности. Используйте этот синтаксис с комбинацией входных аргументов в предыдущем синтаксисе.

Примеры

свернуть все

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

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

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

TouchOpt = fininstrument("Touch",'ExerciseDate',datetime(2022,9,15),'BarrierValue',110,'PayoffValue',140,'BarrierType',"OT",'Name',"touch_option")
TouchOpt = 
  Touch with properties:

    ExerciseDate: 15-Sep-2022
    BarrierValue: 110
     PayoffValue: 140
     BarrierType: "ot"
      PayoffType: "expiry"
            Name: "touch_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,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",HestonModel,'SpotPrice',112,'simulationDates',datetime(2022,9,15))
outPricer = 
  HestonMonteCarlo with properties:

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

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

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

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

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

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

    63.525    -7.2363    1.0541    -12.758    -320.21    3.5527    418.94    8.1498

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

свернуть все

Объект Pricer, указанный как ранее созданный AssetMonteCarlo объект прайсера. Создание объекта прайсера с помощью finpricer.

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

Объект инструмента, заданный как скаляр или вектор ранее созданных объектов инструмента. Создание объектов инструмента с помощью fininstrument. Поддерживаются следующие объекты приборов:

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

(Необязательно) Список вычисляемых чувствительности, указанный как NOUTоколо-1 или 1около-NOUT массив ячеек символьных векторов или строковый массив.

Поддерживаемые чувствительности зависят от метода ценообразования.

inpInstrument ОбъектПоддерживаемые чувствительности
Vanilla{'delta','gamma','vega', 'theta','rho','price','lambda'}
Lookback{'delta','gamma','vega','theta','rho','price','lambda'}
Barrier{'delta','gamma','vega','theta','rho','price','lambda'}
Asian{'delta','gamma','vega','theta','rho','price','lambda'}
Spread{'delta','gamma','vega','theta','rho','price','lambda}'
DoubleBarrier{'delta','gamma','vega','theta','rho','price','lambda}'
Binary{'delta','gamma','vega','theta','rho','price','lambda'}
Touch{'delta','gamma','vega','theta','rho','price','lambda'}
DoubleTouch{'delta','gamma','vega','theta','rho','price','lambda'}

inpSensitivity = {'All'} или inpSensitivity = ["All"] указывает, что возвращаются все чувствительности для метода ценообразования. Это то же самое, что указать inpSensitivity для включения каждой чувствительности.

Пример: inpSensitivity = ["delta","gamma","vega","lambda","rho","theta","price"]

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

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

свернуть все

Цена инструмента, возвращенная в виде цифры.

Результат цены, возвращенный как PriceResult объект. Объект имеет следующие поля:

  • PriceResult.Results - Таблица результатов, включающая чувствительность (если указано inpSensitivity)

  • PriceResult.PricerData - Структура данных прайсера

Примечание

inpPricer опции, которые не поддерживают чувствительность, не возвращают PriceResult. Например, нет PriceResult возвращается при использовании Black, CDSBlack, HullWhite, Normal, или SABR способ ценообразования.

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