登录
首页机器学习在量化投资中的应用:那些年我犯过的错
机器学习在量化投资中的应用:那些年我犯过的错
2016-06-03
收藏

机器学习在量化投资中的应用:那些年我犯过的错

机器学习的论文里面通常会有一张这样关于准确率的图:所有被比较的方法的准确率图线,都在文章提出的论文的方法的准确率图线之下。看到这张图,我们大概会觉得这个方法蛮不错的,可以一读。

如果还是抱着类似的想法去读机器学习在量化投资领域里的某些论文,那么你得当心了。让我们以文献[1]作为一个例子。在文献[1]里面,画出了’Total wealth achieved’的图线,我们截取其中的一幅,如下:

所谓的total wealth achieved,其实就是累计的收益。假设有一个人,第一天投资了1块钱,他在第t天的收益为r_t,那么到了第T天,他的累计收益就是(1+r_t)的连乘(直到T)。在这篇文章里,非常漂亮,所有既有的方法在累计收益的图线,被该文提出的方法(CWMR)完美压制,而且随着时间的变大,差距越来越大了。我一开始读这篇文章的时候,感觉该文提出的方法效果实在是太牛逼了。

下面我们将说明,累计收益图线是一条比较“然并卵”的图线。我们假设,有两个基金经理A和B,他们都从一块钱(这只是一个例子。。)开始起步。第一天,A表现出色,全线涨停,怒取10%的收益。B呢,押错了宝,本指望靠跟着国家队混口饭吃,结果被摆了一道,买的股票全跌停,损失10%。作为B的好基友,A看不下去了,他知道B不怎么会投资,于是跟B说,以后你每天就跟我混吧,我干嘛你干嘛。于是,从第二天开始,两人的每天的收益一模一样。假设从第二天起,他俩的收益在0.5% 到1%之间随机波动。那么投资了一千天之后,他俩的累计收益曲线是什么样子的呢?请看下图:

很明显,这两条曲线之间的差距也变的越来越大了,而我们知道,他俩其实只在第一天收益有所不同而已,而在其他的999天完全一样!

所以你看,累计收益的曲线,并不是一条很好表示算法表现的曲线。评价一个算法,我们还得综合很多其他的评价指标,如夏普比率,最大回撤等等。那累计收益曲线是不是一点用也没有呢?不是的,虽然它的绝对数值本身的意义有限,但是我们可以通过它清晰地看到策略的涨跌。

对使用范围的误解

使用机器学习做量化投资的论文,大体上有两类思路。第一类如我在上一篇文章中所讲,是设计个股的投资策略。另外一类就是类似文献[1],考察的如何设计合理的投资组合。其实这两种方法的目的是一致的,也就是大家常说的“寻找alpha”。

但是,投资的世界是如此复杂,并非所有的任务都是跟“寻找alpha”直接相关的。比如,如果你是一个交易员,你的老大告诉你,现在我有XX公司的一千万股必须要卖掉,你看着办吧。考虑到这是一个比较大的交易量,如果你按照平常的交易方式,在限价订单簿上挂这么大的卖单,那么那些买家立马就知道:这小子肯定有很大的卖出压力,那咱们果断要压价啊,压得再低这货都会卖的!为了防止在大单交易的时候出现这样的情况,有一种新的交易场所叫“暗池”。在暗池这个交易场所里,你不再关心能卖多少钱了(我的理解里,价格是由暗池的提供者以一种比较合理的、大家都可以接受的方式给出),你现在只想尽量多的把股票给卖出去(我们只讨论卖的情况,当然也有人买)。而且,在暗池里,你所能看到的,也就是你自己卖了多少股,其他信息都看不到了。由于暗池交易的参与者交易量都非常大,大家又没法看到其他人的单,所以,往往成交量有限。你挂了一个卖单,最后可能只有15%的股票给卖出去了。当然,市场上有不止一个暗池可供你操作。那么问题来了,你将如何把你的订单分配到这些暗池中呢?

好了,现在让我们来把这个问题具体化。这里我们只考虑卖股票的情况。假设,你在每个时间点t,都有V的t次方这么多的XXX公司的股票要卖出,而有K个暗池可以供你交易。你的目的就是,在每个时间点t,把V的t次方拆分成K份,分别放入不同的暗池,使得最多的股票可以被卖出。这就是Michael Kearns在[2]中所讲述的故事。这篇文章做了一个非常强的假设,如下图

这篇文章给我最大的启示在于,它告诉我,机器学习算法不止可以被用来“寻找alpha”,它也可以在一些其他的投资环节中起作用。它可以优化某些投资过程,把一些手动、半自动的投资方式变成自动化。即使这样的改变不能直接带来alpha,也一样大有用途。

对实证研究的漠视

我刚开始接触机器学习在算法交易中的应用的时候,以为这件事是很简单的:我只需要根据历史数据,用一个机器学习算法预测下一个时间点股价不就得了么。显然,这样的想法又too young too simple了,被我的导师无情批判过。

那么,究竟应该从什么样的一个出发点来设计一个算法呢?我的导师认为,应该是从股票数据上观察得到的某个性质出发。比如,我在上一篇文章里提到的方法,其实就是基于“某些股票数据呈现出趋势”这样一个性质入手,来开发一个交易策略的。而我们提到的文献[1],则是从“股票收益存在均值回归”这样一个性质入手的。

我应该从哪里得到这样的性质的?我相信业界的人应该有观察到一些数据的性质,但是他们不会去说出来,所以,对于一个普通人来说,可能就得依靠阅读实证性的文章了。有一些实证性的文章会去研究股票数据具有哪些固有的性质。比如说均值回归、动量,其实都是有实证研究的支持的。

对于一个想用机器学习来进行量化投资的研究者来说,阅读实证文章更是大有裨益。试想,如果一个研究者只知道股票有可能有趋势这一个性质,那么他设计的算法很可能就跟我在上一篇文章里设计出来的差不多。而这样的研究者是无论如何也设计不出基于“均值回归”这个数据性质的算法的。因此,我总结了一点,想发论文,最好从那些被别人忽略的数据性质入手。

对模型假设的忽视

关于这一点,这里只做一个简单的阐述。我希望在自己了解更深之后,针对这个问题写一篇专门的文章。

刚开始来中大的时候,我的导师问我:你如何判断一个模型能否work?我一时语塞,说不知道。然后老板就对我说,你得看,这个模型的假设与真实的数据是否是一致的。一个非常典型的例子,略懂投资组合的人都会知道Mean-Variance model [3]这个拿到诺贝尔奖、被称为现代投资组合研究开山之作的工作。但是,虽然这篇文章有着巨大的影响力,其实实际上并没有被太多人使用(至少是它的原始版本没有太多人用),究其原因,就是这个model中的诸多假设,与真实的股票数据根本就不相符,因此,当我们进行真实投资的时候,必然不会使用它。有朋友提醒我,说Mean-variance model并不属于机器学习的范畴。确实如此,但是也有些机器学习的研究者研究这个模型,提出了改进的模型,比如ICML11上的文章[4]。

总结

在这篇文章里,我总结了这两年中我曾经犯过的一些错误。我个人认为这些错误是可以帮助一些后来人少走一些弯路的,因为在与一些人的交谈中,我发现他们都或多或少的有跟我类似的错误认识。就写这么多,能抛砖引玉则足矣。


数据分析咨询请扫描二维码

上一篇
下一篇
客服在线
立即咨询