1.简介
SABR模型是由 Hagan在 2002年提出的一种随机波动率模型,在抛弃了原始的BSM 模型中对于波动率为某一常数的假定,假设隐含波动率同样是符合几何布朗运动的,并且将隐含波动率设定为标的价格和合约行权价的函数,结合了隐含波动率修正模型的两种思路(随机波动率模型和局部波动率模型),更为准确的动态刻画出吻合市场特征的隐含波 动率曲线 SABR模型假设波动率是对数正态分布的,并且在定价方程里面加入了 CEV模型。这样使得模型估计的隐含波动率由两部分组成,一部分是 CEV 的可预测部分,而另一部分是在随机波动率模型中的随机的部分。
模型假设波动率本身也遵循一个无漂移项的几何布朗运动,而且和远期价格之间存在一定的相关性,其有如下一般动态过程:
有初始条件:F(0) = f ; α(0) = 𝛼 ,标的物远期价格F 和波动率α都视为一个随机过程 其中,参数含义为:Sigma :波动率初值 ,Beta:CEV 模型弹性项 ,Alpha:波动率的波动率参数 ,Rho :几何布朗运动之间相关系数 β则决定了标的价格与平值隐含波动率的关系。当β—>1时,该随机模型接近对数正态,β—>0 时, 该随机模型则接近正态分布。
通过SABR模型,可以得到一个隐含波动率数值,进而可以带入到定价模型中计算得到期权的理论价格 如SABR模型的欧式期权价格由 BS 模型计算得到:
其中,σ为SABR模型计算得到的隐含波动率
SABR隐含波动率计算公式为:
参数β取值一般为(0,1),需要进行拟合的参数主要有:
利用市场实际数据对模型参数进行校准,优化函数为:
2.模型参数数值分析
Alpha:标的资产波动率方程中的初始值,类波动率参数。控制标的资产波动率的初始值以及整个波动率微笑曲线的初始值。数值增加时,整体的波动率曲线向上移动,反之向下移动
Beta:决定了标的资产现货价格与平值期权波动率之间的关系,取值范围为[0,1],取值=0.5时模型遵循CIR过程
Rho :标的资产远期价格与波动率方程中随机项的相关系数,控制整个波动率曲线的斜度,数值越大曲线向逆时针方向选装的角度越大
volvol:波动率方程中的漂移项,可认为是波动率的波动率,用于描述波动率曲线的微笑程度,数值越大,隐含波动率曲线的微笑弧度越大
3.代码实践
部分代码如下:
class SABR_Model_Hagan2002:""" Hagan2002 SABR Model"""def __init__(self,F,K,T,vols,beta):self.F=Fself.K=Kself.T=Tself.vol=volsself.beta=betadef calibration_params(self):"""校准SABR模型参数alpha,rho,volvol"""def vol_square_error(x):vols=[calc_sabr_vol(K_,self.F,self.T,x[0],x[1],x[2],self.beta)*100 for K_ in self.K]return sum((vols-self.vol)**2)x0=np.array([0.01,0.00,0.10])bounds=[(0.0001,None),(-0.9999,0.9999),(0.0001,None)]res=minimize(vol_square_error,x0,method='L-BFGS-B',bounds=bounds)self.alpha,self.rho,self.volvol=res.xreturn [self.alpha,self.rho,self.volvol]