主要内容

双曲线引导

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

定义数据

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

处理= 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 '});EONIAFRABasis = 2;%行为/ 360EONIAFRAPeriod = 0;交换数据%EONIASwapRates = [.]0003 .001 .002 .004 .008 .012 .0155 .018 .0193 .02]';EONIASwapMat = datemnth(确定,12*[2:5 7 10 15 20 25 30]');EONIASwapBasis = 5;% 30/360 isdaEONIASwapPeriod = 1;EURIBOR存款数据EURIBORDepositRates =[。]0022 .0021 .002 .0019]';EURIBORDepositMat = datenum({' 3 - 9月- 2013 '“20 - 9 - 2013”“21 - 10月- 2013”20 - 11月- 2013 '});EURIBORDepositBasis = 2;%行为/ 360EURIBORDepositPeriod = 0;EURIBOR期货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});EURIBORFRABasis = 2;%行为/ 360euriborfrperiod = 4;EURIBOR交换数据EURIBORSwapRates =[。]0026 .0044 .0062 .0082 .012 .015 .018 .02 .021 .0215]';EURIBORSwapMat = datemnth(结算,12*[2:5 7 10 15 20 25 30]');EURIBORSwapBasis = 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)];EONIAFRAStartDate;repmat(Settle,[nEONIASwaps 1]) = [[repmat(Settle,[nEONIASwaps 1])]...[EONIADepositMat; EONIAFRAEndDate; EONIASwapMat]...[EONIADepositRates; EONIAFRARates EONIASwapRates]];= IRDataCurve.bootstrap(CurveType,Settle,EONIAInstrumentTypes,...EONIAInstrumentData,“复合”CurveCompounding,“基础”CurveBasis,...“InstrumentPeriod”EONIAPeriod,“InstrumentBasis”EONIABasis)
EONIACurve =类型:零结算:735466(20- 8 -2013)复合:1基础:3(实际/365)interp方法:线性日期:[16x1 double]数据:[16x1 double]

创建EURIBOR远期曲线

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

euribordeposits = length(EURIBORDepositMat);euriborfra =长度(EURIBORFRAEndDate);euriborswap = length(EURIBORSwapMat);euriborinstrumentation types = [repmat({“存款”} nEURIBORDeposits 1);repmat ({“期货”} nEURIBORFRA 1); repmat ({“交换”} nEURIBORSwaps 1)];EURIBORPeriod = [repmat(EURIBORDepositPeriod, euribordeposits,1);repmat (EURIBORFRAPeriod nEURIBORFRA 1); repmat (EURIBORSwapPeriod nEURIBORSwaps 1)];EURIBORBasis = [repmat(EURIBORDepositBasis, euribordeposits,1);repmat (EURIBORFRABasis nEURIBORFRA 1); repmat (EURIBORSwapBasis nEURIBORSwaps 1)];euriborinstruments data = [repmat(结算,size(euriborinstruments types))]...[EURIBORDepositMat; EURIBORFRAEndDate; EURIBORSwapMat]...[EURIBORDepositRates; EURIBORFRARates EURIBORSwapRates]];EURIBORCurve_Single = IRDataCurve.bootstrap(CurveType,Settle, euriborinstrumentation types,...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, euriborinstrumentation types,...EURIBORInstrumentData,“DiscountCurve”EONIACurve,“复合”...CurveCompounding,“基础”CurveBasis,“InstrumentPeriod”EURIBORPeriod,...“InstrumentBasis”EURIBORBasis)
EURIBORCurve =类型:零结算:735466 (20-Aug-2013)复利:1基础:3(实际/365)interp方法:线性日期:[18x1 double]数据:[18x1 double]

绘制结果图

绘制结果以比较曲线。

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

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

参考书目

这个例子来自以下论文和期刊文章:

阿米特拉诺,F,比安凯蒂,M。关于多重利率曲线自举,你一直想知道却不敢问的一切。(2013年4月2日),网址:https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2219548

[2] M。两条曲线,一个价格。风险杂志,74-80页,2010年8月。

[3]藤井,M,岛田,Y,高桥,A。关于有无抵押品的多重互换曲线的构造注记。(2010年1月2日),CARF工作文件第1号。CARF-F-154,可在:https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1440633

墨丘利奥,法比奥。利率和信贷紧缩:新公式和市场模型。(2009年2月5日),《彭博投资组合研究报告》第1期。

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

另请参阅

||||

相关的例子

更多关于

外部网站