多写代码,多看书,坚持虚心学习。

[转]【Alpha-Nebula】使用小波变换预测市场转折点

学习信息 博主 107℃ 0评论

最近加入了知乎上之前发起的一个量化学术小组ALPHA-NEBULA,结合自身的专业特长,有选择性的看了几篇论文,也获得了一点启发,在这里做个记录和分享。

这次主要依据Market turning points forecasting using wavelet analysis这一篇论文进行分享。

文章结构大致分为以下几个部分。

  1. 频率分析理论背景(可跳过)
  2. 论文分析
  3. 仿真验证
  4. 总结

一、频域分析理论背景

首先,我们都知道,金融市场具有周期性,最简单的例子就是,将股票市场时间尺度拉大了看,可以看到是一个不那么完美的正弦波。事实上我们可以简单的认为,股票市场的周期性是在长期时间尺度上真实存在,并在短期时间尺度上叠加短期周期以及其他干扰噪声的一个系统,这些噪声可能包含政策,人为操纵,不可抗力等因素的影响,但在较长时间尺度内看来,这些干扰的噪声并没有对整个周期产生影响。

从以上的表述不难看出,在较长的时间尺度区间上,如果能获得金融市场的主要频率分量,即可相应求出其周期长度,从而达成盈利。而我们的主要实现手段就是通过频域分析技术提取低频信号频率并滤除高频噪声信号,从而还原市场的实质周期信号。这就是频率分析在量化领域的主要应用场景和研究目标了。

讲到频率分析,尤其是本文将要提到的小波分析,就不得不提到最原始的频域分析技术,傅里叶变换(Fourier Transform)。正如大家在高数中所学过的泰勒变换是采用一系列多项式对于原始函数进行逼近的一样,傅里叶变换是采用一系列正弦波对于原始函数进行逼近。展开式如下图PPT所示。由于正弦函数本身具有的频率特性,因此完成了一个时域到频域的转变。其中, x(t) 为各个频率分量的系数,物理学意义为分解完成后各个频率分量的信号幅度大小。至此,由时域信号到频域信号的转化已然完成。

但是由于傅里叶变换的一些局限性,并不能直接将其应用在市场分析中。从公式可以看出来,傅里叶变换的变量只有一个,为频率参数 t ,缺少时间参数。因此傅里叶变换的最佳应用领域是绝对周期性信号,显然金融市场并不符合这个条件。其次,对于阶跃信号,即瞬态变化巨大的信号,傅里叶变换对其描述会产生严重失真。因此,在目前市场的频域分析领域多采用小波变换(Wavelet Transform)进行分析。

小波变换采用小波基对信号进行描述,小波基是一个时间尺度非常小的一个信号,因此小波变换具备了时间描述能力。如以下PPT中小波变换的公式所示,小波变换具有两个变量,分别为时间变量 tau 和尺度变量 s .其中 tau 便是对于时间的一个描述。

采用小波变换可以很好的对于时变信号进行频域描述。另一个小波变换最大的优点在于论文中一再提到的Multiresolution Analysis(MRA).小波变换的核心之一便是采用不同的资源对于不同频率区间进行描述。由以下PPT可以看到,对于不同的频域尺度,其描述的丰富度差异极大,呈树状分布。采样频率分频数越高,其描述越精细,即对于越低频率的信号,其描述越为精细。

在市场应用中,采样频率为一个bar的数据率。以日线为例,Original Sample Frequency为1Day,A1,D1表示的为2Day,A2,D2表示的为4Day以此类推。因此在小波变换中,我们若是只对A1进行复原的话,获得的是2日以上的频率重组形成的周期。同理,我们若是对D2,D3进行组合,获得的是2-4日频率重组形成的市场波形。

综上所述,使用小波变换对于市场进行频域分析,可以做到提取市场目标频率的信号,滤除高频周期信号干扰以及其他高频噪声劳动,在对于市场位置和市场趋势的判断中起着较为重要的作用。

二、论文分析

这篇文章的的理论背景是本文作者的之前论文所提出来的一个模型中的一个应用模块。该模型如以下PPT所示。这个模型就不是这篇论文详细讲的了。要是感兴趣可以去看Identification of stock market forces in the system adaption framework这篇论文。这里通过Internal Model求出的是为Internal stock price,将其与真实价格p作差,获得Error Signal,将该Error Signal和原始价格输入Adaptive Filter获得 bar{e_{i}} ,该值的物理含义是内部价格残差(Internal Residue).将Internal stock price加上Internal Residue即可获得预计价格。在这个系统中, bar{p} 为输出的真实价格。

这篇文章主要对于其中的Internal Model部分进行了详细分析,在Internal Model部分中,采用了Wavelet Transform的方法进行了数据处理并获得价格转折点的信息。具体的模型如下图所示。主要就是首先对输入价格进行EMA处理,继而对于连续k个数通过一个MISO OE Model进行处理并经过EMA后即可获得Internal price.其中Wavelet Transform的部分主要在MOSO OE Model中进行。

具体的小波变换的公式即为上文PPT的公式。没有太大的变化,直接参考上图公式即可,这里就不再重新给出了。这里他采用的是Daubechies小波基进行了12次小波分解。

这个Model的具体流程图如下图所示。

最后他对于价格转折点的判断是基于以下两个规则的:

  1. 设立一个阈值 S_{v} ,如果slope L>+S_{v} 或者说 L<-S_{v} 那么就判定这个点为一个价格转折点
  2. 设置一个时间过滤函数。在一次价格转折点设立后一段时间内,不论条件是否满足均不设立价格转折点

这篇论文的大致结构大概就如上所述。

三、仿真验证

上图为论文中对于上证指数的转折点判断。

上图为论文中对于DJIA指数的转折点判断。

我用他的方法对于比特币市场和上证指数接下来的时间做了分析。比特币的分析好像没保存,下次修改文章的时候贴上来。以下贴上我对于上证指数变换时间范围后的反正分析。从上到下三张图分别为上证指数,重构波形和SLOPE&THREASHOLD.效果没有想象中的好。

四、总结分析

这篇文章的算法我个人认为有几个可以提升的点。

  1. 由于DWT的重构是重构波形,波形中的幅度大小不会改变,因此在价格波动过于剧烈的市场,例如虚拟货币市场,后期还原波形的大小会非常大,即使是SLOPE也会波动即为剧烈且振幅极大。采用小的阈值会导致转折点判断虚警过多(这里不知道怎么描述,就用了个雷达的术语,意思到了就好).如果采用过大的阈值会导致在前面震荡市价格较为平缓的时候没有任何预警。因此我的想法是改进判断函数,将SLOPE替换掉,使其波动剧烈的时候不那么敏感,振幅减小。
  2. 处理周期可以改变。这是一个论文完全没有错,只是和我的交易习惯不符合的一个点。它的预警周期极长,平均每年一次,不符合我的交易习惯。因此我考虑变换处理周期,在更短的周期内进行预测,这里需要改变的是重构函数的组成部分。

 

https://zhuanlan.zhihu.com/p/28775920

转载请注明:量化交易 » [转]【Alpha-Nebula】使用小波变换预测市场转折点

喜欢 (0)
发表我的评论
取消评论

表情