主要内容

使用负打击的正态(单身汉)波动率校准SABR模型

这个例子展示了如何使用两种不同的方法来校准SABR随机波动率模型,从市场隐含的正态(Bachelier)波动率与负打击。两种方法都使用normalvolbysabr,利用SABR模型计算隐含的正态波动率。当β将SABR模型的参数设为零,则该模型为正态SABR模型,可以计算负打击隐含的正态波动率。

加载市场隐含正常(单身汉)波动率数据

在校准之前,为欧洲掉期在一定范围内建立假设的市场隐含波动率。换股在一年后到期解决日期和两年掉期作为基础工具。比率用小数表示。市场隐含的正常波动率由基点转换为小数。的数值和解释α函数的参数输入normalvolbysabr)。

载入市场隐含一年到期掉期的正常波动率数据。解决=“20 - 9 - 2017”;ExerciseDate =“20 - 9 - 2018”;基= 1;ATMStrike = -0.174/100;MarketStrikes = ATMStrike +((-0.5:0.25:1.5)”)。/ 100;市场波动= [20.58 17.64 16.93 18.01 20.46 22.90 26.11 28.89 31.91]'/10000;在结算时,定义基本远期利率和现价波动率。CurrentForwardValue = MarketStrikes(3)
CurrentForwardValue = -0.0017
市场波动率(3)
ATMVolatility = 0.0017

方法一:校准αρ,ν直接

本节演示如何校准αρ,ν直接参数。的值β参数设置为零,以便在SABR模型(正常SABR)中允许负率。的值固定后 β β)、参数 α α), ρ ρ), ν ν)均可直接安装。优化工具箱™功能lsqnonlin生成使市场波动率与计算的波动率之间的平方误差最小化的参数值normalvolbysabr

定义预先确定的BetaBeta1 = 0;将Beta设置为零允许正常波动率为负校准Alpha, Rho和NuobjFun = @(X)市场波动-...normalvolbysabr(X(1), Beta1, X(2), X(3), Settle,...锻练日期,CurrentForwardValue, MarketStrikes,“基础”、基础);如有必要,可调整lsqnonlin的容差和停止标准X = lsqnonlin(objFun, [ATMVolatility 0 0.5], [0 -1 0], [Inf 1 Inf]);
找到局部极小值。优化完成,因为梯度的大小小于最优性公差的值。
Alpha1 = X(1);Rho1 = X(2);Nu1 = X(3);

方法二:校准ρ而且ν通过暗示α从At-The-Money波动性

的值时,本节演示如何使用另一种校准方法 β 同样被预定为零,以允许负利率。但是,在固定值之后 β β)、参数 ρ ρ), ν ν)直接安装 α α)是由市场平价波动率所隐含的。使用这种方法校准的模型产生了与市场报价相等的平价波动率。当平价波动率被最频繁地引用并且对匹配非常重要时,这种方法非常有用。为了暗示 α α)由市价正常波动率( σ N o r 一个 l 一个 T ),则解出以下三次多项式 α α),取最小的正实根。这类似于用于暗示的方法 α α)来自市场平价黑色波动[2]。但是,请注意,下面用于正常波动率的表达式与用于黑色波动率的另一个表达式不同。

β β - 2 T 2 4 F 2 - 2 β α 3. + ρ β ν T 4 F 1 - β α 2 + 1 + 2 - 3. ρ 2 2 4 ν 2 T α - σ N o r 一个 l 一个 T F - β 0

定义预先确定的BetaBeta2 = 0;将Beta设置为零允许正常波动率为负从结算到期权到期的年百分比T = yearfrac(Settle, ExerciseDate, Basis);该函数将SABR平价波动方程解为的%多项式alpharootsNormal = @(Rho,Nu)根([...Beta2。*(Beta2 - 2)*T/24/CurrentForwardValue^(2 - 2*Beta2)...Rho*Beta2*Nu*T/4/CurrentForwardValue^(1 - Beta2)...(1 + (2 - 3*Rho²)*Nu²*T/24)...-ATMVolatility * CurrentForwardValue ^ (beta2)]);此函数通过选择。将平价波动率转换为%最小正实根atmNormalVol2SabrAlpha = @(Rho,Nu) min(real(arrayfun(@(x))...x * (x > 0) +最大浮点数* (x < 0 | | abs(图像放大(x)) > 1 e-6), alpharootsNormal(ρ,ν))));校准Rho和Nu(同时将平价波动率转换为Alpha%使用atmVol2NormalSabrAlpha)objFun = @(X)市场波动-...normalvolbysabr (atmNormalVol2SabrAlpha (X (1), (2)),...Beta2, X(1), X(2), Settle, ExerciseDate, CurrentForwardValue,...MarketStrikes,“基础”、基础);如有必要,可调整lsqnonlin的容差和停止标准X = lsqnonlin(objFun, [0 0.5], [-1 0], [1 Inf]);
找到局部极小值。优化完成,因为梯度的大小小于最优性公差的值。
Rho2 = X(1);Nu2 = X(2);使用校准参数从平价波动率中获得最终AlphaAlpha2 = atmNormalVol2SabrAlpha(Rho2, Nu2);显示校准参数C = {Alpha1 Beta1 Rho1 Nu1;Alpha2 Beta2 Rho2 Nu2};格式;校准参数= cell2table(C,...“VariableNames”, {“α”“β”的ρ“怒”},...“RowNames”, {方法1的方法2的})
CalibratedPrameters =2×4表Alpha Beta Rho Nu _________ ____ _________ _______方法1 0.0016332 0 -0.034233 0.45877方法2 0.0016652 0 -0.0318 0.44812

使用校准模型

使用校准的模型计算任何打击值(包括负面打击)的新波动率。

计算使用方法1和方法2校准的模型的挥发性,然后绘制结果。使用方法2校准的模型精确地再现了市场的平价波动率(用圆圈标记)。

PlottingStrikes = (min(MarketStrikes)-0.0025:0.0001:max(MarketStrikes)+0.0025)';计算由方法1校准的模型的挥发性ComputedVols1 = normalvolbysabr(Alpha1, Beta1, Rho1, Nu1, Settle,...锻练日期,CurrentForwardValue, PlottingStrikes,“基础”、基础);计算由方法2校准的模型的挥发性ComputedVols2 = normalvolbysabr(Alpha2, Beta2, Rho2, Nu2, Settle,...锻练日期,CurrentForwardValue, PlottingStrikes,“基础”、基础);图;情节(MarketStrikes MarketVolatilities * 10000,“xk”...PlottingStrikes ComputedVols1 * 10000,“b”...PlottingStrikes ComputedVols2 * 10000,“r”...CurrentForwardValue ATMVolatility * 10000,“好吧”...“MarkerSize”10);H = gca;线([0],[min (h.YLim), max (h.YLim)],“线型”“——”);包含(“罢工”“FontWeight”“大胆”);ylabel (隐含正常波动率(bps)“FontWeight”“大胆”);传奇(“市场波动”普通SABR模型(方法一)...普通SABR模型(方法二)“平价波动”...“位置”“西北”);

图中包含一个轴对象。axis对象包含5个line类型的对象。这些对象代表市场波动率,正常SABR模型(方法1),正常SABR模型(方法2),平价波动率。

参考文献

[1]哈根,p.s.,库马尔,D.,莱斯涅夫斯基,a.s.,伍德沃德,D. E.。“微笑风险管理。”维尔莫特杂志, 2002年。

[2]西,G。“非流动性市场中SABR模型的校准”应用数理金融, 12(4), pp. 371-385, 2004。

相关的话题