主要内容

irbootstrap

从市场数据引导利率曲线

描述

例子

外曲= irbootstrap (BootInstruments解决创建用于存储利率期限结构数据的数据结构。的外曲输出是ratecurve对象。

例子

外曲= irbootstrap (___名称,值除前面语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,OutCurve = irbootstrap(解决,BootInstruments,'类型',"零",'复合',2,'基础',5,'InterpMethod',"立方")引导一个零曲线BootInstruments

例子

全部折叠

定义存款和交换参数

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:“上一个”

此示例显示如何创建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:“上一个”

创建一个BootInstruments变量作为的输入参数irbootstrap创建一个速率曲线对象。的BootInstruments变量OISFuture1个月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:“上一个”

创建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 (“零率”)标题(“引导曲线”

图中包含一个轴对象。标题为bootstrap Curve的axes对象包含一个类型为line的对象。

输入参数

全部折叠

仪器的集合,指定为仪器对象的数组。仪器的收集可以包括存款交换联邦铁路局STIRFutureOISFuture,OvernightIndexedSwap仪器。

数据类型:对象

结算日期,指定为标量日期时间、字符串或日期字符向量。

要支持万博1manbetx现有代码,irbootstrap也接受序列号作为输入,但不建议使用。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:OutCurve = irbootstrap(解决,BootInstruments,'类型',"零",'复合',2,'基础',5,'InterpMethod',"立方")

利率曲线的类型,指定为逗号分隔的对,由“类型”和标量字符串或字符向量。

请注意

当你使用irbootstrap,指定的值类型会影响曲线构造,因为它会影响在自举过程中插入的数据类型(即正向利率、零利率或贴现因子)。

数据类型:字符|字符串

复合频率,指定为逗号分隔的对,由“复合”和使用支持值的标量数字:万博1manbetx10123.46,或12

数据类型:

日计数基础,指定为逗号分隔的对,由“基础”一个标量整数。

  • 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”和使用受支持值的标量字符串或字符向量。万博1manbetx有关插值方法的更多信息,请参见interp1

数据类型:字符|字符串

外推方法用于在第一个数据之前的数据,指定为由逗号分隔的对组成“ShortExtrapMethod”和使用受支持值的标量字符串或字符向量。万博1manbetx有关插值方法的更多信息,请参见interp1

数据类型:字符|字符串

外推方法用于在最后一个数据之后的数据,指定为由逗号分隔的对组成“LongExtrapMethod”和使用受支持值的标量字符串或字符向量。万博1manbetx有关插值方法的更多信息,请参见interp1

数据类型:字符|字符串

ratecurve对象的现金流贴现,指定为逗号分隔的对,由“DiscountCurve”和先前创建的名称ratecurve对象。

数据类型:对象

一个或多个凸度调整STIRFuture仪器,指定为逗号分隔的一对,由“ConvexityAdjustment”和一个NFutures——- - - - - -1数值向量。

请注意

你只能使用ConvexityAdjustment当使用irbootstrap与一个STIRFuture乐器。的长度ConvexityAdjustment向量必须匹配的数STIRFuture仪器。

数据类型:

输出参数

全部折叠

速率曲线,返回为aratecurve对象。该对象具有以下属性:

  • 类型

  • 解决

  • 复合

  • 基础

  • 日期

  • 利率

  • InterpMethod

  • ShortExtrapMethod

  • LongExtrapMethod

版本历史

R2020a中引入

全部展开