虽然中国股票市场日益完善,但还不完全是弱有效市场,因此中国股票市场存在比较明显的通过技术分析达到的套利机会。
根据基金净值的要求,运用多种模型分析实现股票走势的预测。
数据源准备
本次数据来源于天天基金网南方恒生中国企业ETF版面,数据获取采用python(版本3.6)爬虫,数据分析部分则是采用Rstudio(3.6.2)。
由于南方恒生中国企业ETF没有分红,所以单位净值和累计净值相同,本次分析采用单位净值(数据采用从2018/2/8~2020/6/10,共556个)作为数据分析对象。
本次数据分析采用的数据模型有AR, MA,ARMA,GARCH模型。
数据预处理
将获得数据进行标准化,并作图发现数据超出了[0,1]的限制,于是我们可以初步估计数据不满足正态性。其次,我们采取箱形图法分析分析数据中可能存在的异常值,发现数据中存在三个异常值点,2020-03-18 -3.636842,2020-03-19 -4.182578,2020-03-23 -3.552882。
数据波动性大且不聚集。于是对数据进行二阶差分(一次差分模型拟合效果不好)。利用箱型图法进行异常值检测,发现二阶差分之后的数据异常值增多,但是从图上可以看出数据具有集群波动性,在这里初步估计数据具有garch模型的特点。
视频
时间序列分析模型 ARIMA-ARCH GARCH模型分析股票价格数据
视频
ARIMA时间序列模型原理和R语言ARIMAX预测实现案例
视频
在Python和R语言中建立EWMA,ARIMA模型预测时间序列
构造
首先考察时间序列 时间序列平方以及绝对值的ACF和PACF图,判断二阶差分具有一定的ARCH性质,接下来我们使用MC.LEOAD.LI方法检验我们刚才的判断。右图说明,二阶差分数据具有很强的ARCH特征。现在我们计算其峰度以及偏度,判断其厚尾性。偏度为0.2112377,峰度为2.870266,j-b检验数为171.9739 远大于kai(2)的置信度5% 时的3.84, 因此相信序列存在高阶相关性和厚尾结构。
利用EACF方法判断garch的阶数。我们选取EACF图建议采用GARCH(1,2)模型。根据最小二乘法,发现模型参数α2不显著,因此考虑GARCH(1,1)模型。
随时关注您喜欢的主题
发现CARCH模型的各项系数均显著。并比较GARCH(1,1)和GARCH(1,2)的AIC系数。发现GARCH(1,1)的系数665.12略小于GARCH(1,2)的666.77。
我们选用GARCH(1,1)模型进行模型诊断。根据QQ图发现GARCH(1,1)模型残差近似满足正态分布,其次我们检验shapiro数p-value = 0.8696 大于0.05,故我们认为残差满足正态性分布。我们采用L-B检验数,检验残差的独立性,这里发现m<11时,独立性满足。
划分训练集和测试集
考虑到最终模型会预测将来的某时间段的销量,为了更真实的测试模型效果,以时间来切分训练集和测试集。具体做法如下:假设我们以2018/2/8~2020/5/28的单位净值作为训练,最后5个交易日的数据作为测试。
建模
ARIMA , 一般应用在股票和电商销量领域
ARIMA模型是指将非平稳时间序列转化为平稳时间序列,然后将结果变量做自回归(AR)和自平移(MA)。
GARCH
金融市场领域常用的分析模型,自回归条件异方差模型,消除arma模型对于同方差假设引起的问题,能够更好的认识到风险的波动性
模型优化
混合模型
由于上述模型确定具有一定的主观性,现考察混合模型是否能够更好的拟合数据。主要考察两种混合模型–ARMA(1,3) + GARCH(1,2)和 MA(1) + GARCH(1,1)。
采用h步向前估计,对之后的数据进行预测,其中将最后一天的数据(2020/06/10)作为预测原点,方差作为σt|t-1的初值。程序中预测了未来五次交易的数据,并做了上下区间。
发现预测数据与实际数据相差不大,并且在预测区间当中。
可以看出,销量的预测值的趋势已经基本与真实基金趋势保持一致,但是在预测期较长的区间段,其预测值之间的差别较大。
关于作者
Yuyan Wang
在此对Yuyan Wang对本文所作的贡献表示诚挚感谢,他毕业于同济大学,擅长数理金融、数据采集、数据分析。