Вычислите цену для инструмента капитала с ReplicatingVarianceSwap
калькулятор цен
[
вычисляет цену инструмента и соответствующую информацию о ценах на основе объекта ценообразования Price
,PriceResult
] = price(inpPricer
,inpInstrument
)inpPricer
и объект прибора inpInstrument
.
[
добавляет необязательный аргумент для задания чувствительности.Price
,PriceResult
] = price(___,inpSensitivity
)
ratecurve
в инструмент замены отклонений по ценеЭтот пример показывает рабочий процесс, чтобы оценить VarianceSwap
инструмент, когда вы используете ratecurve
и a ReplicatingVarianceSwap
метод ценообразования.
Создание VarianceSwap
Объект прибора
Использование fininstrument
для создания VarianceSwap
объект прибора.
VarianceSwapInst = fininstrument("VarianceSwap",'Maturity',datetime(2021,5,1),'Notional',150,'StartDate',datetime(2020,5,1),'RealizedVariance',0.05,'Strike',0.1,'Name',"variance_swap_instrument")
VarianceSwapInst = VarianceSwap with properties: Notional: 150 RealizedVariance: 0.0500 Strike: 0.1000 StartDate: 01-May-2020 Maturity: 01-May-2021 Name: "variance_swap_instrument"
Создание ratecurve
Объект
Создайте плоскую ratecurve
объект, использующий ratecurve
.
Settle = datetime(2020, 9, 15); ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; Basis = 1; ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates,'Basis',Basis)
ZeroCurve = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 1 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 15-Sep-2020 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создание ReplicatingVarianceSwap
Объект прейскуранта
Использование finpricer
для создания ReplicatingVarianceSwap
и используйте объект pricer ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
Strike = (50:5:135)'; Volatility = [.49;.45;.42;.38;.34;.31;.28;.25;.23;.21;.2;.21;.21;.22;.23;.24;.25;.26]; VolatilitySmile = table(Strike, Volatility); SpotPrice = 100; CallPutBoundary = 100; outPricer = finpricer("ReplicatingVarianceSwap",'DiscountCurve', ZeroCurve, 'VolatilitySmile', VolatilitySmile, ... 'SpotPrice', SpotPrice, 'CallPutBoundary', CallPutBoundary)
outPricer = ReplicatingVarianceSwap with properties: DiscountCurve: [1x1 ratecurve] InterpMethod: "linear" VolatilitySmile: [18x2 table] SpotPrice: 100 CallPutBoundary: 100
Ценовые VarianceSwap
Инструмент
Использование price
вычислить цену и справедливое отклонение для VarianceSwap
прибора.
[Price, outPR] = price(outPricer,VarianceSwapInst,["all"])
Price = 8.1997
outPR = priceresult with properties: Results: [1x2 table] PricerData: [1x1 struct]
outPR.Results
ans=1×2 table
Price FairVariance
______ ____________
8.1997 0.21701
outPR.PricerData.ReplicatingPortfolio
ans=19×6 table
CallPut Strike Volatility Weight Value Contribution
_______ ______ __________ __________ _______ ____________
"put" 50 0.49 0.0064038 0.39164 0.002508
"put" 55 0.45 0.0052877 0.49353 0.0026097
"put" 60 0.42 0.0044402 0.67329 0.0029895
"put" 65 0.38 0.0037814 0.80343 0.0030381
"put" 70 0.34 0.0032592 0.9419 0.0030698
"put" 75 0.31 0.0028382 1.223 0.0034711
"put" 80 0.28 0.0024938 1.58 0.0039403
"put" 85 0.25 0.0022086 2.0456 0.0045177
"put" 90 0.23 0.0019696 2.9221 0.0057554
"put" 95 0.21 0.0017675 4.1406 0.0073183
"put" 100 0.2 0.00082405 6.1408 0.0050603
"call" 100 0.2 0.00077087 6.4715 0.0049887
"call" 105 0.21 0.0014465 4.7094 0.0068119
"call" 110 0.21 0.0013178 3.1644 0.0041701
"call" 115 0.22 0.0012056 2.307 0.0027814
"call" 120 0.23 0.0011072 1.7127 0.0018962
⋮
inpPricer
- Объект прейскурантаReplicatingVarianceSwap
объектОбъект Pricer, заданный как скалярное ReplicatingVarianceSwap
объект прейскуранта. Использовать finpricer
чтобы создать ReplicatingVarianceSwap
объект прейскуранта.
Типы данных: object
inpInstrument
- Объект КИПиАVarianceSwap
объектОбъект инструмента, заданный как скаляр VarianceSwap
объект прибора. Использовать fininstrument
чтобы создать VarianceSwap
объект прибора.
Типы данных: object
inpSensitivity
- Список чувствительности к вычислениям[ ]
(по умолчанию) | строковые массивы со значениями "Price"
и "All"
| массив ячеек векторов символов со значениями 'Price'
и 'All'
(Необязательно) Список чувствительности для вычисления, заданный как NOUT
-by- 1
или 1
-by- NOUT
массив ячеек из векторов символов или строковых массивов с возможными значениями 'Price'
и 'All'
.
inpSensitivity = {'All'}
или inpSensitivity = ["All"]
указывает, что выход 'Price'
. Это то же самое, что и установка inpSensitivity
включать каждую чувствительность.
Пример: inpSensitivity = {'price'}
Типы данных: string
| cell
Price
- Цена КИПиАЦена инструмента, возвращенная в виде числа.
PriceResult
- Результат ценыPriceResult
объектРезультат цены, возвращенный как PriceResult
объект. Объект имеет следующие поля:
PriceResult.Results
- Таблица результатов, включающая:
Price
- Численное значение цены скалярного свопа
FairVariance
- Численное справедливое отклонение в десятичных числах
PriceResult.PricerData.ReplicatingPortfolio
- Таблица, содержащая более ценовые данные
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.