主要内容

校准Swaption仪器的移位SABR模型参数

此示例显示了如何校准位移传感器军刀模型参数挥霍当您使用军刀定价方法。

负荷市场数据

%零曲线估价日期=日期时间(“2016年3月5日”,“区域设置”,“恩,我们”);ZeroDates=datemnth(估价日期[1236912*[123456789102]);ZeroRates=[-0.33-0.28-0.24-0.12-0.08-0.03 0.015 0.028]...0.033 0.042 0.056 0.095 0.194 0.299 0.415 0.525]'/100;复合=1;零曲线=比率曲线(“零”,估价日期,零日期,零利率,“复利”,复配)
ZeroCurve=具有属性的利率曲线:类型:“零”复利:1基础:0日期:[16x1日期时间]利率:[16x1双]结算:2016年3月5日InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”
%定义交换选项swoptionSettle=日期时间(“2016年3月5日”,“区域设置”,“恩,我们”); swoptionexercisedate=datetime(“2017年3月5日”,“区域设置”,“恩,我们”);SwaptionStrikes=(-0.6:0.01:1.6)/100;%包括负面罢工SwapMaturity=日期时间(“2022年3月5日”,“区域设置”,“恩,我们”);%基础掉期的到期日OptSpec=“呼叫”;

通过创建交换仪器

使用精密仪器创建交换仪器对象。

LegRate=[0];Swap=fininstrument(“互换”,“到期日”,SwapMaturity,“LegRate”,LegRate,“LegType”,[“固定的”“浮动”],...“投影曲线”,零曲线,“起始日期”,swoptionexercisedate)
Swap=Swap with properties:LegRate:[0 0]LegType:[“固定”“浮动”]重置:[2]依据:[0 0]名义:100最新浮动利率:[NaN NaN]ResetOffset:[0 0]天计数调整现金流:[0]项目曲线:[1x2比率曲线]业务日惯例:[“实际”“实际”]假日:自然月底规则:[1]起始日期:2017年3月5日到期日期:2022年3月5日姓名:“
ForwardValue=parswaprate(交换,零曲线)
ForwardValue=7.3271e-04

加载市场隐含波动率数据

市场互换期权波动率是根据带a的转移黑市波动率来报价的0.8百分比转换。

罢工罢工=[-0.5;-0.25;-0.125;0;0.125;0.25;0.5;1.0;1.5]/100;市场罢工=前进价值+罢工罢工罢工罢工;班次=0.008;%0.8%位移市场转移的黑色波动率=[21.1;15.3;14.0;14.6;16.0;17.7;19.8;23.9;26.2]/100;ATM转移的黑色波动率=市场转移的黑色波动率(罢工率==0);

校准移位军刀模型参数

这个贝塔参数是预先确定的0.5使用挥发性计算隐含波动率。

β=0.5;%校准Alpha、Rho和NuobjFun=@(X)市场转移的黑色挥发性-挥发性(finpricer(“分析性”,“模型”,...finmodel(“军刀”,“阿尔法”,X(1),“贝塔”,Beta,“Rho”,X(2),“努”,X(3),“转移”,班次),...“折扣曲线”,零曲线),SwaptionExerciseDate,ForwardValue,MarketStreaks);X=lsqnonlin(objFun,[0.50 0.5],[0-10],[Inf 1-Inf]);
局部最小可能值。lsqnonlin停止,因为平方和相对于其初始值的最终变化小于函数公差值。
Alpha=X(1);Rho=X(2);Nu=X(3);

创造军刀使用校准参数的模型

使用finmodel创建军刀模型对象。

SABRModel=finmodel(“军刀”,“阿尔法”阿尔法“贝塔”,Beta,“Rho”,Rho,“努”,Nu,“转移”,轮班)
SABRModel=SABR,属性:Alpha:0.0135 Beta:0.5000 Rho:0.4654 Nu:0.4957 Shift:0.0080 VolatilityType:“黑色”

创造军刀使用校准的价格军刀模型和计算波动率

使用芬普瑟创建军刀pricer对象并使用速率曲线对象“折扣曲线”名称-值对参数。

SABRPricer=finpricer(“分析性”,“模型”,SABRModel,“折扣曲线”,零曲线)
SABRPricer=SABR,属性为:折扣曲线:[1x1比率曲线]模型:[1x1 finmodel.SABR]
SABRShiftedBlack波动率=波动率(SABRPricer、SwapptioneXerciseDate、ForwardValue、SwapptionStrikes)
SabrshiftedBlack挥发性=221×10.2978 0.2911 0.2848 0.2787 0.2729 0.2673 0.2620 0.2568 0.2518 0.2470 ⋮
图形情节(市场罢工、市场转移的黑市波动率、,“哦”,...SwaptionStrikes,SabrshiftedBlack挥发性);h=gca;直线([0,0],[min(h.YLim),max(h.YLim)],“线条样式”,'--'); ylim([0.13 0.31])xlabel(“罢工”);传奇(“市场报价”,“移动刀”,“位置”,‘东南’);头衔([“转移的黑色波动率(',num2str(班次*100),“百分比偏移量”)]);

图中包含一个Axis对象。标题移动的Axis对象为黑色波动率(0.8%移动),包含3个line类型的对象。这些对象表示市场报价,移动的SABR。

价格挥霍使用校准的仪器军刀模型与军刀价格

%创建交换工具纽明斯特=长度(SwaptionStrikes);交换(纽明斯特,1)=有限仪器(“交换”,...“罢工”,SwaptionStrikes(1),“锻炼日期”,swoptionexercisedate(1),“交换”,掉期);对于k=1:NumInst Swaption(k)=有限仪器(“交换”,“罢工”,SwaptionStrikes(k),...“锻炼日期”,swoptionexercisedate,“交换”交换“OptionType”,OptSpec);终止互换期权
交换=221×1对象具有以下属性的16x1交换选项数组:OptionType ExerciseStyle ExerciseDate Strike交换名称⋮
%使用SABR pricer的价格互换选项SwaptionPrices=价格(SABRPricer,Swaptions);图形;绘图(SwaptionStrikes,SwaptionPrices,“r”)h=gca;直线([0,0],[min(h.YLim),max(h.YLim)],“线条样式”,'--'); xlabel(“罢工”);头衔(“互换期权价格”);

图中包含一个轴对象。具有标题交换价格的Axis对象包含2个line类型的对象。