exponenta event banner

цена

Расчетная цена долевого инструмента с 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 объект pricer для дерева акций 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около-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 базисной точки, где ShireValue = 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