主要内容

双曲线引导

这个例子展示了如何使用不同的折现曲线引导一条正向曲线。

定义数据

远期和贴现曲线都需要数据。对于这个特定的例子,假设提供了EONIA(贴现曲线)和EURIBOR(远期曲线)的数据。然而,这种方法可以用在任何情况下,要建立的曲线不同于用于折现现金流的曲线。虽然本例中的数据是硬编码的,但也可以导入到MATLAB中®使用Datafeed工具箱™或数据库工具箱™。

set = datenum(20 - 8月- 2013 ');存款数据EONIADepositRates =[。0007 .00067];EONIADepositMat = datenum({' 3 - 9月- 2013 '“20 - 9 - 2013”});EONIADepositBasis = 2;%行为/ 360EONIADepositPeriod = 0;%联邦铁路局EONIAFRARates =[。00025 .0003 .00043 .00054]';EONIAFRAStartDate = datenum({“11 - 9 - 2013”9 - 10月- 2013 '' 13 - 11月- 2013 '的11 - 12月- 2013});EONIAFRAEndDate = datenum({9 - 10月- 2013 '' 13 - 11月- 2013 '的11 - 12月- 2013' 11 - 1月- 2014 '});艾螨病= 2;%行为/ 360EONIAFRAPeriod = 0;交换数据EONIASwapRates =[。0003 .001 .002 .004 .008 .012 .0155 .018 .0193 .02]';EONIASwapMat = datemnth(Settle,12*[2:5 7 10 15 20 25 30]');EONIASwapBasis = 5;% 30/360 isdaEONIASwapPeriod = 1;存款数据欧元银行存款利率=[。0022 .0021 .002 .0019]';EURIBORDepositMat = datenum({' 3 - 9月- 2013 '“20 - 9 - 2013”“21 - 10月- 2013”20 - 11月- 2013 '});EURIBORDepositBasis = 2;%行为/ 360EURIBORDepositPeriod = 0;欧元同业拆借利率期货EURIBORFRARates = [9982 9978 9976 9975]';EURIBORFRAStartDate = datenum({“18 - 12月- 2013“19 - 3月- 2014”“18 - 2014年6月- - - - - -”的17 - 9月- 2014});EURIBORFRAEndDate = datenum({“18 - 3月- 2014”截止2014年6月19日的“18 - 9 - 2014”的17 - 12月- 2014});欧洲borfrabasis = 2;%行为/ 360EURIBORFRAPeriod = 4;EURIBOR交换数据eurborswaprates = [.]0026 .0044 .0062 .0082 .012 .015 .018 .02 .021 .0215]';EURIBORSwapMat = datemnth(结算,12*[2:5 7 10 15 20 25 30]');eurborswapbasis = 5;% 30/360 isdaEURIBORSwapPeriod = 1;

创建EONIA折现曲线

建立EONIA曲线。这和单曲线的情况是一样的。

CurveType =“零”;曲率调制= 1;CurveBasis = 3;%行为/ 365nEONIADeposits = length(EONIADepositMat);nEONIAFRA = length(EONIAFRAEndDate);nEONIASwaps = length(EONIASwapMat);EONIAInstrumentTypes = [repmat({“存款”} nEONIADeposits 1);repmat ({联邦铁路局的} nEONIAFRA 1); repmat ({“交换”} nEONIASwaps 1)];EONIAPeriod = [repmat(EONIADepositPeriod,nEONIADeposits,1);repmat (EONIAFRAPeriod nEONIAFRA 1); repmat (EONIASwapPeriod nEONIASwaps 1)];EONIABasis = [repmat(EONIADepositBasis,nEONIADeposits,1);repmat (EONIAFRABasis nEONIAFRA 1); repmat (EONIASwapBasis nEONIASwaps 1)];EONIAInstrumentData = [[repmat(Settle,[nEONIADeposits 1]);EONIAFRAStartDate;repmat(Settle,[nEONIASwaps 1])]...[EONIADepositMat; EONIAFRAEndDate; EONIASwapMat]...[EONIADepositRates; EONIAFRARates EONIASwapRates]];EONIACurve = IRDataCurve.bootstrap(CurveType,Settle,EONIAInstrumentTypes,...EONIAInstrumentData,“复合”CurveCompounding,“基础”CurveBasis,...“InstrumentPeriod”EONIAPeriod,“InstrumentBasis”EONIABasis)
EONIACurve =类型:零结算:735466(20- 8月2013)复合:1基础:3(实际/365)InterpMethod:线性日期:[16x1 double]数据:[16x1 double]

创建EURIBOR远期曲线

EURIBOR远期曲线首先使用单曲线方法构建。

nEURIBORDeposits = length(EURIBORDepositMat);nEURIBORFRA = length(EURIBORFRAEndDate);euriborswap = length(EURIBORSwapMat);EURIBORInstrumentTypes = [repmat({“存款”} nEURIBORDeposits 1);repmat ({“期货”} nEURIBORFRA 1); repmat ({“交换”} nEURIBORSwaps 1)];EURIBORPeriod = [repmat(EURIBORDepositPeriod,nEURIBORDeposits,1);repmat (EURIBORFRAPeriod nEURIBORFRA 1); repmat (EURIBORSwapPeriod nEURIBORSwaps 1)];EURIBORBasis = [repmat(EURIBORDepositBasis,nEURIBORDeposits,1);repmat (EURIBORFRABasis nEURIBORFRA 1); repmat (EURIBORSwapBasis nEURIBORSwaps 1)];EURIBORInstrumentData = [repmat(set,size(EURIBORInstrumentTypes))]...[EURIBORDepositMat; EURIBORFRAEndDate; EURIBORSwapMat]...[EURIBORDepositRates; EURIBORFRARates EURIBORSwapRates]];EURIBORCurve_Single = IRDataCurve.bootstrap(CurveType,Settle,EURIBORInstrumentTypes,...EURIBORInstrumentData,“复合”CurveCompounding,“基础”CurveBasis,...“InstrumentPeriod”EURIBORPeriod,“InstrumentBasis”EURIBORBasis)
EURIBORCurve_Single =类型:零结算:735466 (20- aug 2013)复合:1基础:3(实际/365)InterpMethod:线性日期:[18x1 double]数据:[18x1 double]

用EONIA曲线构建EURIBOR曲线

接下来,使用EONIA曲线作为折现曲线构建一条曲线。为此,指定EONIA曲线作为可选输入参数。

EURIBORCurve = IRDataCurve.bootstrap(CurveType,Settle,EURIBORInstrumentTypes,...EURIBORInstrumentData,“DiscountCurve”EONIACurve,“复合”...CurveCompounding,“基础”CurveBasis,“InstrumentPeriod”EURIBORPeriod,...“InstrumentBasis”EURIBORBasis)
EURIBORCurve =类型:零结算:735466 (20- august 2013)复利:1基础:3(实际/365)InterpMethod:线性日期:[18x1 double]数据:[18x1 double]

绘制结果图

把结果画出来比较曲线。

PlottingDates =(结算+20:30:结算+365*30)';timetommaturity = yearfrac(确定,PlottingDates);figure plot(timetommaturity, getZeroRates(EONIACurve, PlottingDates),“b”)举行plot(timetommaturity, getZeroRates(EURIBORCurve_Single, PlottingDates),“r”) plot(timetommaturity, getZeroRates(EURIBORCurve, PlottingDates),‘g’)标题(单曲线和双曲线自举的比较)({传奇“欧元”“欧元区银行间同业拆借EURIBOR / EONIA贴现},“位置”“东南”

正如预期的那样,两条不同的EURIBOR曲线之间的差异很小,但并非微不足道。

参考书目

本例摘自以下论文和期刊文章:

amtrano, F, Bianchetti, M。关于多重利率曲线Bootstrapping你一直想知道但又不敢问的一切。(2013年4月2日),可于https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2219548

[2]比安凯蒂,M。两条曲线,一个价格。《风险杂志》,第74-80页,2010年8月。

藤井M岛田Y高桥A有和没有抵押品的多重互换曲线的构造注释。(2010年1月2日),CARF工作文件系列第1号。CARF-F-154,可在以下地址购买:https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1440633

[4] Mercurio,法比奥。利率与信贷紧缩:新公式与市场模型。(2009年2月5日),彭博投资组合研究论文No. 2010-01-31。

[5]纳希卡,A。理解OIS贴现。,巴克莱资本利率策略,2011年2月24日。

另请参阅

||||

相关的例子

更多关于

外部网站