一、EWMA模型
指数移动平均(Exponential Moving Average, EMA或EWMA)是以指数式递减加权的移动平均。各数值的加权而随时间而指数式递减,越近期的数据加权越重,但较旧的数据也给予一定的加权。加权的程度以常数λ决定,λ数值介乎0至1。该模型认为第n天的波动率与n-1天的波动率和收益率有关系:
【案例】我们依旧使用上证指数2015.1.1-2020.3.31日的收盘价数据;根据前一天的波动率和收益率数据来预测下一天的波动率。使用2015.1.1-2019.21.31的数据,在后续每天收益率变动的情况下,一步一步滚动预测2020.1.1-2020.3.31的波动率。
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom pylab import mplmpl.rcParams['font.sans-serif']=['SimHei']mpl.rcParams['axes.unicode_minus']=FalseSH=pd.read_excel('D:/欧晨的金学智库/风险管理基础/上证指数.xlsx','Sheet1',header=0,index_col=0)SH.describe()SH_log=np.log(SH/SH.shift(1)) #得到上证指数的2015~2020.3.31日收益率SH_log=SH_log.dropna()#绘制上证指数收盘价及对数收益率plt.subplot(211)plt.plot(SH, label=u'上证指数收盘价')plt.legend(loc='best')plt.subplot(212)plt.plot(SH_log, label=u'上证指数收盘价收益率')plt.legend(loc='best')plt.sh