contact@digquant.com.cn
400-1860-552
官方群:463071731
股指期货的中高频数据周期性分析及其衍生策略
摘要:策略本身没有严格的优劣之分,怎么用才是决定量化交易成败的关键。那么在不同的行情下,如何筛选合适的策略成了量化策略研究的重要探索方向。是否可以建立模型和采用数学分析的方法来判断市场的波动大小以及大概率方向来指导交易呢? 许多人采用时间序列分析的方法进行预测分析,但是 Bitpower 量化小组发现,这种方法在交易中很难奏效,而是可以换一个角度,从周期分析的角度来进行分析中高频时间序列的周期性。 本文使用 Akaike Information Criterions 和 Bayesian Information Criterions 选定功率谱密度最大的值对应的频率作为样本数据的频率,使用最大熵谱分解法模型,选取三种中高频率的数据进行实证研究,发现最大熵谱分解法模型在处理数据长度较短的时间序列有很好的效果。分解的频率越高,对应的周期越短,震荡的几率就越大,Bitpower 量化研究小组通过最大熵谱分解法模型寻找到频率由高到低的临界划分,进而可以对选择趋势类策略或者震荡类策略的筛选起到一定的指导作用。
对于时间序列的分析大致分为两类,第一种是直接分析数据随时间变化的结构特征,即所谓的时域分析法;第二种是把时间序列看成不同谐波的叠加,研究时间序列在频域里的结构特征,即所谓的频率分析或谱分析。主要工具是Fourier变换和谱密度函数。
为什么进行谱分析?
对于时间序列的分析预测方法本质上都是属于唯象预测方法,它的基本原理就是认为某种规律支配着被预测的系统,这种规律隐藏在时间序列之中,这种方法是一种知其然而不知其所以然的分析方法,模型的建立与优化是一个相对盲目的过程。所以,我们不尝试从这一角度来进行预测分析,而是从对周期分析的角度来进行分析中高频时间序列的周期性。
为什么选择最大熵谱分解法进行周期性分析?
将时域数据转换为频域数据的模型很多,最为人知的是Fourier变换,后来又衍生出快速Fourier变换以及小波分析等。但这些方法需要很多的历史数据作为计算样本,对于小样本不能保证谱分析的可靠性和有效性。 最大熵谱分解是一种非线性的谱分解分析方法[1],最早由J.B.Burg提出,它比普通线性谱估计有更高的分辨度。并且其可以用较短的数据进行谱分析,填充出一个长的多的时域区间。
一、模型介绍
首先,我们来讲述熵的概念。假设有m个不同的事件即将发生,每件事情发生的概率都为p_i。如果所有的概率全都相等,那么我们对于这个系统就没有任何信息,而如果对于某一个事件的概率我们知道的非常清楚,那么我们就可以从这个系统中得到相当一部分信息。因此,可以把信息和概率的关系写成:
其中I是信息量,k是一个常数,当对数的基为2时取值为1。如果我们观察这个系统很长一段时间T,如果T足够大,我们可以认为我们能够观察到p_i T个m_i,那么整个系统中的信息量就可以表示为:
对于每个单位时间段内的平均信息我们就可以表示为:
其中H就是该系统的熵。从上式中我们可以清楚的看到熵利用概率来描述系统不确定的变量。一个系统的熵是0,这个系统是固定的没有随机性和不确定性。而如果对于一个系统,所有的全都相同, 系统的熵最大,系统的不确定性也是最大的。 将最大熵原理用在频谱分析的时候,我们首先给出一个时间序列的熵和谱密度之间的关系:
其中S是时间序列的谱密度函数,f_N是Nyquist频率。我们可以将S表示成该数据的自相关系数ρ(k):
因为谱密度S和自相关系数ρ(k)是一致的,我们可以把此当成限制条件,运用Lagrange方法对谱密度进行求解,得到:
其中γ_j是预测误差参数,可以从历史数据中得到,P_M是一个常数。至此我们就通过最大熵方法从理论上求解出了时间序列的谱密度,但是这个方法的参数估计非常复杂,自相关矩阵经常是非正定的,同时预测误差参数的长度也很难确定。 优点:最大熵谱分解有较高的分辨率,比较适合于小样本序列的分析。 缺点:最大熵谱估计受模型阶次选择的影响较大,阶次估计过低会丢失真是的谱峰,过高会导致虚假谱峰。
二、模型参数个数选择
如果已知模型参数的个数,我们现在可以求解模型的参数,我们现在来讨论确定模型参数个数的方法,常见的方法有Akaike Information Criterions和Bayesian Information Criterions。 假设我们使用n个数据对模型的参数进行估计,且模型为k 阶,假设该模型中数据的极大似然函数为L,那么该模型的BIC就为:
AIC是和BIC非常相近的一种衡量模型参数选择的准则,他的形式如下:
选择模型时为了使模型的误差更好,结果更加精准,其BIC和AIC的值越小越好。由以上公式可以看出,AIC和BIC的形式非常相似,但是对于BIC而言,该准则对于数据使用数量更加严格,用更多的数据对模型参数进行估计会使模型的BIC更加的大,而更大的BIC往往意味着更加大的误差。 在我们的模型中,由于不容易对模型的极大似然函数进行计算,我们使用一种比AIC更加广义的衡量模型参数的准则,Final Prediction Error。对于一个任意的随机过程,其FPE被定义为:
考虑到,阶数的确定是整个模型的关键,我们基于三种不同的标准采用滚动循环的方法,来决定模型的阶数。返回最优阶数和对应的频率谱密度。我们认为,功率谱密度最大的值对应的频率是最有可能作为样本数据的频率。
三、实证研究及策略
分为三个部分,第一部分,使用沪深300股指期货每日数据进行周期性分析,并对短线交易者给出对应的交易参考建议;第二部分,使用沪深300股指期货五分钟数据进行周期性分析,并对日内高频交易者给出操作参考;第三部分,使用我们建立的模型采用滚动窗口,用60分钟数据,从当前收盘价往前100个数值作为输入进行计算返回对应的频率,可以看出我们的模型可以很好地分辨出趋势的行情,有效剔除震荡市场的交易。
第一部分日数据实证
我们选取股指期货从2010年4月26日到2015年8月13日进行建模分析。取前4/5的数据长度即2010年4月26日到2014年7月23日进行参数估计。估计出来参数之后,运用到样本外即2014年7月24日到2015年8月13日。 进行谱分析首先要求数据平稳化。首先,对数据进行平稳性检验,由于ADF检验值为0,可知数据是非平稳时间序列。所以对数据取对数,并进行归一化处理,采用Band-Pass滤波对数据滤波处理,去掉趋势项。对处理后的数据进行ADF检验值为1,知其为平稳时间序列。其次,对平稳化的序列,使用最优阶数最大熵谱分解方法,计算得到样本内的周期情况如下表(1)所示。
表1:沪深300股指期货日数据主周期分量
主周期 频率 周期(日)
第一主周期 0.09960937 10.04
第二主周期 0.16015625 6.24
第三主周期 0.103515625 9.66
第四主周期 0.126953125 7.88
第五主周期 0.08984375 11.13
得到的样本内估计的最大熵谱密度函数,下图(1)所示,同时得到的第一周期运用到样本外效果如图(2)所示,红色虚线为每隔十个交易日所画的效果图。
图 1 :最大熵谱密度图
图 2 :样本外数据使用第一周期的分割图
从上面图(2)可以看出来,25个周期为10个交易日的循环可以认为,市场波动是有规律可循的,一个主要的高点或者低点后的10个交易日后,很可能形成下一个高点或者低点。但是,市场并不是完全按照10个交易日周期循环,会有左偏或右偏现象。对于短线交易来说,在实际交易当中,根据市场走势以及高低点情况,每隔十个交易日调整一下对应的仓位状态。
第二部分5分钟高频数据实证
使用沪深300股指期货,从2014年1月6日到2015年8月13日的5分钟数据进行实证研究。样本内数据(2014年1月6日到2015年8月7日)进行建模,估计参数。并把计算的结果带入到样本外(2014年8月10日到2015年8月13日),测试预测的效果。 与日数据同样的处理步骤,可以得到样本内的周期情况如下表(2)所示。得到的样本内估计的最大熵谱密度函数,下图(3)所示,同时得到的第一周期运用到样本外效果如图(4)所示,红色虚线为每隔十个交易日所画的效果图。
表1:沪深300股指期货日数据主周期分量
主周期 频率 周期(日)
第一主周期 0.1015625 9.85
第二主周期 0.1035156 9.66
第三主周期 0.1347656 7.42
第四主周期 0.1152344 8.68
第五主周期 0.0878906 11.38
图 3 :5分钟数据最大熵谱密度图
图 4 :样本外数据使用第一周期的分割图
从上面图4可以看出来,23个周期为9个交易日的循环可以认为,5分钟的高频市场数据的波动是有规律可循的,一个主要的高点或者低点后的9个五分钟交易后,很可能形成下一个高点或者低点。但是,市场并不完全按照9个交易日周期循环,会有左偏或者右偏现象。对于日内高频交易来说,在实际交易当中,根据市场走势和高低点情况,每隔45分钟调整一下对应的仓位状况。
第三部分滚动窗口的60分钟实证
如果在某一个时间频率上,把市场走势划分为趋势和震荡,可以认为,如果市场处在趋势当中,那么它的周期长,即频率低;如果市场处在震荡行情,那么它的周期短,即频率高。根据这一假设,使用我们建立的模型,采用滚动窗口的方法,使用60分钟数据,当前时点往前推100个数据,作为样本进行建模计算,得到最大熵谱分解密度函数,认为最大谱密度对应的频率,即是当前市场所处的市场状态的频率。测试时间点为2014年1月3日到2015年8月13日。计算每个时点的频率,把前99个频率默认置换为0。并且我们画的频率与价格走势对应图,省去前99个的数值,如下图5所示。
图5:股指期货60分钟价格走势及滑动窗口谱分解图
为了说明模型的效果,举个简单例子,我们在频率等于2处画一条线,低于这个频率认为市场处在趋势当中,高于这个数值认为市场处在震荡当中,我们沿着每个频率低于2画一条绿线,既可以找到,按照理论模型得到的趋势区间。 交易操作,对于单边交易来说,可以根据我们建立的模型,根据前100个数据实时计算出当前的市场状态,只有当前市场处于趋势状态时,才进行趋势类交易。在市场处于震荡状态时,采取震荡策略或者不进行交易。
结论:本文尝试从时间序列的频率分析对交易进行指导性研究,最大熵谱分解在处理数据长度较短的时间序列有很好的效果。我们建立滚动窗口通道阈值自适应定阶最大熵谱分解模型。 对日数据建模结果看出,市场波动是有规律可循的,一个主要的高点或者低点后的10个交易日后,很可能形成下一个高点或者低点。但是,市场并不是完全按照10个交易日周期循环,会有左偏或右偏现象。对于短线交易来说,在实际交易当中,根据市场走势以及高低点情况,每隔十个交易日调整一下对应的仓位状态。 5分钟的高频市场数据的波动是有规律可循的,一个主要的高点或者低点后的9个五分钟交易后,很可能形成下一个高点或者低点。但是,市场并不完全按照9个交易日周期循环,会有左偏或者右偏现象。对于日内高频交易来说,在实际交易当中,根据市场走势和高低点情况,每隔45分钟调整一下对应的仓位状况。 采用自适应定阶最大熵谱分解模型对60分钟数据进行处理,可以看出几乎在所有的趋势出现时,模型得到的频率都是很小。相反,当频率比较大时,可以认为市场处在震荡行情。该模型可以较好的分辨出趋势与震荡行情。在真实交易当中,根据该模型分辨出所处状态,比如分析出处在趋势行情,然后使用任何一个单边投机的趋势策略进行交易。
[  参考文献  ]
Granger C.W. J Hantanaka M. Spectral analysis of Economic Time Series[M],Princeton University Press,1994

回复 9/07 16:22

leo

回复 12/02 17:36

回复 12/01 16:52