主要内容

校准SABR转移模型参数对互换期权工具

调整模型参数掉期期权当你使用工具SABR定价方法。

市场数据加载

%零线ValuationDate = datetime (“5 - 3月- 2016,“场所”,“en_US”);ZeroDates = datemnth (ValuationDate [1 2 3 6 9 12 * (1 2 3 4 5 6 7 8 9 10 12]]) ';ZeroRates = [-0.33 -0.28 -0.24 -0.12 -0.08 -0.03 0.015 0.0280.033 0.042 0.056 0.095 0.194 0.299 0.415 0.525]/ 100;复合= 1;ZeroCurve = ratecurve (“零”,ZeroDates ValuationDate ZeroRates,“复合”复合)
ZeroCurve = ratecurve属性:类型:“零”组合:1基础:0日期:x1 datetime[16]利率:x1双[16]解决:05 - mar - 2016 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“以前”
%定义互换期权SwaptionSettle = datetime (“5 - 3月- 2016,“场所”,“en_US”);SwaptionExerciseDate = datetime (“5 - 3月- 2017,“场所”,“en_US”);SwaptionStrikes = (-0.6:0.01:1.6) / 100;%包括消极罢工SwapMaturity = datetime (“5 - 3月- 2022,“场所”,“en_US”);%的成熟度潜在的交换OptSpec =“电话”;

计算远期掉期利率通过创建交换仪器

使用fininstrument创建一个交换仪对象。

LegRate = [0 0];交换= fininstrument (“交换”,“成熟”SwapMaturity,“LegRate”LegRate,“LegType”,(“固定”“浮动”),“ProjectionCurve”ZeroCurve,“StartDate可以”SwaptionExerciseDate)
交换=交换与属性:LegRate: [0 0] LegType:[“固定”“浮动”]重置:[2 2]基础:[0 0]名义:100 LatestFloatingRate:[南南]ResetOffset: [0 0] DaycountAdjustedCashFlow: [0 0] ProjectionCurve: [1 x2 ratecurve] BusinessDayConvention:(“实际”“实际”)假期:NaT EndMonthRule: [1] StartDate可以:05 - mar - 2017成熟度:05 - mar - 2022的名字:“
ZeroCurve ForwardValue = parswaprate(交换)
ForwardValue = 7.3271 e-04

加载市场隐含波动率数据

市场互换期权波动报价转黑波动0.8百分比变化。

StrikeGrid = (-0.5;-0.25;-0.125;0;0.125;0.25;0.5;1.0;1.5)/ 100;MarketStrikes = ForwardValue + StrikeGrid; Shift = 0.008;% 0.8%转变MarketShiftedBlackVolatilities = (21.1;15.3;14.0;14.6;16.0;17.7;19.8;23.9;26.2)/ 100;ATMShiftedBlackVolatility = MarketShiftedBlackVolatilities (StrikeGrid = = 0);

调整了SABR模型参数

β参数是预先确定的,0.5。使用波动计算隐含波动率。

β= 0.5;%校准αρ,怒objFun = @ (X) MarketShiftedBlackVolatilities -波动(finpricer (“分析”,“模型”,finmodel (“SABR”,“α”X (1),“β”,β,的ρ,X (2),“怒”,X (3),“转变”转变)“DiscountCurve”ZeroCurve) SwaptionExerciseDate、ForwardValue MarketStrikes);X = lsqnonlin (objFun[0.5 0 0.5],[0 1 0],[正1正]);
局部最小值。lsqnonlin停止是因为最后的平方和的变化相对于其初始值小于公差的值函数。
α= X (1);ρ= X (2);ν= X (3);

创建SABR使用校准参数模型

使用finmodel创建一个SABR模型对象。

SABRModel = finmodel (“SABR”,“α”α,“β”,β,的ρρ,“怒”ν,“转变”转变)
SABRModel = SABR属性:α:0.0135 Beta: 0.5000ρ:0.4654ν:0.4957转变:0.0080 VolatilityType:“黑色”

创建SABR定价的人使用校准SABR模型和计算波动

使用finpricer创建一个SABR定价的人对象和使用ratecurve对象的“DiscountCurve”名称-值对的论点。

SABRPricer = finpricer (“分析”,“模型”SABRModel,“DiscountCurve”ZeroCurve)
SABRPricer = SABR属性:DiscountCurve: [1 x1 ratecurve]模型:[1 x1 finmodel.SABR]
SABRShiftedBlackVolatilities =波动(SABRPricer SwaptionExerciseDate、ForwardValue SwaptionStrikes)
SABRShiftedBlackVolatilities =221×10.2978 0.2911 0.2848 0.2787 0.2729 0.2673 0.2620 0.2568 0.2518 0.2470⋮
图;情节(MarketStrikes MarketShiftedBlackVolatilities,“o”,SwaptionStrikes SABRShiftedBlackVolatilities);甘氨胆酸h =;线([0],[min (h.YLim), max (h.YLim)],“线型”,“——”);ylim([0.13 - 0.31])包含(“罢工”);传奇(“市场报价”,“转移SABR”,“位置”,“东南”);标题([“黑波动(转移”num2str(* 100)转变,的百分比变化)]);

图包含一个坐标轴对象。坐标轴对象与标题转移黑波动转变(0.8%)包含3线类型的对象。这些对象代表市场报价、SABR转移。

价格掉期期权使用校准仪器SABR模型和SABR定价的人

%建立互换期权工具NumInst =长度(SwaptionStrikes);掉期期权(NumInst, 1) = fininstrument (“掉期期权”,“罢工”SwaptionStrikes (1)“ExerciseDate”SwaptionExerciseDate (1)“交换”、交换);k = 1: NumInst互换期权(k) = fininstrument (“掉期期权”,“罢工”SwaptionStrikes (k),“ExerciseDate”SwaptionExerciseDate,“交换”交换,“OptionType”,OptSpec);结束掉期期权
掉期期权=221×1对象16 x1互换期权数组属性:OptionType ExerciseStyle ExerciseDate罢工⋮互换的名字
%的价格使用SABR互换期权定价的人SwaptionPrices =价格(SABRPricer、掉期期权);图;情节(SwaptionStrikes SwaptionPrices,“r”);甘氨胆酸h =;线([0],[min (h.YLim), max (h.YLim)],“线型”,“——”);包含(“罢工”);标题(“掉期期权价格”);

图包含一个坐标轴对象。坐标轴对象标题互换期权价格包含2线类型的对象。