irbootstrap
从市场数据引导利率曲线
描述
创建用于存储利率期限结构数据的数据结构。的外曲
= irbootstrap (BootInstruments
,解决
)外曲
输出是ratecurve
对象。
除前面语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,外曲
= irbootstrap (___,名称,值
)OutCurve = irbootstrap(解决,BootInstruments,'类型',"零",'复合',2,'基础',5,'InterpMethod',"立方")
引导一个零曲线BootInstruments
.
例子
引导ratecurve
来自市场数据的对象
定义存款和交换参数
Settle = datetime(2018,3,21);DepRates =[。0050769 .0054934 .0061432 .0072388 .0093263]'; DepTimes = [1 2 3 6 12]'; DepDates = datemnth(Settle,DepTimes); nDeposits = length(DepTimes); SwapRates = [.0112597 0;.0128489 0;.0138917 0;.0146135 0;.0151175 0;....0155184 0;。0158536 0;。016143.5 0]; SwapTimes = (2:9)'; SwapDates = datemnth(Settle,12*SwapTimes); nSwaps = length(SwapTimes); nInst = nDeposits + nSwaps;
创建一个市场互换工具向量
使用fininstrument
打造市场矢量存款
而且交换
仪的对象。
bootininstruments (nInst,1) = fininstrument.FinInstrument;为ii=1:长度(DepDates) bootininstruments (ii) = fininstrument(“存款”,“成熟”DepDates (ii),“速度”DepRates (ii));结束为ii=1:长度(SwapDates) bootininstruments (ii+nDeposits) = fininstrument(“交换”,“成熟”SwapDates (ii),“LegRate”, (SwapRates (ii) 0]);结束
创建ratecurve
对象为零利率曲线
使用irbootstrap
要创建ratecurve
对象用于零利率曲线。
ZeroCurve = irbootstrap(BootInstruments,Settle)
ZeroCurve =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[13x1 datetime]利率:[13x1 double]结算:2018年3月21日InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”
使用创建零曲线DiscountCurve
输入
此示例显示如何创建ratecurve
对象使用irbootstrap
与存款
而且交换
仪器和DiscountCurve
贴现现金流。
Settle = datetime(2021,4,15);crvDates = Settle + [calmonths([1 2 3 6]) calyears([1 2 3 5 7 10 20 30])]';crvRates = [0.0004 0.0004 0.0005 0.0006 0.0008 0.0018 0.0037 0.0088 0.013 0.0165 0.022 0.0233]';折现曲线=比率曲线(“零”、结算、crvDates crvRates);DepRates = [0.002 0.0021 0.0023 0.0024 .0028]';DepDates = Settle + calmonths([1 2 3 6 12]');SwapRates = [0.0041 0;0.0057 0;0.017 0;0.0193 0;0.024 0;0.027 0];SwapTimes = [2 3 5 10 20 30]';SwapDates = datemnth(set,12*SwapTimes);bootinstrument = [fininstrument(“存款”,“成熟”DepDates,“速度”, DepRates);...fininstrument (“交换”,“成熟”SwapDates,“LegRate”SwapRates)];ZeroCurve = irbootstrap(BootInstruments,Settle,“DiscountCurve”DiscountCurve)
ZeroCurve =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[11x1 datetime]利率:[11x1 double]结算:15-Apr-2021 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”
引导ratecurve
对象从BootInstruments
的隔夜指数掉期合约
创建一个BootInstruments
变量作为的输入参数irbootstrap
创建一个速率曲线对象。的BootInstruments
变量OISFuture
1个月SOFR期货和3个月SOFR期货的工具对象OvernightIndexedSwap
仪对象。
创建工具
使用fininstrument
要创建OISFuture
一个月SOFR期货的工具标的。
Settle = datetime(2021,3,4);HFDates = datetime(2021,3,1) + caldays(0:3)';组固定=时间表(HFDates,[0.02;0.04;0.04;0.02]);%来自以下数据:https://www.cmegroup.com/trading/interest-rates/stir/one-month-sofr_quotes_globex.htmlPrices_1M = [99.97 99.96 99.95]';Maturity_1M = lbusdate(2021,[3 4 5]',[],[],“datetime”);StartDate_1M = fbusdate(2021,[3 4 5]',[],[],,“datetime”);FutInstruments_1M = fininstrument(“OISFuture”,“成熟”Maturity_1M,“QuotedPrice”Prices_1M,“StartDate可以”StartDate_1M,“方法”,“平均”,...“HistoricalFixing”HistFixing,“名字”,“1 monthsofrfuture”)
FutInstruments_1M =3×1对象带有属性的3x1 OISFuture数组:QuotedPrice Method Basis StartDate Maturity名义工作日convention Holidays ProjectionCurve HistoricalFixing Name
使用fininstrument
要创建OISFuture
三个月SOFR期货的工具标的。
%来自以下数据:https://www.cmegroup.com/trading/interest-rates/stir/three-month-sofr_quotes_globex.htmlPrices_3M = [99.92 99.895 99.84 99.74]';Dates_3M_Maturity = thirdwednesday([6 9 12 3]',[2021 2021 2021 2022]',“datetime”);Dates_3M_Start = thirdwednesday([3 6 9 12]',2021,“datetime”);FutInstruments_3M = fininstrument(“OISFuture”,“成熟”Dates_3M_Maturity,...“QuotedPrice”Prices_3M,“StartDate可以”Dates_3M_Start,“HistoricalFixing”HistFixing,“名字”,“3 monthsofrfuture”);
使用fininstrument
要创建OvernightIndexedSwap
仪对象。
SOFRSwapRates = [.]0023 0;。0064 0;。013 0;。017 0;。0175 0]; SOFRSwapTimes = [3 5 10 20 30]; SOFRSwapDates = datemnth(Settle,12*SOFRSwapTimes)'; SOFRSwapInstruments = fininstrument(“OvernightIndexedSwap”,“成熟”SOFRSwapDates,“LegRate”SOFRSwapRates,“名字”,“overnight_swap_instrument”)
SOFRSwapInstruments =5×1对象5x1带属性的OvernightIndexedSwap数组:leggrate LegType Reset Basis Notional HistoricalFixing ResetOffset ProjectionCurve BusinessDayConvention Holidays EndMonthRule StartDate成熟度名称
定义BootInstruments
这三种类型的仪器。
booinstruments = [FutInstruments_1M;FutInstruments_3M;SOFRSwapInstruments]
BootInstruments =12×1对象12x1异构FinInstrument (OISFuture,隔夜indexedswap)数组,属性:Name
创建ratecurve
对象
使用irbootstrap
要创建ratecurve
对象。
SOFRCurve = irbootstrap(BootInstruments,Settle)
SOFRCurve =带有属性的利率曲线:类型:“零”复合:-1基准:0日期:[12x1 datetime]利率:[12x1 double]结算:04-Mar-2021 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”
引导ratecurve
对象从STIRFuture
,存款
,交换
BootInstruments
创建BootInstruments
为多个存款、
STIRFuture
,交换
仪器,然后使用irbootstrap
创建和显示ratecurve
对象。
创建工具
使用fininstrument
要创建存款
仪对象。
Settle = datetime(2021,6,15);DepRates = [0.0016 0.0017 .00175]';DepDates = Settle + calmonths([1 2 3]');存款=金融工具(“存款”,“成熟”DepDates,“速度”DepRates,“名字”,“deposit_instrument”)
存款=3×1对象3x1带有属性的存款阵列:利率期限基础期限本金工作日约定假日名称
使用fininstrument
要创建STIRFuture
仪对象。
FutureRates = [0.002 0.0025 0.0035]';FutMat = [datetime(2021,9,15) datetime(2021,12,15) datetime(2022,3,16)]';FutEndDates = [datetime(2021,12,15) datetime(2022,3,15) datetime(2022,6,15)]';期货=金融工具(“STIRFuture”,“成熟”FutMat,“RateEndDate”FutEndDates,“QuotedPrice”,100 - 100*未来率,“名字”,“stir_future_instrument”)
期货=3×1对象带有属性的3x1 STIRFuture数组:QuotedPrice Basis RateEndDate Maturity名义工作日convention Holidays ProjectionCurve Name
使用fininstrument
要创建交换
仪对象。
SwapRates =[。0063 0;。0108 0;。013 0;。015 0;0.017 0;.018 0;0.019 0]; SwapTimes = [2 5 7 10 15 20 30]'; SwapDates = datemnth(Settle,12*SwapTimes); Swaps = fininstrument(“交换”,“成熟”SwapDates,“LegRate”SwapRates,“名字”,“swap_instrument”)
掉期=7×1对象7x1带属性的交换数组:leggrate LegType Reset Basis Notional LatestFloatingRate ResetOffset daycountadjusttedcashflow ProjectionCurve BusinessDayConvention Holidays EndMonthRule StartDate成熟度名称
定义BootInstruments
这三种乐器。
启动工具=[存款;期货;掉期];
创建ratecurve
对象使用irbootstrap
使用irbootstrap
要创建ratecurve
对象。
ConvexityAdj = (1:3)'/10000;ZeroCurve = irbootstrap(BootInstruments,Settle,“ConvexityAdjustment”ConvexityAdj,“InterpMethod”,“pchip”)
ZeroCurve =利率曲线与属性:类型:“零”复合:-1基础:0日期:[13x1 datetime]利率:[13x1 double]结算:15 june -2021 InterpMethod:“pchip”ShortExtrapMethod:“next”LongExtrapMethod:“previous”
Plot bootstrap曲线
PlottingDates = Settle + calmonths(1:360);情节(PlottingDates zerorates (ZeroCurve PlottingDates))包含(的期限(年)) ylabel (“零率”)标题(“引导曲线”)
输入参数
BootInstruments
- - - - - -收集仪器
仪器对象数组
仪器的集合,指定为仪器对象的数组。仪器的收集可以包括存款
,交换
,联邦铁路局
,STIRFuture
,OISFuture
,OvernightIndexedSwap
仪器。
数据类型:对象
解决
- - - - - -结算日期
datetime标量|字符串标量|日期字符向量
结算日期,指定为标量日期时间、字符串或日期字符向量。
要支持万博1manbetx现有代码,irbootstrap
也接受序列号作为输入,但不建议使用。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:OutCurve = irbootstrap(解决,BootInstruments,'类型',"零",'复合',2,'基础',5,'InterpMethod',"立方")
类型
- - - - - -利率曲线的类型
“零”
(默认)|带值的字符串“折扣”
,“转发”
,或“零”
|带值的字符向量“折扣”
,“前进”
,或“零”
利率曲线的类型,指定为逗号分隔的对,由“类型”
和标量字符串或字符向量。
请注意
当你使用irbootstrap
,指定的值类型
会影响曲线构造,因为它会影响在自举过程中插入的数据类型(即正向利率、零利率或贴现因子)。
数据类型:字符
|字符串
复合
- - - - - -复合频率
复合
为ratecurve
对象(默认)|可能的值包括:1
,0
,1
,2
,3.
,4
,6
,12
.
复合频率,指定为逗号分隔的对,由“复合”
和使用支持值的标量数字:万博1manbetx1
,0
,1
,2
,3.
,4
,6
,或12
.
数据类型:双
基础
- - - - - -日计数的基础上
0
(实际/实际)(默认)|整数的0
来13
日计数基础,指定为逗号分隔的对,由“基础”
一个标量整数。
0 - actual/实际的
1 - 30/360 (sia)
2 -实际/360
3 -实际的/365
4 - 30/360 (psa)
5 - 30/360 (isda)
6 - 30/360(欧洲)
7 -实际/365(日语)
8 -实际/实际(ICMA)
9 -实际/360 (ICMA)
10 -实际/365 (ICMA)
11 - 30/360e (icma)
12 -实际/365 (ISDA)
13 -总线/252
有关更多信息,请参见基础.
数据类型:双
InterpMethod
- - - - - -插值法
“线性”
(默认)|带值的字符串“线性”
,“立方”
,“下一个”
,“以前”
,“pchip”
,“v5cubic”
,“makima”
,或“样条”
|带值的字符向量“线性”
,“立方”
,“下一个”
,“以前”
,“pchip”
,“v5cubic”
,“makima”
,或样条的
插补方法,指定为由逗号分隔的对组成“InterpMethod”
和使用受支持值的标量字符串或字符向量。万博1manbetx有关插值方法的更多信息,请参见interp1
.
数据类型:字符
|字符串
ShortExtrapMethod
- - - - - -第一个数据之前数据的外推方法
“下一个”
(默认)|带值的字符串“线性”
,“下一个”
,“以前”
,“pchip”
,“立方”
,“v5cubic”
,“makima”
,或“样条”
|带值的字符向量“线性”
,“下一个”
,“以前”
,“pchip”
,“立方”
,“v5cubic”
,“makima”
,或样条的
外推方法用于在第一个数据之前的数据,指定为由逗号分隔的对组成“ShortExtrapMethod”
和使用受支持值的标量字符串或字符向量。万博1manbetx有关插值方法的更多信息,请参见interp1
.
数据类型:字符
|字符串
LongExtrapMethod
- - - - - -上一数据后数据的外推方法
“以前”
(默认)|带值的字符串“线性”
,“下一个”
,“以前”
,“pchip”
,“立方”
,“v5cubic”
,“makima”
,或“样条”
|带值的字符向量“线性”
,“下一个”
,“以前”
,“pchip”
,“立方”
,“v5cubic”
,“makima”
,或样条的
外推方法用于在最后一个数据之后的数据,指定为由逗号分隔的对组成“LongExtrapMethod”
和使用受支持值的标量字符串或字符向量。万博1manbetx有关插值方法的更多信息,请参见interp1
.
数据类型:字符
|字符串
DiscountCurve
- - - - - -ratecurve
现金流贴现的对象
ratecurve.empty
(默认)|标量ratecurve
对象
ratecurve
对象的现金流贴现,指定为逗号分隔的对,由“DiscountCurve”
和先前创建的名称ratecurve
对象。
数据类型:对象
ConvexityAdjustment
- - - - - -凸度调整STIRFuture
仪器
0
(默认)|数值向量
一个或多个凸度调整STIRFuture
仪器,指定为逗号分隔的一对,由“ConvexityAdjustment”
和一个NFutures
——- - - - - -1
数值向量。
请注意
你只能使用ConvexityAdjustment
当使用irbootstrap
与一个STIRFuture
乐器。的长度ConvexityAdjustment
向量必须匹配的数STIRFuture
仪器。
数据类型:双
输出参数
版本历史
R2020a中引入MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。