波动率模型:期货波动率VS现货波动率

  • 1. 主要思想
  • 2. 模型推导
  • 3. 参数估计
  • 4. 模拟实验

Fackler, P. L., & Tian, Y. (1999). Volatility models for commodity markets.

1. 主要思想

期货价格的波动率和期权的隐含波动率依赖于基本面因素,尤其是现货的价格。(期权的隐含波动率暂时不关心)
python计算期货日波动率 期货波动率指标_方差
其中,python计算期货日波动率 期货波动率指标_python计算期货日波动率_02是期货价格的波动率,python计算期货日波动率 期货波动率指标_参数估计_03是现货价格的波动率,python计算期货日波动率 期货波动率指标_方差_04是即期对数现货价格向长期平均水平收敛的速度,T是期货剩余到期时间。python计算期货日波动率 期货波动率指标_方差_05项(damping term)会使得波动率随着T的增加而降低。
python计算期货日波动率 期货波动率指标_方差_06

python计算期货日波动率 期货波动率指标_方差_05项很好的诠释了"萨缪尔森假设"(Samuelson 1965)或者"到期效应",Samuelson提出期货合约随着到期日的邻近其价格波动的幅度将逐渐增大。

2. 模型推导

为了验证这个思想,作者使用了一个随机微分方程(Hull-White模型)来表示对数现货价格的变化过程,如下所示:
python计算期货日波动率 期货波动率指标_参数估计_08
可以证明:
python计算期货日波动率 期货波动率指标_python计算期货日波动率_09
其中python计算期货日波动率 期货波动率指标_python计算期货日波动率_10是现货价格的对数形式,python计算期货日波动率 期货波动率指标_python计算期货日波动率_11相当于就是现货价格的收益率。python计算期货日波动率 期货波动率指标_参数估计_12python计算期货日波动率 期货波动率指标_参数估计_13是时间的函数(seasonal functions of time)。这个过程呈现了收益率均值的均值回归特性和波动率的周期性变动。python计算期货日波动率 期货波动率指标_方差_04是即期对数现货价格向长期平均水平收敛的速度,python计算期货日波动率 期货波动率指标_参数估计_15是长期平均即期对数现货价格。(与Schwartz不同的是,这里的长期平均水平是周期性/季节性变动的,波动率依然是如此。)python计算期货日波动率 期货波动率指标_参数估计_16python计算期货日波动率 期货波动率指标_方差_17是周期性函数,能从python计算期货日波动率 期货波动率指标_参数估计_12python计算期货日波动率 期货波动率指标_方差_19推导出。

由(1)式可知,对数差分python计算期货日波动率 期货波动率指标_python计算期货日波动率_11是服从正太分布的,python计算期货日波动率 期货波动率指标_差分_21条件均值和方差如下所示:
python计算期货日波动率 期货波动率指标_方差_22

参考文献:Schwartz, E. S. (1997). The stochastic behavior of commodity prices: Implications for valuation and hedging. The Journal of finance, 52(3), 923-973.
(1)式的原型来自于Schwartz, E. S. (1997)的论文,Schwartz建立了一个单因素的描述了均值回复的模型(Hull-White),假定现货价格服从以下的随机过程:
python计算期货日波动率 期货波动率指标_方差_23
python计算期货日波动率 期货波动率指标_差分_24,并运动伊藤引理,可以得到:
python计算期货日波动率 期货波动率指标_参数估计_25
其中k代表了均值回归调整速度,k>0,代表了均值回复到长期对数价格均值的速度。python计算期货日波动率 期货波动率指标_python计算期货日波动率_26刻画了该过程的波动率。
现货价格的对数的条件均值和方差如下所示:
python计算期货日波动率 期货波动率指标_方差_27

由现货价格的对数正态分布的性质可以得到:

到期时刻为T的期货的价格为现货价格在T时刻的期望的价格,结合(2)式和(3)式,可以得到:

由(4)式可以得到F关于P的偏导数python计算期货日波动率 期货波动率指标_差分_28
python计算期货日波动率 期货波动率指标_参数估计_29

简化起见,假定剩余到期时间为T的期货价格是现货价格的函数(单因素的模型),如果现货价格过程是满足风险中性的,或者说没有风险溢价,那么期货价格是无漂移项的价格过程,如下所示:
python计算期货日波动率 期货波动率指标_参数估计_30
根据伊藤引理,我们可以得到:
python计算期货日波动率 期货波动率指标_python计算期货日波动率_31
其中F是期货的价格,P是现货的价格,python计算期货日波动率 期货波动率指标_python计算期货日波动率_02是期货价格的波动率,python计算期货日波动率 期货波动率指标_差分_28是F对于P的偏导数。
python计算期货日波动率 期货波动率指标_python计算期货日波动率_34

详细推导:
假设X服从几何布朗运动,python计算期货日波动率 期货波动率指标_参数估计_35,f是X的函数,令f((X(t),t))为X(t)的二阶连续可导函数(并对t一阶可导),由伊藤引理可得:
python计算期货日波动率 期货波动率指标_差分_36
python计算期货日波动率 期货波动率指标_参数估计_35代入上式中,并且省去比dt更高的项python计算期货日波动率 期货波动率指标_python计算期货日波动率_38,就可以得到伊藤引理的一般形式:
python计算期货日波动率 期货波动率指标_差分_39
可以看出f也是服从几何布朗运动的。
再回来本文,现货价格是服从几何布朗运动的,期货价格是现货价格的函数,那么可以得到上述的伊藤引理的一般公式,但由风险中性的条件可以推出期货价格过程是无漂移项的,也就是没有dt这一项,那么python计算期货日波动率 期货波动率指标_参数估计_40

3. 参数估计

式子(1)可以写成如下的形式:
python计算期货日波动率 期货波动率指标_python计算期货日波动率_41
其中:
python计算期货日波动率 期货波动率指标_python计算期货日波动率_42
python计算期货日波动率 期货波动率指标_方差_43,是无自相关的序列,并且服从正态分布,其期望和方差如下所示:
python计算期货日波动率 期货波动率指标_方差_44
通过最小二乘方式来估计出参数python计算期货日波动率 期货波动率指标_差分_45就可以得到k的值。

4. 模拟实验