Расчетная цена долевого инструмента с ReplicatingVarianceSwap калькулятор цен
[ вычисляет цену инструмента и соответствующую информацию о расчете цены на основе объекта расчета цены Price,PriceResult] = price(inpPricer,inpInstrument)inpPricer и объект прибора inpInstrument.
[ добавляет необязательный аргумент для указания чувствительности.Price,PriceResult] = price(___,inpSensitivity)
ratecurve в инструмент свопа отклонений ценыВ этом примере показан поток операций для оценки VarianceSwap инструмент при использовании ratecurve и 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 object и используйте 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около-1 или 1около-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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.