当前位置:首页>投资入门>手把手教你错误地使用人工智能做投资

手把手教你错误地使用人工智能做投资

  • 2021-08-19 21:00:23

  • 1

    人工智能 ETF AIEQ 横空出世


    2017 年 10 月 18 日,一个名为“AIEQ”的 ETF 基金在美国横空出世,刷爆了投资圈。它的全名是 AI Powered Equity ETF,是全球首支人工智能 ETF。这支 ETF 有什么来头呢?


     

    AIEQ 由旧金山 EquBot 公司推出,该公司是 IBM 全球创业者计划的一部分,并与 ETF Managers Group 合作,利用 IBM Watson 超级计算机进行大数据处理,并分析美国境内投资机会,对股票投资进行主动管理。


    据媒体报道,AIEQ 利用人工智能和机器学习,对全美 6000 多家上市公司进行分析,构建上百万份资料和众多金融模型,从当前经济形势、未来趋势以及公司重大事件等方面进行深度分析后,再挑选出包含 70 支股票的投资组合。


    股票选好后,将由 ETF Managers Group 的一个基金经理团队对投资组合进行再权衡。


    上面的介绍中有足够多的热词吸引眼球:“人工智能”、“机器学习”、“IBM Watson 超级计算机”、“大数据”、“上百万份资料和众多金融模型”、“深度分析”……


    这支 ETF 也确实不负众望,自推出以来的头三天确实战胜了标普 500 指数(下图)。



    于是,金融圈沸腾了,懂行的和不懂行的媒体更是炸锅了,纷纷大肆报道,毫无理智可言的吹捧这支黑箱满满的人工智能 ETF:



    一时间,。


    这不是“机器学习选股(或投资)”第一次站上风口浪尖。早在今年三、四月份,世界上最大的投资管理公司贝莱德就宣布使用机器代替基金经理,自此宣告了人工智能将要取代人类开始征服投资界。那时我写了一篇题为《为什么机器学习在投资领域不好使》的文章,阐述了如下观点:


     

    虽然身处并坚定地看好量化投资领域,但我对“机器学习在选股上能取代人类”这个观点上持保守和谨慎的态度。这是因为金融分析属于非实验性科学,因此无法进行对照实验。这意味着虽然存在大量的金融交易数据,但是无法通过设计实验来控制自变量的变化、通过重复性试验来检验提出的假设(比如说机器学习发现的某种选股模式)。如此的数据分析得到的大多是看似显著但实际上是欺骗式的模式(尤其对样本外数据),这个现象称作数据迁就。


    毋庸置疑,通过学习大量的投资品量价数据、上市公司的财报数据、互联网上有关这些公司的热搜舆情数据、分析师投研数据等,机器学习一定能发现一些在样本内可以赚钱的模式。但我们真正关心的是:这个策略到底是在茫茫历史数据中找到了虚假的模式,还是一个真正能从投资逻辑上给出合理解释的科学模式?面对机器学习这个黑箱,如果我们不能从业务层面弄清楚这个模式为什么有效,又怎敢拿真金白银按照这个模式来投资呢?


    本文就以机器学习中的经典有监督分类算法——支持向量机(support vector machine,SVM)——为例,说明如果毫无保留的相信机器学习而忽视投资业务逻辑的重要性,那么很容易掉入数据迁就的陷阱并找到特征和收益率之间的虚假模式;我们甚至会试图给这种模式找一个看似有理的解释。这无疑会导致投资的失败。


    本文题为“手把手教你错误地使用人工智能做投资”,目的不是为了否定人工智能和机器学习在投资实务中的潜力,而是为了提醒读者——同时也是为了鞭策自己——在投资中要对人工智能能够做到什么有个正确的认知,在使用机器学习算法时应该避开各种潜在的陷阱。


    2

    使用 SVM 发现投资模式


    SVM 是一种非常强大的有监督学习分类算法。它可以发现特征向量(feature)和标签(label)之间的关系。


    本文的例子以中证 500 指数作为投资标的并使用日频数据,以两个窗口的收益率变量和代表交易日是星期几的五个哑变量作为特征向量,以交易日收益率的相对取值大小作为标签,通过 SVM 进行分类。


    具体的,这七个特征如下:


    1. 前 5 日的累积收益率。

    2. 前 10 到前 6 日的累积收益率。

    3. 代表星期一的哑变量:如果交易日是周一则该变量为 1;否则为 0。

    4. 代表星期二的哑变量:如果交易日是周二则该变量为 1;否则为 0。

    5. 代表星期三的哑变量:如果交易日是周三则该变量为 1;否则为 0。

    6. 代表星期四的哑变量:如果交易日是周四则该变量为 1;否则为 0。

    7. 代表星期五的哑变量:如果交易日是周五则该变量为 1;否则为 0。


    样本内数据的窗口为 2016 年 3 月 1 日到 2017 年 10 月 20 日,即股灾 3.0 之后的交易数据作为样本。注意,这里我们犯了第一个错误。虽然有“股灾 3.0 之后”这个冠冕堂皇的理由,但是这里出现了数据迁就,即我并不试图在更宽的时间窗口内进行机器学习,而是仅在一个我事先决定的窗口内进行分析。一个真正从投资逻辑业务出发的模式不应该仅仅在这么短的窗口内有效。


    为了特征向量之间的可比性,对它们进行标准化,即令每个特征向量的均值为 0,标准差为 1。如此处理后便得到特征向量矩阵。样本内前几个交易日的特征向量矩阵如下。



    下面来说说如何处理标签。SVM 的目的是将这些交易日按照特征向量分成不同的两类。从投资的角度来说,那就是收益率高和收益率低的两类(记为 1 和 0)。因此根据每个交易日的收益率,可以有以下几种加标签的方法:


    1. 以 0 作为分界线,收益率为正的交易日标签为 1;收益率为负的交易日标签为 0;


    2. 以收益率的均值为分界线,收益率大于均值的交易日标签为 1;收益率小于均值的交易日标签为 0;


    3. 以收益率中位数为分界线,收益率大于中位数的交易日标签为 1;收益率小于中位数的交易日标签为 0。


    这三种方法的准确率如下:



    虽然以 0 为基准的整体准确率最高,但是从做多策略能赚钱的角度来说,猜涨准确率更加重要。在这方面,后两种基准似乎更有效。又因为较均值来说,中位数不受异常值的影响,因此最终我们选择以中位数为基准对样本加标签。


    上述推导看似“合情合理”,但我们无意中又踏入了第二个错误:仅仅追求样本内分类的准确性。


    特征向量矩阵和标签向量都准备好之后,就可以使用 SVM 进行有监督学习了。为了能够解释特征的重要性,我们采用线性核(linear kernel)。具体计算中,采用 python 的 scikit learn 扩展包中的 SVM 函数。采用线性核时,特征向量的权重代表了特征向量的重要性。这些特征向量的权重为:



    从特征向量的权重来看,两个收益率变量和星期四哑变量的重要性和其他几个向量完全不是一个数量级。对于其他几个哑变量来说,星期一和星期二这两个哑变量的权重为正,说明它们对分到标签为 1 的类(即收益率大于中位数)有正贡献。


    从上述结果中我们可以推断出,在这些特征向量中,星期一和星期二这两个哑变量对于“猜涨”(分到标签为 1 的类)最关键。这就是我们用机器学习得到的模式。


    3

    错误的模式和“合理”的解释


    经过 SVM 学习,我们得到了一个模式——星期一和星期二这两个交易日和收益率之间有“正”的关联。为此,构建一个策略:


    在星期一和星期二持仓;在其他交易日空仓。假设交易成本单边万分之三。


    在样本内,该策略在我们的投资标的即中证 500 上的效果如下:



    该策略的年化收益率为 15.1%,夏普率 1.22,最大回撤 -9.1%。同期指数本身的年化收益率为 11.8%,夏普率 0.47,最大回撤 -14.4%。可见,策略以更低的风险(因为每周仅持仓两天)换来了更高的收益(因此更高的夏普率),效果远超指数本身。


    这无疑令人激动,因此我们毫不犹豫的迈入第三个错误:给策略找“合理”的解释。


    由于这个策略是数据驱动的而非从业务实际出发,因此为了说(蒙)服(蔽)自己,我们给它找了几个牵强附会的理由:


    1. 日历效应存在于欧美股市中,反应了市场的非有效性。因此在我国股市中存在星期一和星期二这种日历效应也是可能的。


    2. 股灾 3.0 之后,股市呈现出健康新常态,即长期来看价值投资回归,股市收益率呈现出慢牛的正漂移率。每个周末出现的消息中利好消息多于利空消息,因此周一更有可能出现上涨。


    3. 即便周末出现利空消息造成周一下跌,投资者的过度反应往往造成周一超跌,因此股价在周二会有一波反弹;反之如果出现利好消息造成周一大涨,投资者的反应不足会造成周二继续跟进,再涨一波。


    我们用上面这些“看似合理”的解释强迫自己接受 SVM 发现的这个星期一星期二交易的模式。但不难发现,上面的解释仅仅是出自投资者的行为偏差以及我们的一个根本假设“即市场进入了慢牛新格局”。上述解释中没有任何来自投资业务逻辑的能够站得住脚的原因;而对于那个假设也没有给出任何分析。


    再来看看这个策略在样本外的表现。由于我们使用了最近的数据作为样本内的学习数据,因此这里使用 2016 年 3 月 1 日之前的数据作为样本外数据。此外,考察三个不同的窗口,即 2005/01/01 到 2016/02/28,2012/01/01 到 2016/02/28,和 2014/11/01 到 2016/02/28。


    如果一个选股模式真的在业务上有效,那么它应该在不同的回测期内都有不错的效果。


    下面的结果说明,SVM 发现的这个样本内有效的模式在样本外完全无效。




    这时,让我们来看我们能犯的最后一个错误:为模式开脱。虽然策略在 2016 年 3 月 1 日之前无效,但我们“并不慌张”,并使用如下的论证安慰自己:中国股市从一定程度上来说是一个政策市,显然股灾 3.0 前后的政策是不同的,因此以股灾 3.0 之后为样本发现的模式在股灾 3.0 之前的数据中无效是正常的。我们需要做的是往后看,只要这个模式在今后有效就可以了。


    怎么样?又一个冠冕堂皇的解释。但不要忘了,这里仍然存在着我们反复强调的两个问题:1. 这个模式背后缺少严谨的投资逻辑做支撑;2. 没有任何人保证今后不会发生新的政策变化而且变化被发现一定是滞后的,因此即便这个模式合理也无法说明它会持续有效(况且它还不合理)。


    好了,现在可以结束关于这个错误使用机器学习的例子的讨论了。在这个手把手的错误教程中,我们先后犯了四个错误:


    1. 数据迁就——选择看似有效的回测期。

    2. 过度关注样本内的分类效果。

    3. 绕过投资业务逻辑来解释机器学习发现的模式。

    4. 为模式在样本外的无效性开脱。


    因此,虽然人工智能发现了一个模式,但我们是不敢也不会使用的。


    4

    再来看看 AIEQ


    让我们再来看看 AIEQ。自推出以来,它经历了 5 个交易日。以 10 月 18 日的开盘价作为各自的基准,比较 AIEQ (蓝线)和标普 500 指数(绿线)在这 5 个交易日的表现来看,标普反败为胜。讽刺的是,当 AIEQ 由于前三天的高光表现而被媒体大肆吹捧之后,它就在第四个交易日一步走下神坛。仅从这 5 个交易日来看,和标普 500 相比,它似乎有高 β 和负 α。



    先不说 AIEQ 的规模仅有 700 万美元左右,仅仅通过三天的表现就引来媒体相继吹捧实在是令人大跌眼镜。巴菲特是在进了福布斯富人排行榜后才真正有人关注的,那时候他已经坚持价值投资几十年了。一两年的业绩出来吹都容易被打脸(更何况是三天),要想站得住脚必须经历过一个甚至多个大的市场周期。从这个角度来说,人工智能和机器学习要想在投资上证明自己还有很长的路要走。随着人们对投资实务的认识越来越深刻以及机器学习算法的发展,我愿意相信人工智能在未来会在投资中发挥举足轻重的作用。


    在追求更稳健收益的道路上,人工智能应该成为人类交易员的朋友,优势互补。一个业绩被市场认可的基金经理的投资逻辑和对市场的研读是不应该被机器学习取代的。但是从成本的角度,似乎不难理解人工智能在投资界普及的原因。面对越来越高昂的 α 收益率,开源不行,就要想办法节流。最终投资市场的均衡状态是超额收益的边际成本恰好等于超额收益。成本高的基金终将不断被成本低的基金挤出市场。

    ---本文转自量信投资



    聪明的股民关注我们后都赚钱了