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