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