Spread
объект прибора
Создайте и оцените Spread
объект инструмента, использующий этот рабочий процесс:
Использовать fininstrument
для создания Spread
объект прибора.
Использовать finmodel
для задания BlackScholes
или Bachelier
модель для Spread
прибора.
При использовании BlackScholes
модель, использование finpricer
для задания Kirk
, BjerksundStensland
, или AssetMonteCarlo
метод ценообразования для Spread
прибора.
При использовании Bachelier
модель, использование finpricer
для задания AssetMonteCarlo
метод ценообразования для Spread
прибора.
Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Spread
инструмент, см. «Выбор инструментов», «Модели» и «Цены».
создает SpreadObj
= fininstrument(InstrumentType
,'Strike
',strike_value,'ExerciseDate
',exercise_date)Spread
объект путем определения InstrumentType
и устанавливает свойства для необходимых аргументов пары "имя-значение" Strike
и ExerciseDate
.
устанавливает необязательные свойства с помощью дополнительных пар "имя-значение" в дополнение к необходимым аргументам в предыдущем синтаксисе. Для примера, SpreadObj
= fininstrument(___,Name,Value
)SpreadObj = fininstrument("Spread",'Strike',100,'ExerciseDate',datetime(2019,1,30),'OptionType',"put",'ExerciseStyle',"American",'Name',"spread_instrument")
создает Spread
поставьте опцию с американскими упражнениями. Можно задать несколько аргументы пары "имя-значение".
InstrumentType
- Тип КИПиА"Spread"
| вектор символов с 'Spread'
значений
Тип инструмента, заданный как строка со значением "Spread"
или вектор символов со значением 'Spread'
.
Типы данных: char
| string
Spread
Аргументы в виде пар имя-значениеУкажите требуемые и необязательные разделенные запятой пары Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
SpreadObj = fininstrument("Spread",'Strike',100,'ExerciseDate',datetime(2019,1,30),'OptionType',"put",'ExerciseStyle',"American",'Name',"spread_instrument")
Spread
Аргументы в виде пар имя-значение'Strike'
- значение цены опционной доставкиЗначение цены доставки опции, заданное как разделенная разделенными запятой парами, состоящая из 'Strike'
и скаляр неотрицательное числовое значение.
Типы данных: double
'ExerciseDate'
- Дата выполнения опцииДата выполнения опции, заданная как разделенная разделенными запятой парами, состоящая из 'ExerciseDate'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Примечание
Для европейской опции существует только один ExerciseDate
на дату истечения срока действия опции.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что ExerciseDate
свойство сохранено как datetime.
Типы данных: double
| char
| string
| datetime
Spread
Аргументы в виде пар имя-значение'OptionType'
- Тип опции"call"
(по умолчанию) | строку со значением "call"
или "put"
| вектор символов с 'call'
значений
или 'put'
Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'OptionType'
и скалярную строку или вектор символов.
Типы данных: char
| string
'ExerciseStyle'
- Стиль упражнения опции"European"
(по умолчанию) | строку со значением "European"
| вектор символов с 'European'
значений
Опция стиль упражнения, заданный как разделенная запятой пара, состоящий из 'ExerciseStyle'
и скалярную строку или вектор символов.
Типы данных: string
| char
'Name'
- Определяемое пользователем имя прибора" "
(по умолчанию) | строку | вектор символовОпределяемое пользователем имя инструмента, заданное как разделенная разделенными запятой парами, состоящая из 'Name'
и скалярную строку или вектор символов.
Типы данных: char
| string
Strike
- значение цены опционной доставкиОпциональное значение цены доставки, возвращаемое как скалярное неотрицательное числовое значение.
Типы данных: double
ExerciseDate
- Дата выполнения опцииДата выполнения опции, возвращенная как datetime.
Типы данных: datetime
OptionType
- Тип опции "call"
(по умолчанию) | строку со значением "call"
или "put"
Тип опции, возвращенный как строка со значением "call"
или "put"
.
Типы данных: string
ExerciseStyle
- Стиль упражнения опции"European"
(по умолчанию) | строку со значением "European"
Опция стиле упражнения возвращается как строка со значением "European"
.
Типы данных: string
Name
- Определяемое пользователем имя прибора" "
(по умолчанию) | строкуОпределяемое пользователем имя инструмента, возвращаемое как строка.
Типы данных: string
Этот пример показывает рабочий процесс, чтобы оценить Spread
инструмент с европейской опцией при использовании BlackScholes
модель и BjerksundStensland
метод ценообразования.
Создание Spread
Объект прибора
Использование fininstrument
для создания Spread
объект прибора.
SpreadOpt = fininstrument("Spread",'Strike',105,'ExerciseDate',datetime(2021,9,15),'OptionType',"put",'ExerciseStyle',"european",'Name',"spread_option")
SpreadOpt = Spread with properties: OptionType: "put" Strike: 105 ExerciseStyle: "european" ExerciseDate: 15-Sep-2021 Name: "spread_option"
Создание BlackScholes
Объект модели
Использование finmodel
для создания BlackScholes
объект модели.
BlackScholesModel = finmodel("BlackScholes",'Volatility',[0.2,0.1])
BlackScholesModel = BlackScholes with properties: Volatility: [0.2000 0.1000] Correlation: [2x2 double]
Создание 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"
Создание BjerksundStensland
Объект прейскуранта
Использование finpricer
для создания BjerksundStensland
и используйте объект pricer ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("analytic",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',[103 105],'DividendValue',[0.025 , 0.028],'PricingMethod',"BjerksundStensland")
outPricer = BjerksundStensland with properties: DiscountCurve: [1x1 ratecurve] Model: [1x1 finmodel.BlackScholes] SpotPrice: [103 105] DividendValue: [0.0250 0.0280] DividendType: "continuous"
Ценовые Spread
Инструмент
Использование price
вычислить цену и чувствительность для Spread
прибора.
[Price, outPR] = price(outPricer,SpreadOpt,["all"])
Price = 95.9884
outPR = priceresult with properties: Results: [1x7 table] PricerData: []
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Vega Theta Rho
______ __________________ _______________________ ____________________ ________________ _____ _______
95.988 -0.8916 0.90457 0.0021316 0.00048175 -0.95673 0.97064 13.582 1.5785 3.135 -278.49
Этот пример показывает рабочий процесс по цене товара Spread
инструмент, когда вы используете BlackScholes
модель и Kirk
и BjerksundStensland
аналитические методы ценообразования.
Понимание опций распространения трещин
В нефтяной промышленности нефтепереработчики обеспокоены различием между их исходными затратами (сырая нефть) и ценами выход (продукты нефтепереработки - бензин, топочное масло, дизельное топливо и так далее). Разница между этими двумя базовыми товарами упоминается как трещина. Он представляет собой маржу прибыли между сырой нефтью и продуктами.
Опция спреда является опцией на спреде, где держатель имеет право, но не обязанность, заключить спот или договор форвардного спреда. Опции распространения трещин часто используются для защиты от снижения спреда трещин или для монетизации волатильности или ценовых ожиданий по спреду.
Определение товара
Предположим, что текущие цены на бензин сильны, и вы хотите смоделировать стратегию опции разброса трещин для защиты маржи бензина. Стратегия опции разброса трещин используется для сохранения прибыли в следующем сезоне. Фьючерсы на нефть WTI находятся на уровне $93,20 за баррель, а фьючерсы на бензин RBOB - на уровне $2,85 за галлон.
Strike = 20; Rate = 0.05; Settle = datetime(2020,1,1); Maturity = datemnth(Settle,3); % Price and volatility of RBOB gasoline PriceGallon1 = 2.85; % Dollars per gallon Price1 = PriceGallon1 * 42; % Dollars per barrel Vol1 = 0.29; % Price and volatility of WTI crude oil Price2 = 93.20; % Dollars per barrel Vol2 = 0.36; % Correlation between the prices of the commodities Corr = 0.42;
Создание Spread
Объект прибора
Использование fininstrument
для создания Spread
объект прибора.
SpreadOpt = fininstrument("Spread", 'ExerciseDate', Maturity, 'Strike', Strike,'ExerciseStyle',"european",'Name',"spread_instrument")
SpreadOpt = Spread with properties: OptionType: "call" Strike: 20 ExerciseStyle: "european" ExerciseDate: 01-Apr-2020 Name: "spread_instrument"
Создание BlackScholes
Объект модели
Использование finmodel
для создания BlackScholes
объект модели.
BlackScholesModel = finmodel("BlackScholes", 'Volatility', [Vol1,Vol2], 'Correlation', [1 Corr; Corr 1]);
Создание ratecurve
Объект
Создайте плоскую ratecurve
объект, использующий ratecurve
.
ZeroCurve = ratecurve('zero', Settle, Maturity, Rate, 'Basis', 1);
Создание BjerksundStensland
Объект прейскуранта
Использование finpricer
для создания BjerksundStensland
и используйте объект pricer ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
BJSPricer = finpricer("Analytic", 'Model', BlackScholesModel, 'SpotPrice', [Price1 , Price2], 'DiscountCurve', ZeroCurve,'PricingMethod', "BjerksundStensland");
Создание Kirk
Объект прейскуранта
Использование finpricer
для создания Kirk
и используйте объект pricer ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
KirkPricer = finpricer("Analytic", 'Model', BlackScholesModel,'SpotPrice', [Price1 , Price2], 'DiscountCurve', ZeroCurve,'PricingMethod', "Kirk");
Ценовые Spread
Использование инструмента BjerksundStensland
и Kirk
Аналитические Методы ценообразования
Использование price
вычислить цену и чувствительность для сырьевого Spread
прибора.
[PriceKirk, outPR_Kirk] = price(KirkPricer, SpreadOpt, "all"); [PriceBJS, outPR_BJS] = price(BJSPricer, SpreadOpt, "all"); [outPR_Kirk.Results; outPR_BJS.Results]
ans=2×7 table
Price Delta Gamma Lambda Vega Theta Rho
_____ ___________________ ____________________ _________________ ________________ _______ ______
11.19 0.67224 -0.60665 0.019081 0.021662 7.1907 -6.4891 11.299 9.8869 -14.539 3.1841
11.2 0.67371 -0.60816 0.018992 0.021572 7.2003 -6.4997 11.198 9.9878 -14.555 3.1906
Этот пример показывает рабочий процесс, чтобы оценить Spread
инструмент с американской опцией при использовании BlackScholes
модель и AssetMonteCarlo
метод ценообразования.
Создание Spread
Объект прибора
Использование fininstrument
для создания Spread
объект прибора.
SpreadOpt = fininstrument("Spread",'Strike',100,'ExerciseDate',datetime(2021,9,15),'OptionType',"put",'ExerciseStyle',"American",'Name',"spread_option")
SpreadOpt = Spread with properties: OptionType: "put" Strike: 100 ExerciseStyle: "american" ExerciseDate: 15-Sep-2021 Name: "spread_option"
Создание BlackScholes
Объект модели
Использование finmodel
для создания BlackScholes
объект модели.
Corr = 0.42; BlackScholesModel = finmodel("BlackScholes","Volatility",[0.3,0.1],"Correlation", [1 Corr;Corr 1])
BlackScholesModel = BlackScholes with properties: Volatility: [0.3000 0.1000] Correlation: [2x2 double]
Создание 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',[100,95],'simulationDates',datetime(2021,9,15),'dividendType',["continuous","continuous"],'dividendvalue',[0,0.01])
outPricer = GBMMonteCarlo with properties: DiscountCurve: [1x1 ratecurve] SpotPrice: [100 95] SimulationDates: 15-Sep-2021 NumTrials: 1000 RandomNumbers: [] Model: [1x1 finmodel.BlackScholes] DividendType: ["continuous" "continuous"] DividendValue: [0 0.0100]
Ценовые Spread
Инструмент
Использование price
вычислить цену и чувствительность для Spread
прибора.
[Price, outPR] = price(outPricer,SpreadOpt,["all"])
Price = 95
outPR = priceresult with properties: Results: [1x7 table] PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Rho Theta Vega
_____ ________ _______________ __________________ ___ _____ ______
95 -1 1 0 3.1492e-14 -1.0526 1 0 0 0 0
Этот пример показывает рабочий процесс, чтобы оценить Spread
инструмент с американской опцией при использовании Bachelier
модель и AssetMonteCarlo
метод ценообразования.
Создание Spread
Объект прибора
Использование fininstrument
для создания Spread
объект прибора.
SpreadOpt = fininstrument("Spread",'Strike',100,'ExerciseDate',datetime(2021,9,15),'OptionType',"put",'ExerciseStyle',"American",'Name',"spread_option")
SpreadOpt = Spread with properties: OptionType: "put" Strike: 100 ExerciseStyle: "american" ExerciseDate: 15-Sep-2021 Name: "spread_option"
Создание Bachelier
Объект модели
Использование finmodel
для создания Bachelier
объект модели.
Corr = 0.42; BachelierModel = finmodel("BlackScholes","Volatility",[0.3,0.1],"Correlation", [1 Corr;Corr 1])
BachelierModel = BlackScholes with properties: Volatility: [0.3000 0.1000] Correlation: [2x2 double]
Создание 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",BachelierModel,'SpotPrice',[100,95],'simulationDates',datetime(2021,9,15),'dividendType',["continuous","continuous"],'dividendvalue',[0,0.01])
outPricer = GBMMonteCarlo with properties: DiscountCurve: [1x1 ratecurve] SpotPrice: [100 95] SimulationDates: 15-Sep-2021 NumTrials: 1000 RandomNumbers: [] Model: [1x1 finmodel.BlackScholes] DividendType: ["continuous" "continuous"] DividendValue: [0 0.0100]
Ценовые Spread
Инструмент
Использование price
вычислить цену и чувствительность для Spread
прибора.
[Price, outPR] = price(outPricer,SpreadOpt,["all"])
Price = 95
outPR = priceresult with properties: Results: [1x7 table] PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Rho Theta Vega
_____ ________ _______________ __________________ ___ _____ ______
95 -1 1 0 3.1492e-14 -1.0526 1 0 0 0 0
На spread option двух базовых активов написано различие.
Например, европейский вызов о различии двух активов X1 и X2 имеет следующее окупаемость при погашении:
K - цена доставки.
Для получения дополнительной информации см. Раздел «Опция распределения».
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.