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: [02-Feb-2018 08:00:00    06-Mar-2018 16:00:00    ...    ]

Цена 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

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

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

(Необязательно) Список чувствительности, чтобы вычислить в виде NOUT- 1 или 1- 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