Vanilla объект прибора
Создайте и оцените Vanilla объект инструмента, использующий этот рабочий процесс:
Использовать fininstrument для создания Vanilla объект прибора.
Использовать finmodel для задания BlackScholes, Bachelier, Heston, Bates, Merton, или Dupire модель для Vanilla прибора.
При использовании BlackScholes модель, использование finpricer для задания FiniteDifference, BlackScholes, BjerksundStensland, RollGeskeWhaley, VannaVolga, AssetTree, или AssetMonteCarlo метод ценообразования для Vanilla прибора.
При использовании Heston, Bates, или Merton модель, использование finpricer для задания FiniteDifference, NumericalIntegration, FFT, или AssetMonteCarlo метод ценообразования для Vanilla прибора.
При использовании Dupire модель, использование finpricer для задания FiniteDifference метод ценообразования для Vanilla прибора.
При использовании Bachelier модель, использование finpricer для задания AssetMonteCarlo метод ценообразования для Vanilla прибора.
Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Vanilla инструмент, см. «Выбор инструментов», «Модели» и «Цены».
создает VanillaObj = fininstrument(InstrumentType,'Strike',strike_value,'ExerciseDate',exercise_date)Vanilla объект путем определения InstrumentType и устанавливает свойства для необходимых аргументов пары "имя-значение" Strike и ExerciseDate. Для получения дополнительной информации о Vanilla инструмент, см. Подробнее о.
устанавливает необязательные свойства с помощью дополнительных пар "имя-значение" в дополнение к необходимым аргументам в предыдущем синтаксисе. Для примера, VanillaObj = fininstrument(___,Name,Value)VanillaObj = fininstrument("Vanilla",'Strike',100,'ExerciseDate',datetime(2019,1,30),'OptionType',"put",'ExerciseStyle',"American",'Name',"vanilla_instrument") создает Vanilla поставьте опцию с американскими упражнениями. Можно задать несколько аргументы пары "имя-значение".
InstrumentType - Тип КИПиА"Vanilla" | вектор символов с 'Vanilla' значенийТип инструмента, заданный как строка со значением "Vanilla" или вектор символов со значением 'Vanilla'.
Типы данных: char | string
Vanilla Аргументы в виде пар имя-значениеУкажите требуемые и необязательные разделенные запятой пары Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
VanillaObj = fininstrument("Vanilla",'Strike',100,'ExerciseDate',datetime(2019,1,30),'OptionType',"put",'ExerciseStyle',"American",'Name',"vanilla_instrument")Vanilla Аргументы в виде пар имя-значение'Strike' - значение цены опционной доставкиЗначение цены доставки опции, заданное как разделенная разделенными запятой парами, состоящая из 'Strike' и скаляр неотрицательное числовое значение.
Примечание
При использовании "Bermudan"
ExerciseStyle с FiniteDifference цена, Strike является вектором.
Типы данных: double
'ExerciseDate' - Дата выполнения опцииExerciseStyle является "Bermudan"Дата выполнения опции, заданная как разделенная разделенными запятой парами, состоящая из 'ExerciseDate' и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Примечание
Для европейской опции существует только один ExerciseDate на дату истечения срока действия опции.
При использовании "Bermudan"
ExerciseStyle с FiniteDifference цена, ExerciseDate является вектором.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime потому что ExerciseDate свойство сохранено как datetime.
Типы данных: double | char | string | datetime
Vanilla Аргументы в виде пар имя-значение'OptionType' - Тип опции"call" (по умолчанию) | строку со значением "call" или "put" | вектор символов с 'call' значений или 'put'Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'OptionType' и скалярную строку или вектор символов.
Примечание
Когда вы используете RollGeskeWhaley прейскурант с Vanilla опция, OptionType должен быть 'call'.
Типы данных: char | string
'ExerciseStyle' - Стиль упражнения опции"European" (по умолчанию) | строку со значением "European", "American", или "Bermudan"
| вектор символов с 'European' значений, 'American', или 'Bermudan'Опция стиль упражнения, заданный как разделенная запятой пара, состоящий из 'ExerciseStyle' и скалярную строку или вектор символов.
Примечание
Когда вы используете BlackScholes прейскурант с Vanilla опция, 'American' тип опции не поддерживается.
Когда вы используете RollGeskeWhaley или BjerksundStensland прейскурант с Vanilla опция, вы должны задать 'American' опция.
Когда вы используете NumericalIntegration прейскурант с Bates, Merton, или Heston модель для Vanilla опция, ExerciseStyle должен быть 'European'.
Когда вы используете FFT прейскурант с Bates, Merton, или Heston модель для Vanilla опция, ExerciseStyle должен быть 'European'.
Когда вы используете AssetMonteCarlo прейскурант с BlackScholes, Bates, Merton, или Heston модель для Vanilla опция, ExerciseStyle можно 'American', 'European', или 'Bermudan'.
Когда вы используете FiniteDifference прейскурант с BlackScholes, Bachelier, Dupire, Bates, Merton, или Heston модель для Vanilla опция, ExerciseStyle можно 'American', 'European', или 'Bermudan'.
Для получения дополнительной информации о ExerciseStyle, см. «Поддерживаемые стили упражнений».
Типы данных: string | char
'Name' - Определяемое пользователем имя прибора" "
(по умолчанию) | строку | вектор символовОпределяемое пользователем имя инструмента, заданное как разделенная разделенными запятой парами, состоящая из 'Name' и скалярную строку или вектор символов.
Типы данных: char | string
Strike - значение цены опционной доставкиОпциональное значение цены доставки, возвращаемое как скалярное неотрицательное числовое значение.
Типы данных: double
ExerciseDate - Дата выполнения опцииДата выполнения опции, возвращенная как datetime.
Типы данных: datetime
OptionType - Тип опции"call" (по умолчанию) | строку со значением "call" или "put"Тип опции, возвращенный как строка со значением "call" или "put".
Типы данных: string
ExerciseStyle - Тип опции"European" (по умолчанию) | строку со значением "European", "American", или "Bermudan"Опция стиле упражнения возвращается как строка со значением "European", "American", или "Bermudan".
Типы данных: string
Name - Определяемое пользователем имя прибора" "
(по умолчанию) | строкуОпределяемое пользователем имя инструмента, возвращаемое как строка.
Типы данных: string
setExercisePolicy | Установите политику упражнений для FixedBondOption, FloatBondOption, или Vanilla инструмент |
Этот пример показывает рабочий процесс, чтобы оценить 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 инструмент, когда вы используете BlackScholes модель и AssetTree метод ценообразования.
Создание 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"
Создание AssetTree Объект прейскуранта
Использование finpricer для создания AssetTree объект цены для дерева собственных средств LR и используйте ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
NumPeriods = 15; LRPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',50,'PricingMethod',"LeisenReimer",'Maturity',datetime(2018,5,1),'NumPeriods',NumPeriods)
LRPricer =
LRTree with properties:
InversionMethod: PP1
Strike: 50
Tree: [1x1 struct]
NumPeriods: 15
Model: [1x1 finmodel.BlackScholes]
DiscountCurve: [1x1 ratecurve]
SpotPrice: 50
DividendType: "continuous"
DividendValue: 0
TreeDates: [1x15 datetime]
LRPricer.Tree
ans = struct with fields:
Probs: [2x15 double]
ATree: {1x16 cell}
dObs: [1x16 datetime]
tObs: [1x16 double]
Ценовые Vanilla Инструмент
Использование price вычислить цену и чувствительность для Vanilla прибора.
[Price, outPR] = price(LRPricer,VanillaOpt,["all"])Price = 3.5022e-06
outPR =
priceresult with properties:
Results: [1x7 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Vega Lambda Rho Theta
__________ ___________ __________ _________ _______ ___________ ___________
3.5022e-06 -1.9331e-06 1.1068e-06 0.0016243 -30.496 -3.6747e-05 -0.00060106
outPR.PricerData.PriceTree
ans = struct with fields:
PTree: {1x16 cell}
ExTree: {1x16 cell}
tObs: [1x16 double]
dObs: [1x16 datetime]
Probs: [2x15 double]
outPR.PricerData.PriceTree.ExTree
ans=1×16 cell array
Columns 1 through 5
{[0]} {[0 0]} {[0 0 0]} {[0 0 0 0]} {[0 0 0 0 0]}
Columns 6 through 8
{[0 0 0 0 0 0]} {[0 0 0 0 0 0 0]} {[0 0 0 0 0 0 0 0]}
Columns 9 through 11
{[0 0 0 0 0 0 0 0 0]} {[0 0 0 0 0 0 0 0 0 0]} {1x11 logical}
Columns 12 through 15
{1x12 logical} {1x13 logical} {1x14 logical} {1x15 logical}
Column 16
{1x16 logical}
Этот пример показывает рабочий процесс, чтобы оценить американскую опцию для Vanilla инструмент, когда вы используете BlackScholes модель и RollGeskeWhaley метод ценообразования.
Создание Vanilla Объект прибора
Использование fininstrument для создания Vanilla объект прибора.
VanillaOpt = fininstrument("Vanilla",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"call",'ExerciseStyle',"american",'Name',"vanilla_option")
VanillaOpt =
Vanilla with properties:
OptionType: "call"
ExerciseStyle: "american"
ExerciseDate: 15-Sep-2022
Strike: 105
Name: "vanilla_option"
Создание BlackScholes Объект модели
Использование finmodel для создания BlackScholes объект модели.
BlackScholesModel = finmodel("BlackScholes","Volatility",0.2)
BlackScholesModel =
BlackScholes with properties:
Volatility: 0.2000
Correlation: 1
Создание 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"
Создание RollGeskeWhaley Объект прейскуранта
Использование finpricer для создания RollGeskeWhaley и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100,'DividendValue',timetable(datetime(2021,6,15),0.25),'PricingMethod',"RollGeskeWhaley")
outPricer =
RollGeskeWhaley with properties:
DiscountCurve: [1x1 ratecurve]
Model: [1x1 finmodel.BlackScholes]
SpotPrice: 100
DividendValue: [1x1 timetable]
DividendType: "cash"
Ценовые Vanilla Инструмент
Использование price вычислить цену и чувствительность для Vanilla прибора.
[Price, outPR] = price(outPricer,VanillaOpt,["all"])Price = 19.9066
outPR =
priceresult with properties:
Results: [1x7 table]
PricerData: []
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Vega Theta Rho
______ _______ _________ ______ ______ _______ ______
19.907 0.66568 0.0090971 3.344 72.804 -3.4537 186.68
Этот пример показывает рабочий процесс, чтобы оценить 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); 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"
Создание 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 FX КИП
Использование price вычислить цену и чувствительность для Vanilla Прибор FX.
[Price, outPR] = price(outPricer,VanillaOpt,["all"])Price = 0.0738
outPR =
priceresult with properties:
Results: [1x7 table]
PricerData: []
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Vega Rho Theta
________ ________ ______ _______ _______ _______ _________
0.073778 -0.49349 2.0818 -4.7899 0.27021 -1.3216 -0.013019
Этот пример показывает рабочий процесс, чтобы оценить американскую опцию для Vanilla инструмент, когда вы используете BlackScholes модель и AssetMonteCarlo метод ценообразования.
Создание Vanilla Объект прибора
Использование fininstrument для создания Vanilla объект прибора.
VanillaOpt = fininstrument("Vanilla",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"call",'ExerciseStyle',"american",'Name',"vanilla_option")
VanillaOpt =
Vanilla with properties:
OptionType: "call"
ExerciseStyle: "american"
ExerciseDate: 15-Sep-2022
Strike: 105
Name: "vanilla_option"
Создание BlackScholes Объект модели
Использование finmodel для создания BlackScholes объект модели.
BlackScholesModel = finmodel("BlackScholes","Volatility",0.2)
BlackScholesModel =
BlackScholes with properties:
Volatility: 0.2000
Correlation: 1
Создание 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"
Создание AssetMonteCarlo Объект прейскуранта
Использование finpricer для создания AssetMonteCarlo и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",BlackScholesModel,'SpotPrice',150,'simulationDates',datetime(2022,9,15))
outPricer =
GBMMonteCarlo with properties:
DiscountCurve: [1x1 ratecurve]
SpotPrice: 150
SimulationDates: 15-Sep-2022
NumTrials: 1000
RandomNumbers: []
Model: [1x1 finmodel.BlackScholes]
DividendType: "continuous"
DividendValue: 0
Ценовые Vanilla Инструмент
Использование price вычислить цену и чувствительность для Vanilla прибора.
[Price, outPR] = price(outPricer,VanillaOpt,["all"])Price = 61.2010
outPR =
priceresult with properties:
Results: [1x7 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Rho Theta Vega
______ _______ _________ ______ ______ _______ ______
61.201 0.93074 0.0027813 2.2812 313.95 -3.7909 41.626
Этот пример показывает рабочий процесс, чтобы оценить американскую опцию для Vanilla инструмент, когда вы используете Heston модель и AssetMonteCarlo метод ценообразования.
Создание Vanilla Объект прибора
Использование fininstrument для создания Vanilla объект прибора.
VanillaOpt = fininstrument("Vanilla",'Strike',105,'ExerciseDate',datetime(2022,9,15),'OptionType',"call",'ExerciseStyle',"american",'Name',"vanilla_option")
VanillaOpt =
Vanilla with properties:
OptionType: "call"
ExerciseStyle: "american"
ExerciseDate: 15-Sep-2022
Strike: 105
Name: "vanilla_option"
Создание Heston Объект модели
Использование finmodel для создания Heston объект модели.
HestonModel = finmodel("Heston",'V0',0.032,'ThetaV',0.07,'Kappa',0.003,'SigmaV',0.02,'RhoSV',0.09)
HestonModel =
Heston with properties:
V0: 0.0320
ThetaV: 0.0700
Kappa: 0.0030
SigmaV: 0.0200
RhoSV: 0.0900
Создание 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"
Создание AssetMonteCarlo Объект прейскуранта
Использование finpricer для создания AssetMonteCarlo и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',myRC,"Model",HestonModel,'SpotPrice',150,'simulationDates',datetime(2022,9,15))
outPricer =
HestonMonteCarlo with properties:
DiscountCurve: [1x1 ratecurve]
SpotPrice: 150
SimulationDates: 15-Sep-2022
NumTrials: 1000
RandomNumbers: []
Model: [1x1 finmodel.Heston]
DividendType: "continuous"
DividendValue: 0
Ценовые Vanilla Инструмент
Использование price вычислить цену и чувствительность для Vanilla прибора.
[Price, outPR] = price(outPricer,VanillaOpt,["all"])Price = 60.5637
outPR =
priceresult with properties:
Results: [1x8 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×8 table
Price Delta Gamma Lambda Rho Theta Vega VegaLT
______ _______ _________ ______ ______ _______ ______ _______
60.564 0.94774 0.0011954 2.3473 326.36 -3.7126 35.272 0.31155
Этот пример показывает рабочий процесс, чтобы оценить опцию Бермудских островов для Vanilla инструмент, когда вы используете BlackScholes модель и FiniteDifference метод ценообразования.
Создание Vanilla Объект прибора
Использование fininstrument для создания Vanilla объект прибора.
VanillaOpt = fininstrument("Vanilla",'Strike',[110,120],'ExerciseDate',[datetime(2022,9,15) ; datetime(2023,9,15)],'OptionType',"call",'ExerciseStyle',"Bermudan",'Name',"vanilla_option")
VanillaOpt =
Vanilla with properties:
OptionType: "call"
ExerciseStyle: "bermudan"
ExerciseDate: [15-Sep-2022 15-Sep-2023]
Strike: [110 120]
Name: "vanilla_option"
Создание BlackScholes Объект модели
Использование finmodel для создания BlackScholes объект модели.
BlackScholesModel = finmodel("BlackScholes","Volatility",0.2)
BlackScholesModel =
BlackScholes with properties:
Volatility: 0.2000
Correlation: 1
Создание 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"
Создание FiniteDifference Объект прейскуранта
Использование finpricer для создания FiniteDifference и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("FiniteDifference",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100)
outPricer =
FiniteDifference with properties:
DiscountCurve: [1x1 ratecurve]
Model: [1x1 finmodel.BlackScholes]
SpotPrice: 100
GridProperties: [1x1 struct]
DividendType: "continuous"
DividendValue: 0
Ценовые Vanilla Инструмент
Использование price вычислить цену и чувствительность для Vanilla прибора.
[Price, outPR] = price(outPricer,VanillaOpt,["all"])Price = 18.6797
outPR =
priceresult with properties:
Results: [1x7 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Theta Rho Vega
_____ _______ _________ ______ _______ ______ ______
18.68 0.62163 0.0091406 3.3278 -3.3154 184.31 83.162
Этот пример показывает рабочий процесс, чтобы оценить Vanilla инструмент, когда вы используете Heston модель и различные методы ценообразования.
Создание Vanilla Объект прибора
Использование fininstrument для создания Vanilla объект прибора.
Settle = datetime(2017,6,29); Maturity = datemnth(Settle,6); Strike = 80; VanillaOpt = fininstrument('Vanilla','ExerciseDate',Maturity,'Strike',Strike,'Name',"vanilla_option")
VanillaOpt =
Vanilla with properties:
OptionType: "call"
ExerciseStyle: "european"
ExerciseDate: 29-Dec-2017
Strike: 80
Name: "vanilla_option"
Создание Heston Объект модели
Использование finmodel для создания Heston объект модели.
V0 = 0.04; ThetaV = 0.05; Kappa = 1.0; SigmaV = 0.2; RhoSV = -0.7; HestonModel = finmodel("Heston",'V0',V0,'ThetaV',ThetaV,'Kappa',Kappa,'SigmaV',SigmaV,'RhoSV',RhoSV)
HestonModel =
Heston with properties:
V0: 0.0400
ThetaV: 0.0500
Kappa: 1
SigmaV: 0.2000
RhoSV: -0.7000
Создание ratecurve объект
Создайте ratecurve объект, использующий ratecurve.
Rate = 0.03;
ZeroCurve = ratecurve('zero',Settle,Maturity,Rate);Создание NumericalIntegration, FFT, и FiniteDifference Объекты прейскуранта
Использование finpricer для создания NumericalIntegration, FFT, и FiniteDifference Ценовые объекты и используйте ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
SpotPrice = 80; Strike = 80; DividendYield = 0.02; NIPricer = finpricer("NumericalIntegration",'Model', HestonModel,'SpotPrice',SpotPrice,'DiscountCurve',ZeroCurve,'DividendValue',DividendYield)
NIPricer =
NumericalIntegration with properties:
Model: [1x1 finmodel.Heston]
DiscountCurve: [1x1 ratecurve]
SpotPrice: 80
DividendType: "continuous"
DividendValue: 0.0200
AbsTol: 1.0000e-10
RelTol: 1.0000e-10
IntegrationRange: [1.0000e-09 Inf]
CharacteristicFcn: @characteristicFcnHeston
Framework: "heston1993"
VolRiskPremium: 0
LittleTrap: 1
FFTPricer = finpricer("FFT",'Model',HestonModel, ... 'SpotPrice',SpotPrice,'DiscountCurve',ZeroCurve, ... 'DividendValue',DividendYield,'NumFFT',8192)
FFTPricer =
FFT with properties:
Model: [1x1 finmodel.Heston]
DiscountCurve: [1x1 ratecurve]
SpotPrice: 80
DividendType: "continuous"
DividendValue: 0.0200
NumFFT: 8192
CharacteristicFcnStep: 0.0100
LogStrikeStep: 0.0767
CharacteristicFcn: @characteristicFcnHeston
DampingFactor: 1.5000
Quadrature: "simpson"
VolRiskPremium: 0
LittleTrap: 1
FDPricer = finpricer("FiniteDifference",'Model',HestonModel,'SpotPrice',SpotPrice,'DiscountCurve',ZeroCurve,'DividendValue',DividendYield)
FDPricer =
FiniteDifference with properties:
DiscountCurve: [1x1 ratecurve]
Model: [1x1 finmodel.Heston]
SpotPrice: 80
GridProperties: [1x1 struct]
DividendType: "continuous"
DividendValue: 0.0200
Ценовые Vanilla Инструмент
Используйте следующие чувствительности при расчете цены на Vanilla прибора.
InpSensitivity = ["delta", "gamma", "theta", "rho", "vega", "vegalt"];
Использование price вычислить цену и чувствительность для Vanilla инструмент, который использует NumericalIntegration цена.
[PriceNI, outPR_NI] = price(NIPricer,VanillaOpt,InpSensitivity)
PriceNI = 4.7007
outPR_NI =
priceresult with properties:
Results: [1x7 table]
PricerData: []
Использование price вычислить цену и чувствительность для Vanilla инструмент, который использует FFT цена.
[PriceFFT, outPR_FFT] = price(FFTPricer,VanillaOpt,InpSensitivity)
PriceFFT = 4.7007
outPR_FFT =
priceresult with properties:
Results: [1x7 table]
PricerData: []
Использование price вычислить цену и чувствительность для Vanilla инструмент, который использует FiniteDifference цена.
[PriceFD, outPR_FD] = price(FDPricer,VanillaOpt,InpSensitivity)
PriceFD = 4.7003
outPR_FD =
priceresult with properties:
Results: [1x7 table]
PricerData: [1x1 struct]
Агрегируйте результаты цены.
[outPR_NI.Results;outPR_FFT.Results;outPR_FD.Results]
ans=3×7 table
Price Delta Gamma Theta Rho Vega VegaLT
______ _______ ________ _______ ______ ______ ______
4.7007 0.57747 0.03392 -4.8474 20.805 17.028 5.2394
4.7007 0.57747 0.03392 -4.8474 20.805 17.028 5.2394
4.7003 0.57722 0.035254 -4.8483 20.801 17.046 5.2422
Вычисление Опции ценовых поверхностей
Используйте price функция для NumericalIntegration ценник и price функция для FFT прейскурант для вычисления цен для области значений Vanilla приборы.
Maturities = datemnth(Settle,(3:3:24)'); NumMaturities = length(Maturities); Strikes = (20:10:160)'; NumStrikes = length(Strikes); [Maturities_Full,Strikes_Full] = meshgrid(Maturities,Strikes); NumInst = numel(Strikes_Full); VanillaOptions(NumInst, 1) = fininstrument("vanilla",... "ExerciseDate", Maturities_Full(1), "Strike", Strikes_Full(1)); for instidx=1:NumInst VanillaOptions(instidx) = fininstrument("vanilla",... "ExerciseDate", Maturities_Full(instidx), "Strike", Strikes_Full(instidx)); end Prices_NI = price(NIPricer, VanillaOptions); Prices_FFT = price(FFTPricer, VanillaOptions); figure; surf(Maturities_Full,Strikes_Full,reshape(Prices_NI,[NumStrikes,NumMaturities])); title('Price (Numerical Integration)'); view(-112,34); xlabel('Maturity') ylabel('Strike')

figure; surf(Maturities_Full,Strikes_Full,reshape(Prices_FFT,[NumStrikes,NumMaturities])); title('Price (FFT)'); view(-112,34); xlabel('Maturity') ylabel('Strike')

Опция vanilla является категорией опций, которая включает только самые стандартные компоненты.
Ванильная опция имеет срок годности и прямолинейную цену доставки. Опции в американском стиле и опции в европейском стиле классифицируются как опции ванили.
Выплата для ванильной опции следующая:
Для вызова:
Для размещения:
где:
St - цена базового актива на t времени.
K - цена доставки.
Для получения дополнительной информации смотрите Опцию Vanilla.
После создания Vanilla объект инструмента, вы можете использовать setExercisePolicy для изменения размера опций. Для примера, если у вас есть следующий инструмент:
VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2021,5,1),'Strike',29,'OptionType',"put",'ExerciseStyle',"European")Vanilla размер инструмента путем изменения ExerciseStyle от "European" на "American", использование setExercisePolicy:VanillaOpt = setExercisePolicy(VanillaOpt,[datetime(2021,1,1) datetime(2022,1,1)],100,'American')
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.