主要内容

校准囊片使用正常(Bachelier)模型

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

考虑一个帽与这些参数:

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

这个例子的囊片和市场数据被定义为:

capletDates = cfdates(结算、成熟度、重置基础);datestr (capletDates”)
ans =6 x11 char数组30——2017年6月,“30 - 12月- 2017年的30 - 2018年6月,“30 - 12月- 2018年的30——2019年6月,“30 - 12月- 2019 '
%的市场数据信息MarketStrike = (-0.0013;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.002210;-0.002020;-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,“利率”率,“复合”复合,“基础”、基础);

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

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

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

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

MarketMatNum = datenum (MarketMat);[垫、罢工]= meshgrid (MarketMatNum MarketStrike);FlatVol = interp2(垫、罢工、MarketVol datenum(成熟),罢工,样条的);[CapPrice,囊片]= capbynormal (RateSpec,罢工,解决、成熟度、FlatVol“重置”重置,“基础”的基础上,“校长”、校长);囊片=囊片(2:结束)
囊片=5×14.7392 6.7799 8.2609 9.6136 10.6455

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

OptimCaplets =囊片+ OptimOut.residual;disp (' ');

              
disp (“Bachelier校准囊片”);
Bachelier校准囊片
disp([囊片OptimCaplets])
4.7392 4.7453 6.7799 6.7851 8.2609 8.2657 9.6136 9.6112 10.6455 10.6379
情节(MarketMatNum(2:结束),囊片,”或“OptimCaplets MarketMatNum(2:结束),‘* b”);datetick (“x”(2)包含“成熟囊片”);ylabel (“囊片价格”);ylim ([0 16]);标题(“Bachelier和校准囊片”);h =传奇(“Bachelier囊片”,“校准囊片”);集(h,“颜色”[0.9 0.9 0.9]);集(h,“位置”,“东南”);集(gcf,“NumberTitle”,“关闭”网格)

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

相关的话题