price

Вычислите цену за Vanilla, Barrier, Lookback, Asian, Spread, DoubleBarrier, Touch, DoubleTouch, или Binary инструмент с 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 объект калькулятора цен и использование 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

Объект Instrument в виде ранее созданного инструментального объекта. Создайте инструментальное использование объекта 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