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