校准SABR模型

这个例子说明了如何使用两种不同的方法来校准SABR随机波动率模型从市场隐含波动率黑色。两种方法都使用blackvolbysabr

加载市场隐含波动率黑色数据

这个例子显示了如何设置假想市场暗示欧洲掉期期权波动率黑色在一定范围内校准前的罢工。该掉期期权,从三年到期解决日期,有10年掉期交易作为基础工具。率以小数表示。(变更单元影响的数值与解释Α输入参数函数blackvolbysabr。)

加载市场隐含波动黑色数据掉期期权在三年内到期。

定居='12 -Jun-2013';ExerciseDate ='12 -Jun-2016';MarketStrikes = [2.0 2.5 3.0 3.5 4.0 4.5 5.0'/ 100;MarketVolatilities = [45.6 41.6 37.9 36.6 37.8 39.2 40.0'/ 100;

在那个时间解决,确定潜在的远期汇率和在平价波动。

CurrentForwardValue = MarketStrikes(4)ATMVolatility = MarketVolatilities(4)
CurrentForwardValue = 0.0350 ATMVolatility = 0.3660

方法1:校准阿尔法,卢和怒江直接

这个例子说明了如何校准Α怒江直接输入参数。的价值Beta版通过拟合历史市场波动数据或通过选择一个值是预定的认为适合该市场[1]。

限定预定Beta版

β1的= 0.5;

固定的值之后 β Beta版),则参数 α Α ρ ),和 υ 怒江)都直接安装。优化工具箱™功能lsqnonlin生成的参数值,最大限度地减少由计算出的市场波动和波动率之间的平方误差blackvolbysabr

%校准阿尔法,卢和NUobjFun = @(X)MarketVolatilities  -...blackvolbysabr(X(1),β1,X(2),X(3),沉降,...ExerciseDate,CurrentForwardValue,MarketStrikes);X = lsqnonlin(objFun,[0.5 0 0.5],[0 -1 0],[1 Inf文件Inf文件]);ALPHA1 = X(1);RHO1 = X(2);NU1 = X(3);
当地最小的可能。lsqnonlin停止,因为在相对于其初始值的平方和最终的变化小于函数允差的默认值。

方法2:从平价波动校准Rho和怒江通过暗示阿尔法

该示例示出了如何使用替代的校准方法,其中的值 β Beta版)被再次预定,如方法1。

限定预定Beta版

β2 = 0.5;

然而,固定的值后 β Beta版),则参数 ρ ),和 υ 怒江)直接嵌合而 α Α)从市场上平价波动性暗示。模型采用这种方法生产的平价是等于市场行情波动校准。这种方法被广泛应用于掉期期权,在此,平价波动最频繁报价,是很重要的匹配。暗示 α Α)从市场上平价波动( σ 一个 Ť 中号 ),以下三次多项式被求解 α Α),并且最小的正实数根中选择了[2]。

1 - β 2 Ť 24 F 2 - 2 β α 3 + ρ β υ Ť 4 F 1 - β α 2 + 1 + 2 - 3 ρ 2 24 υ 2 Ť α - σ 一个 Ť 中号 F 1 - β = 0

哪里:

  • F 是当前推进值。

  • Ť 是年分数成熟。

要做到这一点,定义一个匿名函数为:

从稳定到选项成熟%,比去年分数T = YEARFRAC(沉降,ExerciseDate,1);%该功能解决了SABR在平价波动方程为阿尔法%多项式alpharoots = @(ρ,女)根([...(1  -  Beta2中)^ 2 * T / 24 / CurrentForwardValue ^(2  -  2 * Beta2的)...的Rho * Beta2的*女* T / 4 / CurrentForwardValue ^(1  -  Beta2的)...(1 +(2  -  3 *的Rho ^ 2)*女^ 2 * T / 24)...-ATMVolatility * CurrentForwardValue ^(1  -  Beta2中)]);%。这在平价波动函数转换成阿尔法通过采摘%最小正实数根atmVol2SabrAlpha = @(ρ,女)分钟(实(arrayfun(@(x)的...X *(X> 0)+ realmax *(x <0的|| ABS(IMAG(X))> 1E-6),alpharoots(RHO中,Nu))));

功能atmVol2SabrAlpha在转换成最赚钱的波动成 α Α)对于一组给定的 ρ )和 υ 怒江)。该函数然后在目标函数,以适应所使用的参数 ρ )和 υ 怒江)。

%校准Rho和怒江(而转换为平价波动到阿尔法使用%atmVol2SabrAlpha)objFun = @(X)MarketVolatilities  -...blackvolbysabr(atmVol2SabrAlpha(X(1),X(2)),...β2,X(1),X(2),沉降,ExerciseDate,CurrentForwardValue,...MarketStrikes);X = lsqnonlin(objFun,[0 0.5],[-1 0],[1 Inf文件]);Rho2 = X(1);NU2 = X(2);
当地最低发现。优化完成,因为倾斜的大小小于函数允差的默认值。

该校准参数 α Α)是使用校准的参数来计算 ρ )和 υ 怒江)。

使用%校准参数从平价波动获得最终阿尔法α-2 = atmVol2SabrAlpha(Rho2,个Nu 2);%显示校准的参数C = {ALPHA1 Beta1的RHO1 Nu1亲; ALPHA2 Beta2的Rho2个Nu 2};CalibratedPrameters = cell2table(C,...'VariableNames'{'Α'“测试版”“卢”“怒江”},...'RowNames'{“方法1”;“方法2”})
CalibratedPrameters =α,β的Rho女________ ____ _______ _______方法1 0.060277 0.5 0.2097 0.75091方法2 0.058484 0.5 0.20568 0.79647

使用校准模型

这个例子说明了如何使用校准模型来计算新的波动在任何罢工值。

为模型计算的波动使用方法1和方法2得出结果校准。

PlottingStrikes =(1.75:0.1:5.50)'/ 100;%计算波幅为模型通过方法1校准ComputedVols1 = blackvolbysabr(ALPHA1,β1,RHO1,Nu1亲,沉降,...ExerciseDate,CurrentForwardValue,PlottingStrikes);%计算波幅为模型由方法2校准ComputedVols2 = blackvolbysabr(ALPHA2,β2-,Rho2,个Nu 2,沉降,...ExerciseDate,CurrentForwardValue,PlottingStrikes);数字;图(MarketStrikes,MarketVolatilities,'XK'...PlottingStrikes,ComputedVols1,'B'...PlottingStrikes,ComputedVols2,'R'...CurrentForwardValue,ATMVolatility,'好'...'MarkerSize',10);XLIM([0.01 0.06]);ylim([0.35 0.5]);xlabel('罢工''fontWeight设置''胆大');ylabel(“隐含波动黑”'fontWeight设置''胆大');传说(“市场波动”'SABR模型(方法1)'...'SABR模型(方法2)'“在平价波动”);

使用方法2校准模型再现市场上最赚钱的波动性(标有圆圈)完全吻合。

参考

[1]哈根,P. S.,库马尔,D.,Lesniewski,A.S。和伍德沃德,D.E。,管理风险的笑容,威尔莫特杂志,2002年。

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

也可以看看

||

相关话题