Spread
инструментальный объект
Создайте и оцените Spread
инструментальный объект, использующий этот рабочий процесс:
Использование fininstrument
создать Spread
инструментальный объект.
Использование finmodel
задавать BlackScholes
или Bachelier
модель для Spread
инструмент.
При использовании BlackScholes
модель, использовать finpricer
задавать Kirk
, BjerksundStensland
, или AssetMonteCarlo
метод ценообразования для Spread
инструмент.
При использовании Bachelier
модель, использовать finpricer
задавать AssetMonteCarlo
метод ценообразования для Spread
инструмент.
Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Spread
инструмент, смотрите, Выбирают Instruments, Models и Pricers.
создает 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
объект калькулятора цен и использование 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
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
BJSPricer = finpricer("Analytic", 'Model', BlackScholesModel, 'SpotPrice', [Price1 , Price2], 'DiscountCurve', ZeroCurve,'PricingMethod', "BjerksundStensland");
Создайте Kirk
Объект калькулятора цен
Используйте finpricer
создать Kirk
объект калькулятора цен и использование 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
объект калькулятора цен и использование 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
объект калькулятора цен и использование 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.