Rubinstein

Создайте Rubinstein объект калькулятора цен для Cliquet инструмент с помощью BlackScholes модель

Описание

Создайте и оцените Cliquet инструментальный объект с BlackScholes модель и Rubinstein метод ценообразования с помощью этого рабочего процесса:

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

  2. Использование finmodel задавать BlackScholes модель для Cliquet инструментальный объект.

  3. Использование finpricer задавать Rubinstein объект калькулятора цен для Cliquet инструментальный объект.

Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.

Для получения дополнительной информации о доступных инструментах, моделях и методах ценообразования для Cliquet инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

RubinsteinPricerObj = finpricer(PricerType,'DiscountCurve',ratecurve_obj,'Model',model,'SpotPrice',spotprice_value) создает Rubinstein объект калькулятора цен путем определения PricerType и устанавливает свойства для необходимых аргументов пары "имя-значение" DiscountCurve, Model, и SpotPrice.

пример

RubinsteinPricerObj = finpricer(___,Name,Value) устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, RubinsteinPricerObj = finpricer("Analytic",'DiscountCurve',ratecurve_obj,'Model',BSModel,'SpotPrice',1000,'DividendType',"continuous",'DividendValue',100,'PricingMethod',"Rubinstein") создает Cliquet объект калькулятора цен.

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

развернуть все

Тип калькулятора цен в виде строки со значением "Analytic" или вектор символов со значением 'Analytic'.

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

Rubinstein Аргументы в виде пар имя-значение

Задайте требуемые и дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: RubinsteinPricerObj = finpricer("Analytic",'DiscountCurve',ratecurve_obj,'Model',BSModel,'SpotPrice',1000,'DividendType',"continuous",'DividendValue',100,'PricingMethod',"Rubinstein")
Необходимый Rubinstein Аргументы в виде пар имя-значение

развернуть все

ratecurve объект для дисконтирования потоков наличности в виде разделенной запятой пары, состоящей из 'DiscountCurve' и имя ранее созданного ratecurve объект.

Примечание

Задайте плоский ratecurve объект для DiscountCurve. Если вы используете неплоский ratecurve объект, программное обеспечение использует уровень в ratecurve объект в Maturity и принимает, что значение является постоянным для жизни опции акции.

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

Модель в виде разделенной запятой пары, состоящей из 'Model' и имя ранее созданного BlackScholes использование объекта модели finmodel.

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

Текущая цена базового актива в виде разделенной запятой пары, состоящей из 'SpotPrice' и скаляр, неотрицательный числовой.

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

Дополнительный Rubinstein Аргументы в виде пар имя-значение

развернуть все

Тип дивиденда в виде разделенной запятой пары, состоящей из 'DividendType' и строка или вектор символов для непрерывной дивидендной доходности.

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

Дивидендная доходность для базового запаса в виде разделенной запятой пары, состоящей из 'DividendValue' и числовой скаляр.

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

Аналитический метод ценообразования в виде разделенной запятой пары, состоящей из 'PricingMethod' и вектор символов или строка.

Примечание

Метод ценообразования по умолчанию для BlackScholes моделью является BlackScholes калькулятор цен.

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

Свойства

развернуть все

ratecurve объект для дисконтирования потоков наличности, возвращенных как ratecurve объект.

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

Модель, возвращенная как BlackScholes объект модели.

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

Текущая цена базового актива, возвращенного как скаляр, неотрицательный числовой.

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

Это свойство доступно только для чтения.

Тип дивиденда, возвращенный как строка.

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

Дивидендная доходность для базового запаса, возвращенного как числовой скаляр.

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

Аналитический метод ценообразования, возвращенный как строка.

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

Функции объекта

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

Примеры

свернуть все

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

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

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

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

ResetDates = Settle + years(0:0.25:1);  
CliquetOpt = fininstrument("Cliquet",'ResetDates',ResetDates,'InitialStrike',[140;150;160],'ExerciseStyle',"european",'Name',"cliquet_option")
CliquetOpt=3×1 object
  3x1 Cliquet array with properties:

    OptionType
    ExerciseStyle
    ResetDates
    LocalCap
    LocalFloor
    GlobalCap
    GlobalFloor
    ReturnType
    InitialStrike
    Name

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

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

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

     Volatility: 0.2800
    Correlation: 1

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

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

outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',135,'DividendValue',0.025,'PricingMethod',"Rubinstein")
outPricer = 
  Rubinstein with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.BlackScholes]
        SpotPrice: 135
    DividendValue: 0.0250
     DividendType: "continuous"

Цена Cliquet Инструменты

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

[Price, outPR] = price(outPricer,CliquetOpt,"all")
Price = 3×1

   28.1905
   25.3226
   23.8168

outPR=3×1 object
  3x1 priceresult array with properties:

    Results
    PricerData

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

    28.191    0.59697    0.02066    2.8588    105.38    60.643    -14.62

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

    25.323    0.41949    0.016816    2.2364    100.47    55.367    -11.708

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

    23.817    0.29729    0.011132    1.6851    93.219    51.616    -7.511

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