Вычислите уровень подкачки паритета для Swap
инструмент
вычисляет уровень подкачки паритета для outRate
= parswaprate(SwapObject
,inCurve
)Swap
инструментальный объект.
Этот пример показывает рабочий процесс, чтобы вычислить уровень подкачки паритета для ванили Swap
инструмент, когда вы используете ratecurve
и Discount
метод ценообразования.
Создайте Объект ratecurve
Создайте ratecurve
объект с помощью ratecurve
поскольку базовая процентная ставка изгибается для Swap
инструмент.
Settle = datetime(2018,3,15); Type = 'zero'; 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; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 0 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 15-Mar-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте Swap
Инструментальный объект
Используйте fininstrument
создать ваниль Swap
инструментальный объект.
Swap = fininstrument("Swap",'Maturity',datetime(2020,9,15),'LegRate',[0.022 0.019 ],'LegType',["float","fixed"],'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap = Swap with properties: LegRate: [0.0220 0.0190] LegType: ["float" "fixed"] Reset: [2 2] Basis: [0 0] Notional: 100 LatestFloatingRate: [NaN NaN] ResetOffset: [0 0] DaycountAdjustedCashFlow: [0 0] ProjectionCurve: [1x2 ratecurve] BusinessDayConvention: ["actual" "actual"] Holidays: NaT EndMonthRule: [1 1] StartDate: NaT Maturity: 15-Sep-2020 Name: "swap_instrument"
Создайте Discount
Объект калькулятора цен
Используйте finpricer
создать Discount
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer = Discount with properties: DiscountCurve: [1x1 ratecurve]
Цена Swap
Инструмент
Используйте price
вычислить цену и чувствительность для ванили Swap
инструмент.
[Price, outPR] = price(outPricer, Swap,["all"])
Price = 2.4066
outPR = priceresult with properties: Results: [1x2 table] PricerData: []
outPR.Results
ans=1×2 table
Price DV01
______ _________
2.4066 -0.024499
Вычислите уровень подкачки паритета с помощью parswaprate
.
outRate = parswaprate(Swap,myRC)
outRate = 0.0287
Этот пример показывает рабочий процесс, чтобы вычислить уровень подкачки паритета для нескольких ваниль Swap
инструменты, когда вы используете ratecurve
и Discount
метод ценообразования.
Создайте Объект ratecurve
Создайте ratecurve
объект с помощью ratecurve
поскольку базовая процентная ставка изгибается для Swap
инструмент.
Settle = datetime(2019,4,15); Type = 'zero'; 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; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 0 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 15-Apr-2019 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте Swap
Инструментальный объект
Используйте fininstrument
создать ваниль Swap
инструментальный объект для трех инструментов Подкачки.
Swap = fininstrument("Swap",'Maturity',datetime([2020,4,15 ; 2021,4,15 ; 2024,4,15]),'LegRate',[0.022 0.019 ],'LegType',["float","fixed"],'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap=3×1 object
3x1 Swap array with properties:
LegRate
LegType
Reset
Basis
Notional
LatestFloatingRate
ResetOffset
DaycountAdjustedCashFlow
ProjectionCurve
BusinessDayConvention
Holidays
EndMonthRule
StartDate
Maturity
Name
Создайте Discount
Объект калькулятора цен
Используйте finpricer
создать Discount
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer = Discount with properties: DiscountCurve: [1x1 ratecurve]
Цена Swap
Инструменты
Используйте price
вычислить цены и чувствительность для ванили Swap
инструменты.
[Price, outPR] = price(outPricer, Swap,["all"])
Price = 3×1
0.8473
1.8067
7.2322
outPR=1×3 object
1x3 priceresult array with properties:
Results
PricerData
outPR.Results
ans=1×2 table
Price DV01
_______ __________
0.84728 -0.0099228
ans=1×2 table
Price DV01
______ _________
1.8067 -0.019656
ans=1×2 table
Price DV01
______ ________
7.2322 -0.04664
Вычислите уровень подкачки паритета для каждого из трех инструментов Подкачки с помощью parswaprate
.
outRate = parswaprate(Swap(1),myRC)
outRate = 0.0275
outRate = parswaprate(Swap(2),myRC)
outRate = 0.0281
outRate = parswaprate(Swap(3),myRC)
outRate = 0.0338
SwapObject
— Объект SwapSwap
объектПодкачайте объект, заданное использование ранее созданного Swap
инструментальный объект.
Примечание
Если SwapObject
вектор из инструментов, необходимо использовать parswaprate
отдельно с каждым инструментом.
Типы данных: object
inCurve
— Кривая уровняratecurve
объектКривая уровня в виде ранее созданного ratecurve
объект.
Типы данных: object
outRate
— Уровень подкачки паритетаУровень подкачки паритета, возвращенный как десятичное число.
par swap rate является уровнем, который представляет равное нулю значение подкачки.
Другими словами, уровень подкачки паритета является значением фиксированной процентной ставки, которая дает подкачке нулевую приведенную стоимость или фиксированную процентную ставку, которая делает значение обоих участков равными (то есть, значение фиксированного участка и значение плавающего участка).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.