BlackScholes

Создание BlackScholes объект ценника для 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 объект прейскуранта путем определения 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 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 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