price

Вычислите цену для инструмента капитала с AssetTree калькулятор цен

Описание

пример

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

пример

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

Примеры

свернуть все

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

Создание Vanilla Объект прибора

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

VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2019,5,1),'Strike',29,'OptionType',"put",'ExerciseStyle',"european",'Name',"vanilla_option")
VanillaOpt = 
  Vanilla with properties:

       OptionType: "put"
    ExerciseStyle: "european"
     ExerciseDate: 01-May-2019
           Strike: 29
             Name: "vanilla_option"

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

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

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.25)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.2500
    Correlation: 1

Создание ratecurve Объект

Создайте плоскую ratecurve объект, использующий ratecurve.

Settle = datetime(2018,1,1);
Maturity = datetime(2020,1,1);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2020
                Rates: 0.0350
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создание AssetTree Объект прейскуранта

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

LRPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',30,'PricingMethod',"LeisenReimer",'Maturity',datetime(2019,5,1),'NumPeriods',15)
LRPricer = 
  LRTree with properties:

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

Ценовые Vanilla Инструмент

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

[Price, outPR] = price(LRPricer,VanillaOpt,"all")
Price = 2.2542
outPR = 
  priceresult with properties:

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

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

    2.2542    -0.33628    0.044039    12.724    -4.469    -16.433    -0.76073

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

свернуть все

Объект Pricer, заданный как скалярное AssetTree объект прейскуранта. Использовать finpricer чтобы создать AssetTree объект прейскуранта.

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

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

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

(Необязательно) Список чувствительности для вычисления, заданный как NOUT-by- 1 или 1-by- NOUT массив ячеек из векторов символов или строковых массивов с возможными значениями 'Price', 'Delta', 'Gamma', 'Vega', 'Theta', 'Rho', 'Lambda', и 'All'.

inpSensitivity = {'All'} или inpSensitivity = ["All"] указывает, что выход 'Delta', 'Gamma', 'Vega', 'Theta', 'Rho', 'Lambda', и 'Price'. Использование этого синтаксиса аналогично указанию inpSensitivity включать каждую чувствительность.

inpInstrumentПоддерживаемые чувствительности
Asian{'delta','gamma','vega','theta','rho','lambda','price'}
Barrier{'delta','gamma','vega','theta','rho','lambda','price'}
Lookback{'delta','gamma','vega','theta','rho','lambda','price'}
Vanilla{'delta','gamma','vega','theta','rho','lambda','price'}

Примечание

Чувствительности вычисляются на основе сдвигов выражения 1 базисной точки, где ShiftValue = 1/10000. Все чувствительности возвращаются как долларовые чувствительности. Чтобы найти чувствительность за доллар, разделите чувствительность на соответствующие цены инструмента.

Пример: inpSensitivity = {'delta','gamma','vega','price'}

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

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

свернуть все

Цена инструмента, возвращенная в виде числа.

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

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

  • PriceResult.PricerData - Структура для ценовых данных, которая зависит от инструмента, который оценивается

    Asian и Lookback иметь пустой ([]) PricerData поле, поскольку функции ценообразования для этих инструментов не могут однозначно присвоить цену любому узлу, кроме корневого узла.

    Vanilla и Barrier иметь следующие общие поля для PriceResult.PricerData.PriceTree:

    • PTree содержит чистые цены.

    • ExTree содержит массивы индикаторов упражнений. Каждый элемент массива ячеек является массивом, где 1 указывает, что опция выполняется и 0 указывает, что опция не выполняется.

    • dObs содержит дату каждого уровня дерева.

    • tObs содержит время наблюдения.

    • Probs содержит массивы вероятностей. Каждый элемент массива ячеек содержит вероятности перехода вверх, посередине и вниз для каждого узла уровня.

Введенный в R2021a