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'Инструментальный тип в виде строки со значением "Spread", вектор символов со значением 'Spread', NINST- 1 массив строк со значениями "Spread", или NINST- 1 массив ячеек из символьных векторов со значениями 'Spread'.
Типы данных: char | cell | 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' и скаляр, неотрицательный числовой или NINST- 1 неотрицательный числовой вектор.
Типы данных: double
ExerciseDate — Дата осуществления опцииДата осуществления опции в виде разделенной запятой пары, состоящей из 'ExerciseDate' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Примечание
Для европейской опции существует только один ExerciseDate на дате окончания срока действия опции.
Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что ExerciseDate свойство хранится как datetime.
Типы данных: double | char | string | datetime
Spread Аргументы в виде пар имя-значениеOptionType — Тип опции"call" (значение по умолчанию) | представляет в виде строки со значением "call" или "put" | массив строк со значениями "call" или "put" | вектор символов со значением 'call' или 'put' | массив ячеек из символьных векторов со значениями 'call' или 'put'Тип опции в виде разделенной запятой пары, состоящей из 'OptionType' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.
Типы данных: char | cell | string
ExerciseStyle — Стиль осуществления опции"European" (значение по умолчанию) | представляет в виде строки со значением "European"
| массив строк со значениями "European"
| вектор символов со значением 'European'
| массив ячеек из символьных векторов со значениями 'European'
Осуществление опции разрабатывает в виде разделенной запятой пары, состоящей из 'ExerciseStyle' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.
Типы данных: string | cell | char
Name — Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовПользовательское имя для одного из большего количества инструментов в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.
Типы данных: char | cell | string
Strike — Значение цены исполнения опциона опцииЗначение цены исполнения опциона опции, возвращенное как скаляр, неотрицательный числовой или NINST- 1 неотрицательный числовой вектор.
Типы данных: double
ExerciseDate — Дата осуществления опцииДата осуществления опции, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.
Типы данных: datetime
OptionType — Тип опции "call" (значение по умолчанию) | представляет в виде строки со значением "call" или "put" | массив строк со значением "call" или "put"Тип опции, возвращенный как скалярная строка или NINST- 1 массив строк со значениями "call" или "put".
Типы данных: string
ExerciseStyle — Стиль осуществления опции"European" (значение по умолчанию) | представляет в виде строки со значением "European" | массив строк со значениями "European"Стиль осуществления опции, возвращенный как строка или NINST- 1 массив строк со значениями "European".
Типы данных: string
Name — Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строкПользовательское имя для инструмента, возвращенного как скалярная строка или NINST- 1 массив строк.
Типы данных: 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 модель и BjerksundStensland метод ценообразования.
Создайте Spread Инструментальный объект
Используйте fininstrument создать Spread инструментальный объект для трех инструментов Распространения.
SpreadOpt = fininstrument("Spread",'Strike',[105 ; 120 ; 150],'ExerciseDate',datetime([2021,9,15 ; 2021,10,15 ; 2021,11,15]),'OptionType',"put",'ExerciseStyle',"european",'Name',"spread_option")
SpreadOpt=3×1 object
3x1 Spread array with properties:
OptionType
Strike
ExerciseStyle
ExerciseDate
Name
Создайте 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 160],'DividendValue',[0.025 , 0.028],'PricingMethod',"BjerksundStensland")
outPricer =
BjerksundStensland with properties:
DiscountCurve: [1x1 ratecurve]
Model: [1x1 finmodel.BlackScholes]
SpotPrice: [103 160]
DividendValue: [0.0250 0.0280]
DividendType: "continuous"
Цена Spread Инструменты
Используйте price вычислить цены и чувствительность для Spread инструменты.
[Price, outPR] = price(outPricer,SpreadOpt,["all"])Price = 3×1
146.1732
159.1989
185.5513
outPR=3×1 object
3x1 priceresult array with properties:
Results
PricerData
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Vega Theta Rho
______ ____________________ ________________________ ____________________ _________________ ______ _______
146.17 -0.91985 0.91683 0.00057696 7.9581e-05 -0.64817 0.64604 3.6848 0.60671 4.9043 -282.63
ans=1×7 table
Price Delta Gamma Lambda Vega Theta Rho
_____ ____________________ ________________________ ____________________ _________________ ______ _______
159.2 -0.92024 0.91557 0.00042064 5.4001e-05 -0.59539 0.59237 2.7723 0.40502 5.3984 -331.26
ans=1×7 table
Price Delta Gamma Lambda Vega Theta Rho
______ ____________________ ______________________ ____________________ _________________ ______ _______
185.55 -0.92123 0.91439 0.000216 1.9895e-05 -0.51138 0.50758 1.4478 0.16988 6.3711 -424.75
Этот пример показывает рабочий процесс, чтобы оценить товарный 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.