主要内容

hwcalbyfloor

使用地板校准赫尔-怀特树

描述

例子

ασOptimOut) = hwcalbyfloor (RateSpecMarketStrikeMarketMaturityMarketVolatility校准的α(均值回归)σ(波动性)使用地板市场数据和赫尔-怀特模型使用整个地板表面。

赫尔-怀特校正功能(hwcalbyfloorhwcalbycap)支金宝app持三种模式:黑色(默认),Bachelier或Normal,移位黑色。有关更多信息,请参见的可选参数转变模型

例子

ασOptimOut= hwcalbyfloor (RateSpecMarketStrikeMarketMaturityMarketVolatility罢工解决成熟估计,α(均值回归)σ(波动率)使用底部市场数据和赫尔-怀特模型,使用额外的可选输入参数,在特定的成熟度/波动率为底部定价罢工解决,成熟

罢工解决,成熟参数被指定为校准到市场波动表面的一个特定点。如果省略,则对所有市场仪器进行校准

以Hull-White模型为例进行标定罢工解决,成熟输入参数,请参阅利用市场数据校准赫尔白模型

例子

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

例子

全部折叠

这个例子展示了如何使用hwcalbyfloor输入参数为MarketStrikeMarketMaturity,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);市场波动率= [0.1533 0.1731 0.1727 0.1752 0.1809 0.1800 0.1805 0.1802...0.1735 0.1757 0.1755 0.1755;0.1526 0.1730 0.1726 0.1747 0.1808 0.1792 0.1797 0.1794...0.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盘:[12x1 double] Rates: [12x1 double] EndTimes: [12x1 double] StartTimes: [12x1 double] EndDates: [12x1 double] StartDates: 733428 ValuationDate: 733428 Basis: 0 endmonth规则:1

根据市场数据校准赫尔白模型。

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

与黑色价格相比。

BlkPrices = floorbyblk(RateSpec,AllStrikes(:), Settle, allexpiry (:),...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 . BlkPrices = 0 0.2659 0.0010 0.5426 0.0021 0.6841 0.0042 0.7947 0.0081 0.8970

设置赫尔-怀特树使用校准参数,阿尔法和西格玛。

VolDates = EndDates;VolCurve =σ*的(元素个数(EndDates), 1);AlphaDates = EndDates;AlphaCurve =α*的(元素个数(EndDates), 1);HWVolSpec = HWVolSpec (Settle, VolDates, VolCurve, AlphaDates, AlphaCurve);HWTimeSpec = HWTimeSpec(结算,结束日期,复利);HWTree = HWTree (HWVolSpec, RateSpec, HWTimeSpec,“方法”“HW2000”
HWTree = FinObj: 'HWFwdTree' VolSpec: [1x1 struct] TimeSpec: [1x1 struct] RateSpec: [1x1 struct] tObs: [0 0.6593 1.6612 2.6593 3.6612 4.6593 5.6693 6.6593 8.6593 9.6612 10.6593] dObs: [733428 733488 733580 733672 733763 733853 733945 734037 734128 734218 734310 734402] CFlowT: {1x12 cell} probes: {1x11 cell} Connect: {1x11 cell} FwdTree:{1 x12细胞}

根据校准的树计算赫尔白价格。

HWPrices = floorbyhw(HWTree, AllStrikes(:), Settle, all到期(:),Reset, Basis)
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

绘制黑价格与校准的赫尔-怀特树价格。

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

这个例子展示了如何使用hwcalbyfloor用Normal (Bachelier)模型校正市场数据,为地板定价。在处理负利率、打击和正常隐含波动时,使用Normal (Bachelier)模型进行校准。

考虑具有以下参数的地板:

解决=“12月- 30 - 2016”;成熟=“12月- 30 - 2019”;罢工= -0.004075;重置= 2;校长= 100;基础= 0;

本例的地板面积和市场数据定义为:

floorletDates = cfdates(结算,到期日,重置,基础);datestr (floorletDates”)
ans =6 x11 char数组“30-Jun-2017”“30- 12 -2017”“30-Jun-2018”“30- 12 -2018”“30-Jun-2019”“30- 12 -2019”
市场数据信息MarketStrike = (-0.00595;0);MarketMat = {“30 - 2017年6月- - - - - -”30 - 12月- 2017 '“30 - 2018年6月- - - - - -”30 - 12月- 2018 '“30 - 2019年6月- - - - - -”30 - 12月- 2019 '};市场波动率= [0.184 0.2329 0.2398 0.2467 0.2906 0.3348;%表中与Strike 1对应的第一行0.217 0.2707 0.2760 0.2814 0.3160 0.3508];%表中第二行对应Strike 2

定义RateSpec

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

使用hwcalbyfloor来寻找波动率参数的值ασ使用Normal (Bachelier)模型。

格式o = optimoptions (“lsqnonlin”“TolFun”, 100 * eps);警告(“关闭”“fininst: hwcalbycapfloor: NoConverge”) [Alpha, Sigma, OptimOut] = hwcalbyfloor(RateSpec, MarketStrike, MarketMat,...市场波动,罢工,结算,到期,“重置”重置,“校长”校长,...“基础”的基础上,“OptimOptions”阿,,“模型”“正常”
局部最小值。Lsqnonlin停止,因为当前步长小于步长公差的值。
α= 1.0000 e-06
σ= 0.3410
OptimOut =结构体字段:renorm: 1.9233e-04 residual: [5x1 double] exitflag: 2 output: [1x1 struct] lambda: [1x1 struct] jacobian: [5x2 double]

OptimOut.residual场的OptimOut结构是优化残差。这个值包含了正常(Bachelier)地板和优化期间计算的地板之间的差异。使用OptimOut.residual值计算与正常(Bachelier)楼板价格的百分比差(误差),然后决定剩余是否可接受。几乎总是有一些剩余,所以决定是否可以接受用单一的值来参数化市场ασ

使用市场数据和Normal (Bachelier)模型对地板进行定价,以获得参考地板价值。为了确定优化的有效性,使用Normal (Bachelier)公式和市场数据计算参考楼层值。注意,您必须首先插入市场数据,以获得地板计算。

MarketMatNum = datenum (MarketMat);[Mats, Strikes] = meshgrid(MarketMatNum, MarketStrike);FlatVol = interp2(Mats, Strikes, MarketVol, datenum(Maturity), Strike,样条的);[楼面价格,楼面面积]=按正常(费率,罢工,结算,到期,平卷,...“重置”重置,“基础”的基础上,“校长”、校长);Floorlets = Floorlets(2:结束)
Floorlets =5×14.7637 6.7180 8.1833 9.5825 10.6090

将优化值与Normal (Bachelier)值进行比较,并以图形方式显示结果。在计算出楼板的参考值后,对其进行分析和图解比较,以确定计算出的楼板的单值是否ασ提供一个适当的近似。

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

                   
disp (“Bachelier校准地板”);
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]);标题(“简约和校准的地板”);h =传奇(“Bachelier Floorlets”“校准Floorlets”);集(h,“颜色”, [0.9 0.9 0.9]);集(h,“位置”“东南”);集(gcf,“NumberTitle”“关闭”网格)

图中包含一个坐标轴。轴与标题Bachelier和校准地板包含两个对象的类型线。这些对象代表Bachelier Floorlets,校准Floorlets。

输入参数

全部折叠

初始利率曲线的利率规格,由RateSpec获得intenvset.有关利率规范的信息,请参阅intenvset

数据类型:结构体

市场地板罢工,指定为NINST——- - - - - -1向量。

数据类型:

市场最低到期日,指定为NINST——- - - - - -1向量。

数据类型:

市场平性波动,指定为NSTRIKES——- - - - - -NMATS市场平坦波动矩阵,其中NSTRIKES罢工的次数是多少MarketStrikeNMATS债券的到期日是从哪一天开始的MarketMaturity

数据类型:

(可选)执行下限的速率,指定为十进制标量值。

数据类型:

(可选)地板的结算日期,指定为标量序列号或日期字符。

数据类型:|字符

(可选)楼层的到期日期,指定为标量序列日期号或日期字符向量。

数据类型:|字符

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:[ασ,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 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 =实际/365 (ICMA)

  • 11 = 30/360e (icma)

  • 12 =实际/365 (ISDA)

  • 13 =总线/ 252

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

数据类型:

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

数据类型:

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

数据类型:

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

数据类型:

优化参数,指定为逗号分隔对组成“OptimOptions”以及由using定义的结构optimoptions

数据类型:结构体

移位的Black模型的小数移位,指定为逗号分隔对,由“转变”和一个标量正小数。将该参数设置为十进制正移位,以增加正向速率和正移位罢工,这实际上为远期利率和汇率设定了一个负的下限罢工.例如,一个转变的价值0.01等于1%的位移。

数据类型:

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

数据类型:字符

输出参数

全部折叠

利用市场信息校正地板的平均回归值,返回为标量值。

通过使用市场信息校准底部而得到的波动值,返回为标量。

优化结果,作为结构返回。

介绍了R2009a