price

Вычислите цену для инструмента капитала с 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 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-by- 1 или 1-by- 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 - Структура для более ценовых данных

Примечание

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

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте