price

Вычислите цену за процентную ставку, акцию или инструмент кредитного дериватива с Analytic калькулятор цен

Описание

пример

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

Analytic калькулятор цен поддерживает следующие объекты калькулятора цен:

пример

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить европейское осуществление Spread инструмент, когда вы используете BlackScholes модель и BjerksundStensland метод ценообразования.

Создайте Spread Инструментальный объект

Используйте fininstrument создать Spread инструментальный объект.

SpreadOpt = fininstrument("Spread",'Strike',5,'ExerciseDate',datetime(2021,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"spread_option")
SpreadOpt = 
  Spread with properties:

       OptionType: "put"
           Strike: 5
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2021
             Name: "spread_option"

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

Используйте finmodel создать BlackScholes объект модели.

BlackScholesModel = finmodel("BlackScholes",'Volatility',[0.2,0.1])
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: [0.2000 0.1000]
    Correlation: [2x2 double]

Создайте 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"

Создайте BjerksundStensland Объект калькулятора цен

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

outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',[100,105],'DividendValue',[0.09,0.17],'PricingMethod',"BjerksundStensland")
outPricer = 
  BjerksundStensland with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

outPR.Results
ans=1×7 table
    Price            Delta                    Gamma                   Lambda                Vega          Theta       Rho  
    ______    ____________________    ______________________    __________________    ________________    ______    _______

    7.0596    -0.23249     0.27057    0.0069887    0.0055319    -3.2932     3.8327    41.938    18.303    1.1011    -5.6943

Входные параметры

свернуть все

Объект Pricer (ранее созданное использование finpricer) в виде скаляра. Поддерживаемые объекты калькулятора цен:

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

Объект Instrument (ранее созданное использование fininstrument) в виде скаляра или вектора.

Поддерживаемые инструментальные объекты с помощью скаляра или вектора:

Поддерживаемый инструментальный объект использование скаляра:

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

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

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

inpPricer ОбъектПоддерживаемая чувствительность
BjerksundStensland{'delta','gamma','vega', 'theta','rho','price','lambda'}
IkedaKunitomo{'delta','gamma','vega','theta','rho','price','lambda'}
Black'price'
BlackScholes{'delta','gamma','vega','theta','rho','price','lambda'}
CDSBlack'price'
ConzeViswanathan{'delta','gamma','vega','theta','rho','price','lambda}'
GoldmanSosinGatto{'delta','gamma','vega','theta','rho','price','lambda}'
HullWhite'price'
Heston'price'
KemnaVorst{'delta','gamma','vega','theta','rho','price','lambda'}
Kirk{'delta','gamma','vega','theta','rho','price','lambda'}
Levy{'delta','gamma','vega','theta','rho','price','lambda'}
Normal'price'
RollGeskeWhaley{'delta','gamma','vega','theta','rho','price','lambda'}
SABR'price'
TurnbullWakeman{'delta','gamma','vega','theta','rho','price',}

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

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

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

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

свернуть все

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

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

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

  • PriceResult.PricerData — Структура для данных о калькуляторе цен

    Примечание

    При оценке VarianceSwap, PriceResult.FairVariance возвращен.

Примечание

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

Введенный в R2020a