exponenta event banner

BlackScholes

Создать BlackScholes объект pricer для Vanilla, Barrier, Touch, DoubleTouch, или Binary прибор с использованием BlackScholes модель

Описание

Создать и оценить Vanilla, Barrier, Touch, DoubleTouch, или Binary объект прибора с BlackScholes модель и BlackScholes метод ценообразования с использованием этого потока операций:

  1. Использовать fininstrument для создания Vanilla, Barrier, DoubleTouch, Binary или, Touch объект прибора.

  2. Использовать finmodel для указания BlackScholes модель для Vanilla, Barrier, Touch, DoubleTouch, или Binary инструмент.

  3. Использовать finpricer для указания BlackScholes ценовой объект для Vanilla, Barrier, Touch, DoubleTouch, или Binary инструмент.

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

Для получения дополнительной информации о доступных инструментах, моделях и методах ценообразования для Vanilla, Lookback, Barrier, Asian, Spread, Touch, DoubleTouch, или Binary см. раздел Выбор приборов, моделей и прайсеров.

Создание

Описание

пример

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

пример

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

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

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

Тип прайсера, указанный как строка со значением "Analytic" или символьный вектор со значением 'Analytic'.

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

BlackScholes Аргументы пары «имя-значение»

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

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

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

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

Примечание

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

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

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

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

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

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

Дополнительный BlackScholes Аргументы пары «имя-значение»

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

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

Примечание

При цене валют с использованием Vanilla прибор, DividendType должно быть "continuous" и DividendValue - годовая безрисковая процентная ставка в иностранном государстве.

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

Размер дивидендов или график дивидендов для базовой акции, указанный как пара, разделенная запятыми, состоящая из 'DividendValue' и скалярное число для суммы дивидендов или график для графика дивидендов.

Примечание

При цене валют с использованием Vanilla прибор, DividendType должно быть "continuous" и DividendValue - годовая безрисковая процентная ставка в иностранном государстве.

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

Свойства

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

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

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

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

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

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

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

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

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

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

Размер дивидендов или график дивидендов для базовой акции, возвращаемый как скалярное число для суммы дивидендов или график для графика дивидендов.

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

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

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

Примеры

свернуть все

В этом примере показан поток операций для оценки Vanilla инструмент при использовании BlackScholes модель и BlackScholes способ ценообразования.

Создать Vanilla Объект КИП

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

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

       OptionType: "put"
    ExerciseStyle: "european"
     ExerciseDate: 01-May-2018
           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(2019,1,1);
Rate = 0.05;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC = 
  ratecurve with properties:

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

Создать BlackScholes Объект прайсера

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

outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',30,'DividendValue',0.045)
outPricer = 
  BlackScholes with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    1.2046    -0.36943    0.086269    -9.3396    6.4702    -4.0959    -2.3107

В этом примере показан поток операций для оценки Vanilla инструмент для обмена валюты (FX) при использовании BlackScholes модель и BlackScholes способ ценообразования. Предположим, что текущий обменный курс составляет $0,52 и имеет волатильность 12% в год. Годовая постоянно усложняемая иностранная безрисковая ставка составляет 8% в год.

Создать Vanilla Объект КИП

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

VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2022,9,15),'Strike',.50,'OptionType',"put",'ExerciseStyle',"european",'Name',"vanilla_fx_option")
VanillaOpt = 
  Vanilla with properties:

       OptionType: "put"
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
           Strike: 0.5000
             Name: "vanilla_fx_option"

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

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

Sigma = .12;
BlackScholesModel = finmodel("BlackScholes",'Volatility',Sigma)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.1200
    Correlation: 1

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

Создать ratecurve объект с использованием ratecurve.

Settle = datetime(2018,9,15);
Type = 'zero';
ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = Settle + ZeroTimes;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создать BlackScholes Объект прайсера

Использовать finpricer для создания BlackScholes pricer object и используйте ratecurve объект для 'DiscountCurve' аргумент пары имя-значение. При цене валют с использованием Vanilla прибор, DividendType должно быть 'continuous' и DividendValue - годовая безрисковая процентная ставка в иностранном государстве.

ForeignRate = 0.08;
outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',.52,'DividendType',"continuous",'DividendValue',ForeignRate)
outPricer = 
  BlackScholes with properties:

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

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

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

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

       Results: [1x7 table]
    PricerData: []

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

    0.11229    -0.59114    1.5562    -3.7706    0.20212    -1.6799    -0.023676

Представлен в R2020a