量化读书会2:高频数据,低频信号


(yishui) #1

这是加入顾北先生的量化讨论群的第三篇文章。 因为大家之前讨论的内容过于分散,不利于讨论深度,因此从这次起,从之前的文章自己命题,改成了小组命题。这次的命题是一个具体的信号,但是我希望可以写的更广泛一点,多总结一下背后的方法论。

这次介绍的文章,是高子剑先生(曾任方正证券金融工程首席,现任东吴证券金融工程首席)的《“聆听高频世界的声音”系列研究(四)》。高子剑先生是国内“高频数据,低频信号”方法论的第一人和推广者,金融研究报告在全行业里面深度优秀,同时对方法论的坚持,也让人印象深刻。他的成功经验,对量化从业者对研究的深度和广度的权衡,很有启发。想在行业立住脚,有一两个让人一提到就能想到你的研究理论和研究方法,是一个很好的做法。

先上干货。文章全文就两个具体的日频指标。一个是高频数据、低频信号的指标,也是本文要关注的内容;另外一个日频指标是需要进行网页信息提取,非行情量价的指标,即《蜘蛛网策略》。

蜘蛛网策略

在期货市场上利用非行情数据是很好的思路,因为其可以带来低相关的信息,这种做法过去几年在国外市场比较火,比如卫星遥感数据啊、港口监控啊之类的,从另外一个角度来获取对应商品的信息。但是近一年这种方法的热度下降了很多,不知道是投入过于巨大,经济上不合算;还是有了数据,做不出好的信号。因为没有欧美一线基金的信息,只能猜测一下,如果有了解的还希望不吝赐教。

本文使用的是一个简单的非行情信息,来自于交易所每日公布的数据。

以上期所为例,其会每日、每周、每月公布一些统计的非行情数据。内容如下。

![](data:image/svg+xml;utf8,<svg%20xmlns=‘http://www.w3.org/2000/svg’%20width=‘471’%20height='291’>)

内容比如交易排名(即期货公司排名)、仓单、库存等等,这些数据是否可以整合起来,用作行情预测,是可以做的方向。本文简单使用了交易排名数据,在报告期内取得了还不错的效果。因为讨论群已经对原文这个信号做了比较深入的分析,因此这篇文章就不深入了,感兴趣的读者可以去阅读高子剑先生的原文。不过,用程序读取网页上的信息,用作交易,是一个必要的技术,本篇因篇幅无法涉及,但是之后有时间还是要讨论一下的。

高频指标(相对日频的高频指标,即分钟信息)

高频指标分两个子指标,

子指标P描述交易的激进程度,计算步骤是先根据分钟收益Rt和分钟成交量Vt计算

![](data:image/svg+xml;utf8,<svg%20xmlns=‘http://www.w3.org/2000/svg’%20width=‘124’%20height='30’>)

将全天分钟数据按St降序排列,取排序后数据累积成交量不超过当日总成交量10%的数据子集,对Rt求和。

(这是高子剑方法的精髓,即先构建排序指标,然后排序求和,并且求和使用的数据点是可变的,依赖于当日的成交量分布,这样把连续的序列中的价量信息重新组合起来,提取出不连续的信息)

子指标Q描述交易的分歧程度,使用一个新的排序方法,用到全合约总持仓分钟变化量dOIt,公式如下,然后依然是排序求和。

![](data:image/svg+xml;utf8,<svg%20xmlns=‘http://www.w3.org/2000/svg’%20width=‘166’%20height='39’>)

由于持仓量分布有很多偶然性,不一定在主力合约,因此高子剑使用了全合约,可以规避这个问题。

在计算好了指标P和指标Q之后,作者进行了指标的校准,计算

P* = P-MA(P,4)

Q* = Q-MA(Q,5)

这样,就获得了两个最终的指标P和Q

在获得了P和Q之后,还需要考虑的,就是如何将其转化为实际的仓位。作者制定了如下规则:

![](data:image/svg+xml;utf8,<svg%20xmlns=‘http://www.w3.org/2000/svg’%20width=‘514’%20height='158’>)

作者最后使用的实际仓位信号,是1和-1,如果信号为1,那么下一个交易日开盘的时候开仓,下下个交易日开盘时,平仓。如果信号为-1,则相反操作。

这是常见的将一个连续数值指标,转化成实际交易仓位的方法。如果是单个指标,可以根据这个指标和均值的位置关系,或者大于小于某一个阈值,将其转变成1和-1这样的实际仓位;也可以根据指标的大小,转化成不同的实际仓位,比如指标为1,仓位1,指标为5,仓位2,这样可变的仓位。

当然,上面说的是单一指标,而本文略有不同,使用的是两个指标。如果是像本文一样有两个指标,且指标的量纲一致,分布接近,本文的办法,是看两者的符号关系。本文就是同号给-1,异号给1。

另外预测时间也是可以探索的,本文预测时间是一天,但是我们可以研究是不是一天是最优的,比如2个小时,两天,会不会取得更好的效果。

最后,这篇文章公布于2016年,作者报告的策略表现还是不错的。

![](data:image/svg+xml;utf8,<svg%20xmlns=‘http://www.w3.org/2000/svg’%20width=‘947’%20height='645’>)

不过存在着一段时间完全不行的情况,在14年到15年有较大的回撤。

为了检验策略是否失效,以及是否在其他期货合约上也可以使用,我们这里在2018年之后的螺纹钢期货上进行测试。指标的计算全部按照高子剑先生的方式,但是由于螺纹钢存在夜盘,因此我们将从夜盘开始,到第二天下午收盘当做一个完整的交易日进行计算;另外为了将策略日内化,我们策略平仓的时间,从第二天夜里开盘(21:01),改为了第二天下午收盘前(14:59)。

下图是在螺纹钢上的无交易成本测试结果。

![](data:image/svg+xml;utf8,<svg%20xmlns=‘http://www.w3.org/2000/svg’%20width=‘1586’%20height='887’>)

可以看到,在2018年之后,策略可以提供一些收益,但是问题依然存在,比如在4月份和12月份的回撤都比较大,因此没办法作为单独的策略使用。这和作者的观察一致,PQ信号的预测性较弱,需要和其他信号结合使用,作者在本文中,最后是将PQ信号和蜘蛛网策略信号组合,PQ信号作为蜘蛛网信号的增强,从而取得了一些用处。

总结

本文是一个研发简单的信号策略的案例。其使用的信号本身有点复杂,需要对一段时间的数据重新排列,取某一指标的累积前10%求和,这个过程需要进行很多操作,某个地方没做好,信号的价值就会大打折扣,因此完全按原始的股指的做法检测,最终产生的结果也并不是特别好。实际交易中,需要基于文章理念,做更细致的分析。这个案例也可以看出,复杂的信号并不一定绝对的好,细节处理不好,可能比不上简单的信号。因此初学者并不一定一开始就追求信号的复杂性,可以先从简单的连续信号指标开始做,可以避免陷在一个信号里面长时间没有进展。

文章在获取到信号之后,如何将信号转化成实际仓位的方式,是比较常见的,可以学习使用的。这个案例的好处就是,展示了如果有两个信号,具有相同量纲和相似分布,如何组合起来构建最终的目标仓位。有兴趣的可以基于这个方法,组合出来更多的花样。