稳定盈利的法宝 让你怎么做都赚钱

  原谅我标题党了一把,这篇文章说的是为了将雌雄双股剑系统打造成一副无敌的战神套装,我们正在开发一个“信源处理模块”。为了得到平滑的数据流,我解释了怎样将傅立叶变换应用于股指期货高频交易。

  还在解决现货股指和期货之间的差异性问题。不知道大家有没有考察过股指现货、ETF和期货的区别?

  股指现货是一篮子股票的加权指数,加权是一方面,另一方面交易所每5秒推送一笔数据,我们看到的其实是每5秒的截图,或者说是5秒K线的收盘价,因此走势最平滑。但这是没办法交易的,而且从时间和速度上都滞后于基于“未来预测”的期货。

  真正的可交易标的是两种,一种是现货股指ETF,另一种是股指期货,这两种都可以在二级市场进行交易,前一种有实际现货(一篮子股票的份额),但是因为是基金,采用的是净值报价的方法,报点误差很大,这里就有很大的套利空间。我们有团队是专业做ETF套利的,做得最好的每年可以在无风险的状况下盈利一倍以上,这里不在讨论之列。另一种期货,是相当于现在对未来的股指预测和定价,然后付一些订金(也就是保证金),一千个人可能就有一千种价格预测,而且根据市场变化,这种预测也在变,所以一方面当前方向的波动会被加剧,另一方面从设计角度就决定了它的走势很不规则。

  以前听说过有团队用一个领先指数,甚至是某股票来做股指期货。因为观察标的走势非常平滑,趋势明确,所以随便用什么做都赚钱。

  随便用什么做都赚钱……重要的话要讲两遍。实际上高频交易的一个重点就是把噪音和信号分开,蛋黄和蛋清分开,根据信号明确地辨别出现在的方向,然后捕捉毛刺进场交易。所以到最后,高频交易其实拼的就是数据源处理。

  我们想通了这些,那么在找不到替代的数据源的情况下,怎么样能把期货的走势变平滑,分离出来有用的信息呢?

  首先想到的是截取,就像刚才说的加权指数的计算方式一样,每5秒截取一张截图,然后拼合起来。古人发明了很多过滤信息的方法,K线是一种,均线是另一种。K线,我们所有人都已经用了这个方法。而均线,它的根本问题在于滞后。总之,它们都不能达到我们想要的目的。要战胜金融期货市场,还得有更先进的武器才行。

  其次想到的是对数据流进行降噪,这个想法我很早以前就想过,可惜当时没有深入,现在正好遇到这个问题,我们不妨拿出来再探讨一下。降噪算法跟波动率算法、排序算法等等一样,都有n多种,各自有各自的特点和适用范围。目前比较通行的降噪算法有小波去噪和快速傅立叶变换后低通降噪等等,这里我们还是先用通用的算法来搭建框架、探讨可行性的效果,以后再考虑优化。

  排除掉他的结论不说,因为他的结论是针对电力工程的。我们仔细观察一下图形,是不是下图的效果更好?首先,FFT足够稳定,无论是什么宽度设置(我的强迫症又犯了,作者为什么不把参数设为2的整数次方??你考虑过傅立叶的感受吗!)下,FFT后低通滤波都能获得较为一致的图形,无非是采样精度不同。其次,我们看图形左边,是不是盘整变成了一条横线?这不正是我们想要的吗?

  简单来说,傅立叶变换就是将一个连续的时域的信号分解为n个频域,并偏转一定角度(相位)的静止信号,在感叹大自然的神奇奥妙同时,我们可以用欧拉公式来很简单地进行相关运算,原本在时域中几乎不可能完成的运算现在直接变成了加减乘除等小学算术。

  关于傅立叶变换的意义和作用,在不同领域有不同的用途。在金融领域,尤其是量化交易领域,简单来说就是将上面这张时域信源拆分成不同的频域后,过滤掉后面哪些细小的成分,然后再反变换回来,成为降噪后的数据流。因为,不同频域的波动,其影响力是不同的,其中频率较低的部分(周期较长的)可以视为真正影响行情的趋势,而频率较高周期较短的部分则可以视为噪音。严格来说快速傅立叶变换并不是一种降噪方法,只是说将傅立叶作为一种途径来进行低通过滤。

  想到这里,是不是忽然发现为什么做高频交易和量化交易的牛逼轰轰的高端人士都是学通信工程和物理的博士?因为他们学的就是这个,基础摆在这里啊。

  前面这些都是铺垫,接下来我们干正事了。有人认为FFT对股票研究没有意义,实际上我们认为他的两张图并不能证实他的观点:

  我们简单看一下,如果我们用K线图,做过降噪以后,走势方向更明显,但是与实际标的价格差距太远,只能做一些状态类的运算。而实际上,由于计算繁琐(还需要将部分未来函数转为非未来,我以前的博文中提到过方法),利用价值很低。

  为什么出现这样的情况?这是由于,K线的本质是截取了一段时间内的四个关键价格(开高低收),它本身就已经是一种细筛过滤(变相的降噪)。而且这种细筛得出的数据频率很低,要知道音频信号往往都是KHz ~ MHz的频率。将K线做FFT低通降噪,等于是先过了一遍细筛,再过一遍粗筛,显然是没有意义的。正确的方法是反过来。

  我们所能取到最高精度的数据是tick图,对于股指来说这是交易所每半秒撮合的一张截图,我们对它来进行FFT低通过滤,位数越高越平滑,我们分别看看:

  以今天的行情为例,9:55我们的FS21M(直接用于IF 1分钟线)触发了一笔很可惜的离场,我们发现这种被毛刺触发信号的概率远远大于指数:

  这一笔信号是由在4164.0附近的数个毛刺tick造成的,距离平台4160.6有大约3~4个点的距离。在32位的FFT低通降噪上我们看到,这个毛刺被过滤掉了:

  除此以外,可视为叠加了噪声的源数据可以被认为围绕FFT降噪后的曲线呈现高斯分布。假如说这个假设成立,那么,我们就可以在置信区间的边沿去触发出入场信号。因为噪声总是会移到曲线的另一边,我们没有必要在触发突破的当时就入场,而可以在微观层面选择一个更好的时机来介入,也就是说优选了介入点。

  接下来的难点是将FFT逐行算法转为逐k算法,以32位为例,我们可以看到最近的32个离散点总是变化的,而再之前的离散点则基本固定不动。这样的话,我们需要一个序列变量A和32个单值变量B1 ~B32来拼合这一条曲线。在最新的时间点上,由A[33]及之前的数据作为固定值,再依次追加B32 ~ B1作为变动值,实际触发交易的替代tick当然是B1。

  有了这一张降噪后的新的tick图,我们把它拼合成K线图,然后进行交易,后面的工作就和我们所熟知的一样的。

  用新的数据源重新拼合K线图,这又是一件麻烦事……不过这也是最后一道坎了,后面就是我们的强项了。那些物理博士们只知道洗数据,洗完了数据……用均线MACD来交易?!

F