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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.