主要内容

hwcalbyfloor

校准Hull-White树使用地板

描述

例子

(α,σ,OptimOut)= hwcalbyfloor (RateSpec,MarketStrikeMarketMaturity,MarketVolatility)校准的α(均值回归)σ(波动)使用地板市场数据和Hull-White模型使用整个地板表面。

Hull-White校准函数(hwcalbyfloorhwcalbycap)支金宝app持三种模式:黑色(默认),Bachelier或正常,将黑色的。有关更多信息,请参见的可选参数转变模型

例子

(α,σ,OptimOut= hwcalbyfloor (RateSpec,MarketStrikeMarketMaturity,MarketVolatility,罢工,解决,成熟)估计,α(均值回归)σ(波动)使用地板市场数据和Hull-White模型价格在特定成熟度/地板使用额外的可选的输入参数波动罢工,解决,成熟

罢工,解决,成熟指定参数校准市场波动表面上的一个特定点。如果省略,在所有的市场工具执行校准

对校准使用Hull-White模型的一个例子罢工,解决,成熟输入参数,请参阅使用市场数据校准Hull-White模型

例子

(α,σ,OptimOut)= hwcalbyfloor (___,名称,值)添加可选名称-值对参数。

例子

全部折叠

这个例子展示了如何使用hwcalbyfloor输入参数为MarketStrike,MarketMaturity,MarketVolatility校准HW模型使用整个地板表面波动。

地板市场波动数据覆盖两个罢工在12到期日期。

重置= 4;MarketStrike = (0.0590;0.0790);MarketMaturity = {“21 - 3月- 2008”;截止2008年6月21日的;“21 - 9 - 2008”;”21日- 12月- 2008;“21 - 3月- 2009”;截止2009年6月21日的;“21 - 9 - 2009”;”21日- 12月- 2009;“21 - 3月- 2010”;截止2010年6月21日的;“21 - 9 - 2010”;”21日- 12月- 2010};MarketMaturity = datenum (MarketMaturity);MarketVolaltility = [0.1533 0.1731 0.1727 0.1752 0.1809 0.1800 0.1805 0.18020.1735 0.1757 0.1755 0.1755;0.1526 0.1730 0.1726 0.1747 0.1808 0.1792 0.1797 0.17940.1733 0.1751 0.1750 0.1745);

策划市场波动表面。

[AllMaturities, AllStrikes] = meshgrid (MarketMaturity MarketStrike);图;冲浪(AllMaturities AllStrikes MarketVolaltility) datetick包含(“成熟”)ylabel (“罢工”)zlabel (“波动”)标题(“市场波动数据”)

利率期限结构和创建一个RateSpec

解决=“21日- 1月- 2008”;复合= 4;基础= 0;率= (0.0627;0.0657;0.0691;0.0717;0.0739;0.0755;0.0765; 0.0772; 0.0779; 0.0783; 0.0786; 0.0789]; EndDates = {“21 - 3月- 2008”;截止2008年6月21日的;“21 - 9 - 2008”;”21日- 12月- 2008;“21 - 3月- 2009”;截止2009年6月21日的;“21 - 9 - 2009”;”21日- 12月- 2009;“21 - 3月- 2010”;截止2010年6月21日的;“21 - 9 - 2010”;”21日- 12月- 2010};RateSpec = intenvset (“ValuationDate”解决,startdate可以的解决,“EndDates”EndDates,“利率”率,“复合”复合,“基础”基础)
RateSpec = FinObj:“RateSpec”复合:4盘:[12 x1双]利率:x1双[12]EndTimes: [12 x1双]开始时间:x1双[12]EndDates: x1双[12]startdate可以:733428 ValuationDate: 733428: 0 EndMonthRule: 1

从市场数据校准Hull-White模型。

o = optimoptions (“lsqnonlin”,“TolFun”1 e-5“显示”,“关闭”);(ασ)= hwcalbyfloor (RateSpec、MarketStrike MarketMaturity,MarketVolaltility,“重置”重置,“基础”的基础上,“OptimOptions”啊,)
警告:LSQNONLIN不收敛到最优解。它退出exitflag = 3。在hwcalbycapfloor > > optimizeOverCapSurface 232在79年hwcalbycapfloor hwcalbyfloor 81α= 0.0835σ= 0.0145

黑色的价格进行比较。

BlkPrices = floorbyblk (RateSpec AllStrikes (:),, AllMaturities (:),MarketVolaltility (:),“重置”重置,“基础”基础)
BlkPrices = 0 0.2659 0.0010 0.5426 0.0021 0.6841 0.0042 0.7947 0.0081 0.8970 0.0128 0.9947 0.0217 1.1145 0.0340 1.2448 0.0402 1.3415 0.0610 1.4947 0.0827 1.6458 0.1071 1.7951

使用校准参数设置Hull-White树、ασ。

VolDates = EndDates;VolCurve =σ*的(元素个数(EndDates), 1);AlphaDates = EndDates;AlphaCurve =α*的(元素个数(EndDates), 1);HWVolSpec = HWVolSpec(结算、VolDates VolCurve, AlphaDates, AlphaCurve);HWTimeSpec = HWTimeSpec(结算、EndDates复合);HWTree = HWTree (HWVolSpec RateSpec HWTimeSpec,“方法”,“HW2000”)
HWTree = FinObj:“HWFwdTree”VolSpec: [1 x1 struct] TimeSpec: [1 x1 struct] RateSpec: [1 x1 struct]则:[0 0.6593 1.6612 2.6593 3.6612 4.6593 5.6612 6.6593 7.6612 8.6593 9.6612 10.6593]罗伯特:[733428 733488 733580 733672 733763 733853 733945 734037 734128 734218 734310 734402]CFlowT: {1} x12细胞聚合氯化铝:}{1 x11细胞连接:{1 x11细胞}FwdTree: {1} x12细胞

根据校准计算Hull-White价格树。

HWPrices = floorbyhw (HWTree AllStrikes (:),, AllMaturities(:),重置,基础)
HWPrices = 0 0.2644 0.0067 0.5404 0.0101 0.6924 0.0169 0.7974 0.0236 0.8919 0.0320 0.9919 0.0460 1.1074 0.0649 1.2340 0.0829 1.3558 0.1096 1.4957 0.1406 1.6418 0.1724 1.7877

情节黑色价格对校准Hull-White树。

图;BlkPrices情节(AllMaturities (:),”或“HWPrices AllMaturities (:),‘* b”);datetick (“x”(2)包含“成熟”);ylabel (“价格”);标题(“黑和校准(HW)价格”);传奇(“黑价格”,“校准HW树价格”,“位置”,“西北”);网格

这个例子展示了如何使用hwcalbyfloor校准市场数据与正常价格floorlets (Bachelier)模型。使用正常(Bachelier)模型执行校准使用负利率时,罢工,和正常的隐含波动率。

考虑一个地板与这些参数:

解决= datetime (2016、12、30);成熟= datetime (2019、12、30);罢工= -0.004075;重置= 2;校长= 100;基础= 0;

floorlets和市场数据对于这个例子被定义为:

floorletDates = cfdates(结算、成熟度、重置基础);datestr (floorletDates”)
ans =6 x11 char数组30——2017年6月,“30 - 12月- 2017年的30 - 2018年6月,“30 - 12月- 2018年的30——2019年6月,“30 - 12月- 2019 '
%的市场数据信息MarketStrike = (-0.00595;0);MarketMat = [datetime (2017、6、30);datetime(2017, 12日,30);datetime (2018、6、30);datetime(2018, 12日,30);datetime (2019、6、30);datetime (2019、12、30)];MarketVol = [0.184 0.2329 0.2398 0.2467 0.2906 - 0.3348;%第一行对应表10.217 0.2707 0.2760 0.2814 0.3160 - 0.3508);%罢工相关表2中第二行

定义RateSpec使用intenvset

率= (-0.003210;-0.003020;-0.00182;-0.001343;-0.001075);ValuationDate = datetime (2016、12、30);EndDates = [datetime (2017、6、30);datetime(2017, 12日,30);datetime (2018、6、30);datetime(2018, 12日,30);datetime (2019、12、30)];复合= 2;基础= 0;RateSpec = intenvset (“ValuationDate”ValuationDate,startdate可以的ValuationDate,“EndDates”EndDates,“利率”率,“复合”复合,“基础”、基础);

使用hwcalbyfloor发现波动率参数的值ασ使用正常(Bachelier)模型。

格式o = optimoptions (“lsqnonlin”,“TolFun”,100 * eps);警告(“关闭”,“fininst: hwcalbycapfloor: NoConverge”)[ασ,OptimOut] = hwcalbyfloor (RateSpec、MarketStrike MarketMat,MarketVol,罢工,解决,成熟,“重置”重置,“校长”校长,“基础”的基础上,“OptimOptions”阿,,“模型”,“正常”)
局部最小值。lsqnonlin停止因为当前步骤的大小小于步长值的宽容。
α= 1.0000 e-06
σ= 0.3410
OptimOut =结构体字段:resnorm: 1.9233 e-04残留:x1双[5]exitflag: 2输出:[1 x1 struct]λ:雅可比矩阵[1 x1 struct]: [5 x2双)

OptimOut.residual场的OptimOut结构优化残余。这个值包含正常的区别(Bachelier) floorlets和那些在优化计算。使用OptimOut.residual值计算percentual差异(错误),而正常(Bachelier) floorlet价格,然后决定是否残留是可以接受的。几乎总是有一些剩余,所以决定是否接受参数化市场的一个值ασ

价格floorlets使用市场数据和正常(Bachelier)模型获取参考floorlet值。确定优化的有效性,计算参考使用正常(Bachelier) floorlet值公式和市场数据。请注意,您必须首先插入的市场数据获取floorlets计算。

MarketMatNum = datenum (MarketMat);[垫、罢工]= meshgrid (MarketMatNum MarketStrike);FlatVol = interp2(垫、罢工、MarketVol datenum(成熟),罢工,样条的);[FloorPrice, Floorlets] = floorbynormal (RateSpec,罢工,解决、成熟度、FlatVol“重置”重置,“基础”的基础上,“校长”、校长);Floorlets = Floorlets(2:结束)
Floorlets =5×14.7637 6.7180 8.1833 9.5825 10.6090

比较优化值和正常(Bachelier)值,并以图形方式显示结果。计算floorlets引用值后,比较分析和图形化的值来确定单个值的计算ασ提供一个适当的近似。

OptimFloorlets = Floorlets + OptimOut.residual;disp (' ');

                    
disp (“Bachelier校准Floorlets”);
Bachelier校准Floorlets
disp ([Floorlets OptimFloorlets])
4.7637 4.7685 6.7180 6.7263 8.1833 8.1878 9.5825 9.5795 10.6090 10.6007
情节(MarketMatNum(2:结束),Floorlets,”或“OptimFloorlets MarketMatNum(2:结束),‘* b”);datetick (“x”(2)包含“Floorlet成熟度”);ylabel (“Floorlet价格”);ylim ([0 16]);标题(“Bachelier和校准Floorlets”);h =传奇(“Bachelier Floorlets”,“校准Floorlets”);集(h,“颜色”[0.9 0.9 0.9]);集(h,“位置”,“东南”);集(gcf,“NumberTitle”,“关闭”网格)

图包含一个坐标轴对象。与标题Bachelier和校准Floorlets坐标轴对象,包含Floorlet成熟,ylabel Floorlet价格包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表Bachelier Floorlets,校准Floorlets。

输入参数

全部折叠

利率规范初始速率曲线,指定的RateSpec获得intenvset。利率的规范信息,请参阅intenvset

数据类型:结构体

市场上罢工,指定为一个NINST——- - - - - -1向量。

数据类型:

市场上成熟日期,指定为一个NINST——- - - - - -1使用datetime向量数组,字符串数组,或日期特征向量。

支持现金宝app有的代码,hwcalbyfloor还接受连续日期数据作为输入,但不推荐。

市场波动,指定为一个NSTRIKES——- - - - - -NMATS矩阵的市场平波动,NSTRIKES罢工是囊片的数量MarketStrikeNMATS囊片成熟日期来自哪里MarketMaturity

数据类型:

(可选)速率地板上行使,指定为小数标量值。

数据类型:

(可选)结算日期,指定为一个标量datetime,字符串,或数据特征向量。

支持现金宝app有的代码,hwcalbyfloor还接受连续日期数据作为输入,但不推荐。

(可选)到期日的地板上,指定为标量datetime,字符串,或数据特征向量。

支持现金宝app有的代码,hwcalbyfloor还接受连续日期数据作为输入,但不推荐。

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:[ασ,OptimOut] = hwcalbyfloor (RateSpec、MarketStrike MarketMaturity, MarketVolaltility,“重置”,2,“校长”,100000年,“基础”,3,OptimOptions, o)

每年支付的频率,指定为逗号分隔组成的“重置”和一个标量数值。

数据类型:

名义本金,指定为逗号分隔组成的“校长”和一个标量非负整数。

数据类型:

日计数的基础上按年计算输入时使用远期利率,指定为逗号分隔组成的“基础”和一个标量值。值:

  • 0 =实际/实际

  • 1 = 30/360 (SIA)

  • 2 =实际/ 360

  • 3 =实际/ 365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360(欧洲)

  • 7 =实际/ 365(日本)

  • 8 =实际/实际(国际)

  • 9 =实际/ 360(国际)

  • 10 =实际/ 365(国际)

  • 11 = 30/360E(国际)

  • 12 =实际/ 365 (ISDA)

  • 13 =总线/ 252

有关更多信息,请参见基础

数据类型:

下界,指定为逗号分隔组成的“磅”和一个2——- - - - - -1向量的下界,定义为[LBSigma;LBAlpha]搜索算法中使用的函数。有关更多信息,请参见lsqnonlin

数据类型:

上界,指定为逗号分隔组成的乌兰巴托的和一个2——- - - - - -1向量的上界,定义为[UBSigma;LBAlpha]搜索算法中使用的函数。有关更多信息,请参见lsqnonlin

数据类型:

初始值,指定为逗号分隔组成的“XO”和一个2——- - - - - -1向量的初始值,定义为[Sigma0;Alpha0]搜索算法中使用的函数。有关更多信息,请参见lsqnonlin

数据类型:

优化参数,指定为逗号分隔组成的“OptimOptions”和结构定义使用optimoptions

数据类型:结构体

小数的转变对于移位的黑色模型,指定为逗号分隔组成的“转变”和一个标量积极的十进制值。将这个参数设置为一个积极的转变小数远期利率和增加积极的转变罢工,有效集远期利率和消极的下界罢工。例如,一个转变的价值0.01等于1%的转变。

数据类型:

指标模型用于校准程序,指定为逗号分隔组成的“模型”和一个标量值的特征向量正常的对数正态

数据类型:字符

输出参数

全部折叠

均值回归价值获得校准地板利用市场信息,作为一个标量值返回。

波动值获得校准地板利用市场信息,作为一个标量返回。

优化的结果,作为一个结构返回。

版本历史

介绍了R2009a

全部展开