AI炒股,靠谱不靠谱?

前一段时间,在听<Sapiens: A Brief History of Humankind >(中文译本: 人类简史)。其中一章讲到股票可以用人工智能预测吗?作者的观点是不可以。因为股票市场是有对抗性的,如果大家都相信预测结果,而采取行动,而这样的集体行动必然会影响股价。这个问题很有意思。然后,我就饶有趣味的观望了一下人工智能预测股价的现状。

在进入主题之前,分享一下财经圣经,Benjamin Graham的<The Intelligent Investor>(中文译本:聪明的投资者)的主要观点之一: 不要尝试做预测!!!股票市场唯一不变的是,他会残忍地给对未来预测自信满满的你一个surprise。

<思考的快与慢>的作者Daniel老爷爷也说啦,这个世界大部分事情都是随机的,有一些因果关系嘛,都是喜欢故事的人类牵强编出来的。股票市场,真的不要去预测。

既然股票市场无法做预测,那华尔街的分析师们都在忙什么?那些财经数据分析师们都在忙什么?<聪明的投资者>里说,其实他们忙活不忙活都一样。如今有那么多数据,难以避免想去分析,就像一个人拿着锤子,见到钉子或者像钉子一样的东西,都想过去钉一下。

有意思的是,前一段时间听Lex Fridman的一期podcast,嘉宾是物理学家Stephen Wolfram, 他提到了,量子力学是破解这个世界的基础,如果人类能够成功建模量子微观世界,这个世界的任何东西都是可以预测的,比如说此刻的你在做什么,甚至本期的podcast的内容都可以预测出来, 所谓the theory of everything. 如果是这样,那股票市场预测应该是个小问题吧。

那股票市场到底可以预测吗。我们暂时可能无法回答这个问题。但我们可以回答一个问题,人工智能可以像巴菲特一样买卖股票吗。可能按照Daniel的理论,巴菲特也只是运气好)。或者我们把问题更general一点,人工智能可以像一个行家一样买卖股票吗?这个答案可能还是比较有信心的问答,可以。股票市场有没pattern我们不知道,但行家的操作还是有pattern可以找。

早期的股票预测模型,通常是基于时间序列模型,通过序列分析来预测未来的股票走向。靠谱度如何呢?我想起了在大学时候学过一门课,叫做时间序列分析,有一个例子是,预测彩票,彩票比股票应该更加难以琢磨。这又让我想起了有了锤子找钉子的比喻。时间序列模型对于股票操作来说,是有一定指导意义的,可以这么说吧,时间序列模型就和那些看曲线走势的股民们做着差不多的事情。虽然你不懂背后的驱动力是什么,但是却是有一定的规律,多少规律可信,对于股民和时间序列模型来说,一样难评定。在市场风险领域,会引入一种评定方法,称为backtesting(事后校验)。把实际的结果与模型预测出来的结果做比较。在机器学习领域,这个backtesting和test set很相似。如果backtest的结果好,可能只是overfitting了测试数据。就和选基金一样,一个基金在过去五年的表现特别好,但不代表未来就一定好。

貌似我们进入了一个思考的死胡同: 测试结果坏,不行; 测试结果好,不一定可信。机器学习中,我们是不是也要质疑test set的评分好到底可信不可信吧。test set的评分是不是可信,有一个很大的前提: test set的分布是不是可以代表真实的分布。对于股票曲线走向,我们可以这么翻译过来,参与backtest的这个时间段的市场因素是不是有代表性。比如说2020年,COVID19对IT股和旅游股的影响,使得2020的IT股和旅游股的走势并不能代表general的情况。而市场因素非常的复杂,可代表还是不可代表,这个问题本身就很难回答。每一种编程语言的helloword都很好写,但实际的code都相当复杂。我们学习test set策略时,猫狗的例子中的test set就和helloword差不多,但对于实际问题,难度大很多,而对于股票市场来说,尤其的难。

对于一个经济分析师或基金经理,当然并不是由单一的曲线走势来决定投资策略。研究股票预测的机器学习工程师们,总结出了三个方面。

  • 技术分析technical analysis: 即上文提到的股票曲线走势

  • 情感分析sentiment analysis: 股民心态,股民对股票的情感是积极的还是消极的

  • 基本面分析fundamental analyisi: 如公司的财务报表,负债情况等等 

技术分析和基本面分析,大家都不陌生,作为模型的输入,也是非常直观,就是一堆数据,Internet上随便拉。那情感分析具体怎么操作呢。情感分析属于自然语言范畴。机器学习工程师们会从推特,脸书以及其他的论坛上爬和股票相关的内容,做情感归类。谈到情感分析对于股票预测,相关的新闻也被列入此范畴,而且影响度似乎更大。有相当多的机器学习工程师们在做模型,来预测某只股票,当有相关的新闻在路透或者彭博发布后,当天的收盘价。实现起来也是自然语言处理的一个应用,算法也是可以自由选择,神经网络,SVM,甚至decision tree。当然每个机构或者个人的ambitious是不一样的,长线预测还是短线预测,投资比例等等都是重要的信息。

模型做出来了,怎么评价其质量呢?当然靠谱的结论是通过实践得出来,而不是实验室用已知的数据计算出来的。一个模型到底好不好,可能需要多年的时间来检验,不过多年之后,对股票影响的因素可能又发生了变化,模型可能早就更新了多个版本了。

股票的预测模型,与其说是intelligent,我更愿意说是automation,虽然二者概念的边界很模糊。intelligent强调的是模型真正的掌握了奥秘,而automation是automate了人类的操作。而每个公司的模型是automate了该公司的操作策略。

如果说只是automation的话,大家可能对其难度大大松了一口气。实则不然。即使我们已经拥有了automation (AUTO),也是有原则必须遵守,列出几条我比较感兴趣的分享一下:

  • 不要人为干涉。人为干涉只会增加bias,影响AUTO效果。

  • 世界变化是很快的,对于金融市场更是如此,所以必须考虑如何进化模型。

  • 对于机构来说,不要出售自己的AUTO, 这样做的话,一来lose focus,二来,大量使用,市场的对抗性会影响AUTO效果

最后分享一些我读过的比较有意思的相关文章论文:

https://medium.com/swlh/teaching-a-machine-to-trade-stocks-like-warren-buffett-part-i-445849b208c6

https://www.quora.com/Has-anyone-applied-AI-for-stock-trading-with-a-90-or-higher-success

https://towardsdatascience.com/backtest-trading-strategies-with-pandas-vectorized-backtesting-26001b0ba3a5

https://ep.liu.se/ecp/165/003/ecp19165003.pdf


阅读更多作者原创文章,关注微信公众号:

 

 
posted @ 2021-01-16 05:55  dagis  阅读(770)  评论(0编辑  收藏  举报