深度学习做股票预测靠谱吗?

论坛 期权论坛 期权     
薇薇安   2018-10-13 14:55   16953   15
用LSTM做过很多sequencial data的预测发现效果惊人的好,不知道是否有人尝试过在股票预测方面的应用。
分享到 :
0 人收藏

15 个回复

倒序浏览
2#
Miruku Zhang  2级吧友 | 2018-10-13 14:55:39 发帖IP地址来自
给你讲个段子!真实的!


我去一家量化交易公司实习,一次meeting中,我和老总还有一个资深大佬谈机器学习在股票和期货里面的应用。
我:LSTM在时间序列上应用的效果比较好,我们可以尝试把LSTM应用在股票预测上。
此时,大佬在阴笑,老总默不作声...
我:你为啥笑
大佬: 不work啊!
我:为什么不work?!
这时老总也在旁边强掩笑容,大佬终于忍不住说了,有两个原因,第一个是你如何保证你的因子有效?
老总就补充到:对啊,你的模型很可能garbage in garbage out.
我说:那你们提供因子来训练模型啊
大佬阴笑....
然后大佬又继续说:第二个就是,你非常可能过拟合!
我说:那我们可以加regularization啊。
接着他们俩忽略我的话了,老总接着说:其实我们是想要一个模型能根据每天的数据进行反馈,自动更新。
我一想,这TM的不就是reinforcement learning嘛,我说:可以用reinforcement learning试试。
大佬又开始笑了,我很纳闷。
[h1]大佬说:我就是知道他们有些人在用reinforcement learning,我才能赚钱!!![/h1]








最后实习结束之后,在大佬的带领下,我才明白了交易的三重境界
归纳
演绎
博弈


所谓的深度学习不过是基于历史数据进行拟合的归纳法罢了,如果把深度学习用来做股票预测,长期的是expected亏钱的,因为市场在变,规律在变,历史可能重演,但是又不尽相同。


深度学习肯定是可以用在股票市场的,比如针对某只股票的新闻情感分析等。但是不能用来预测市场走向!!!


想在市场上赚钱,就得博弈,你得知道其他人在干什么,因为市场是有所有的参与者共同决定的。


举个简单的博弈方法:
中国的期货市场之前很长一段时间,很多人,包括一些机构,都在用趋势策略,不同人和机构之间不外乎就是趋势的策略参数不同,让策略性能稍有不同,入市出市点不同,但是大体是类似的。所以这个时候,你应该知道市场上有一部分资金是在用这种趋势策略在跑的,那么在未来的某一个时间点,这些策略会相继的发出信号,然后人们去执行买入卖出的操作。
所以有趣的地方来了,既然你已经知道有一部分人在干嘛了,你是不是就可以设计策略来巧妙的利用其他的人的策略呢?你是不是可以设计一个类似的趋势策略,来告知你别人在这个时候可能会干嘛,而你来选择做更有意义的事情,而不是是不断去改进所谓的趋势策略呢?


所以,回到深度学习的问题上,如果深度学习用来归纳过去的数据,然后来预测股票走势,我觉得是不靠谱的。但是如果能想办法把深度学习用在博弈问题上,那么我觉得有可能靠谱。


-----------------------------------------------------------------------------------------------------------------------
更新:我在另一个回答里举了一个应用深度学习和博弈思想的例子,有兴趣的可以了解下。
MilKY:机器学习(非传统统计方法如回归)在量化金融方面有哪些应用?


我再在这里总结一下我自己对博弈在交易里的理解。我真心就是一个只实习了很短时间的新手,以前也没接触过金融或者量化这一块(只是个码农而已....),理解上肯定有很多偏差和不足。大佬们,如果你们觉得回答里面有什么不妥,本屌非常欢迎赐教啊!


核心思想:
无论你用不用深度学习,除了价值投资,你要赚钱,那么就得有人亏钱,所以说你的交易逻辑本身得是正确的才行,也就是说你设计好一个策略后,你要知道你赚的钱是从哪来的。很多人赚钱的时候稀里糊涂的,我们不妨称之为运气好。但是你如果明白你是运气好,并且不断探索原因的话,你很有可能未来还会赚钱。而事实是大多数人明明是运气好但是却觉得是自己聪明,从而未来大亏甚至倾家荡产。
如何应用深度学习呢,假设你已经明白了你得赚钱逻辑,但是这个逻辑里有些事情你一个人做不完,用计算机帮你做,用深度学习帮你做效率更好更快,那么深度学习不是就派上用场了。
我个人认为深度学习不过是个复杂的函数映射逼近算法,你的逻辑就是你的函数,逻辑都不正确,逼近得再好又如何?
3#
陶轻松  2级吧友 | 2018-10-13 14:55:40 发帖IP地址来自
感觉没人正面回答这个问题,我仅站在技术的角度去抛砖引玉的归纳一下这个问题,先陈述一下Deep learning的要点:
首先,Deep learning能做一切数据挖掘有关的事情,区别在于你能不能结合自身的经验去建立一个较优的模型,让learning更加的“高效”,这种“高效”包含但不限于:学习时间、学习误差率、学习鲁棒性、学习所耗费的资源等。
其次,Deep learning处理的数据前期至少要求是相对全面的,不全面的数据、甚至如果有重要的数据有所隐藏,对于任何学习模型来讲基本都是灾难的。(假设世界上除了男人、女人,还有第三种人,你在不知道的情况下如何去分类?怎么分类都是错的)
再次,Deep learning所谓的模型,对于目前而言,受限于基础理论,建立模型的过程是渐进的、甚至是需要人工的,所以“调参”的手段是有很大的“主观成分”在里面的,所谓的“主观成分”不单单是说在股票行业经验越多越好,而且要求是正确的、有体系(结构化、去噪音)的经验,事实上,很多投资经理自身投资的过程中受限于压力,经常带入了很多非科学、非理性的情感,甚至犯很多基础错误,导致投资失败。也就是说:模型即使是对的,调参人员太傻比也不行!
最后,Deep learning是统计学和机器学习两门科学的交叉科学,它的宗旨是通过统计学习方法运用机器学习的运算(实现)思路,让机器帮我们去计算各种事件出现的概率,协助我们去分类大数据、预测新的样本为【某个特定分类】的概率等等。但是,仅仅是“概率”,既然是“概率”必然也就只是可能性而已。
有了上面四个简单的Deep learning基础咱们再来看股票预测这个问题,思路会很清晰:
根据第一点股票预测这件事情肯定是可以做的,因为股票预测是数据挖掘的问题,无非也就是根据一堆数据分析去得出一个分类而已:{0:涨,1:跌}。但是,用Deep learning去做靠谱吗?
我们说这个问题取决于前面Deep learning提到的后三点:你的数据是否全面?你的模型在建立的过程当中,负责调参的人靠不靠谱?然后,介于Deep learning只是概率事件,你是不是用一次成败去论英雄?
在提到数据全面这个问题上,我们不得不承认,在中国的股票市场是不适合用数据去预测的,因为中国的市场是有操纵嫌疑的(这个仅仅代表个人的观点哈,不喜勿喷),很多企业的内部数据基本都是不向外开放、甚至刻意利用信息不对称去操纵股价,这个我就点到为止吧,相信大家都承认,扯多了就是不技术问题了,而是政策问题。
相对而言,在数据准确、全面的基础之上,我们去做DL会好很多,但是这个时候我们也不能说DL得出的结论一定是靠谱的,因为受限于基础理论,目前的DL基本都需要人工去调整参数,这个时候考虑的就是调参人员的经验了。为了弥补这点,在美国华尔街,很多对冲公司都是形成一个个的项目组,一个项目组成员包含:分析员(DL、ML)、资深经理人(对股票的了解深入骨髓)、操盘手(负责根据DL、ML的结论操作数据)等等。但是即使这样,由于跨界的隔阂,团队也不一定能够100%的建立一个牛逼的模型,这个时候就需要一个“交叉科学家”:他上知技术、下知股票行业,同时也是个很好的管理者,这样的人员去做leader,然后协调技术和证券人员模型才能更好的建立,举个例子:数学家西蒙斯:华尔街最赚钱的基金经理_天马_新浪博客
最后提到一点Deep learning是一个概率的事件集,即使是目前看似神武围棋DL程序alphaGo,在前期也是屡次失败的,因为它走每一步棋都只是代表“走完这一步之后我的棋盘局面会是【相对最好】的概率”,为什么是相对,前面提到过,受限于资源,DL不可能计算每一种可能性,利用牛顿下降法、改进梯度下降法也只能是让我们达到局部最优,而不是全局最优。而即使达到全局最优,DL运算也是给出每一种结果成功的概率,概率只是可能性。笔者自己尝试着在10台机器上面基于tensorflow框架跑过一个自己改造的围棋DL程序,由于计算资源不足,导致隐节点数量和深度都只能调整很低,所以效果只能说一般(但比我自己强[害羞])。
所以,站在技术的角度,DL做股票分析是靠谱的,但是前提是你的数据得准确、调参人员兼顾技术+股票经验、并且承认成功也只是概率事件。而且,现在在华尔街,美股市场中几乎每家对冲基金公司都在用DL预测,只有有些公司做得好、有些公司做得差而已。笔者也从朋友那里听说过,目前貌似国内有个90后掌控了几百亿资金在做“量化交易”,做的是美股市场,真假我就不保证了,但是应该有。
4#
王汉洋  3级会员 | 2018-10-13 14:55:43 发帖IP地址来自
看了圈回答,大部分都挺好。有几个实操中比较重要的点还没怎么被提到,我补充两句。
先放结论:现阶段有点难度。

1. 拐点的问题。有个效应叫海岸线效应,就是说你远看能看出来波浪的大致曲线,但离近了看却发现是锯齿状的。
股票也一样,你远看有大致趋势。但近点看就不一定能看出来。
究竟哪里是「拐点」?人是够呛,深度学习目前来看也够呛。

2. 金融要求你有历史积累来证明自己的模型是可行的,总不能你用一晚上就说这玩意好使吧?就好像某一年收益率大于巴菲特的人很多,但这么多年保持这个收益率的又有几个?
对于大部分想搞这方面的公司来说,即使真有,也还需要时间证明,现在市场上没声音也正常。

3. 承接上一点,有个逻辑上的问题,你这个模型要好使那你干嘛给别人用啊?比如你要好使就不出来融资到处说了,自己闷声发大财啊。你出来说就代表这个玩意可能有问题。

4. 还有个模式是不直接炒,而是买分析数据给别人。但这又带来了新的问题: 如果你的预测和分析数据是好用的,那肯定有人狙击,这样就变得不好用了。别以为需要很多人,实际经验告诉我们一个消息有 XXXX 人知道了基本上就有人狙击了。除非你满足于百分之零点几的增长。XXXX 具体多少可以自己猜

5. 假设这一切问题你都克服了,然后来到了我国伟大的 A 股市场,看到一只股票预测必火。结果因为股东还没解禁,刻意打压股价,得,啥算法都白扯。

不过虽然说了这么多问题,我们还是感觉这事挺有意思的。

在外面等着见客户的时候手机打的,比较累等回去用电脑继续整理。
5#
BigQuant  2级吧友 | 2018-10-13 14:55:44 发帖IP地址来自
18世纪人类社会大部分都在使用马车作为交通运输工具,如果问当时人是否相信会有比马车快10倍的交通工具——汽车,那得到的答案基本上是否定或者怀疑的。如果问下他们的感受和反馈,他们应该会提出以下的一些建议:
  • 马车能不能多用几匹马
  • 马在路途中要补给,能否在道路旁增加马厩供应
  • 马车颠簸,是否可以重修道路
于是,基于这些问题和反馈,产品永远局限在马车的范畴,汽车与此毫无关系
而人类真正需要的其实是马车,即使当时人们认为汽车完全不靠谱。
深度学习问题同理,预测做股票靠谱吗?应该不少人提出质疑。小Q对此持保留、尊重的态度,但不得不说,国外和国内顶级的投资机构已经在做这样的事情,大力布局AI,抢占先机。
就好比,以前大家都在用手枪作战,突然有一只军队在用冲锋枪作战,那么作战水平及武器其实是向前发展了,我们不能保证拿冲锋枪的军队一定取胜,毕竟战争也要看天时地利人和。
深度学习亦是如此。按照tensorflow的思想,数据从上到下,每一个对数据的操作就是一个模块,每个模块都有输入数据和输出数据。深度学习做股票预测其实没有你想象的那么复杂,参考:使用深度学习技术预测股票价格【代码】
[h1]深度学习技术预测股票价格 [/h1]
  • 局部图

  • 概览图

6#
静静地  5级知名 | 2018-10-13 14:55:45 发帖IP地址来自
实现深度学习的最重要因素是海量数据。

这决定了深度学习不适合预测长线,对于短线预测可能有效,不过前提也是资金量不太影响市场的情况下。

a股只有几千个个股,每年的牛股就更少了,二十多年来总共的牛股数量远远低于深度学习所需要的数据量(为什么说牛股,因为你要超越市场呀,当前大多数的量化结果还不如随便买个股票放在那不动)。

短线的数据量是足够多的,但是还存在一个问题。

短线预测类似天气预报,而对短期走势产生影响的因素相比天气因素,估计会更多。这会不会产生过度拟合?不好说。

更为重要的,是预测天气不会对天气产生影响。但是预测市场后,参与市场,就会对市场产生影响,特别是资金量较大的情况下。
7#
ohm-FY  4级常客 | 2018-10-13 14:55:46 发帖IP地址来自
要说一些非常扫兴的事情~
通过我对股票和深度学习的理解。
用深度学习来预测普遍存在的问题有两点。

第一是数据缺失严重。
数据当然是越精确越好, tick 级别的最好, 最近几年tick 级的数据好找,应该也比较准确。 但10 年之前 tick 级的数据就比较难找了, 就算找到也不能保证这是准确的。 导致能拿去训练的,只有08年 - 17 年这么多的数据。

第二个问题就是过拟合。
拿过去9年的数据做training , 最近1年做validation 。 调参数, 调出了一个比较好的参数。 但要怎么保证这个参数在未来的几个月内依然表现良好 ?   
为什么有很多策略回测表现完美,但实盘就不行了? 就是因为过拟合。

要是还有一个问题, 那就是 经济学到底能不能用数学来解释 ?  
许多人把深度学习作为万能法宝,  但Andrew Ng 曾经说过, 如果有些问题 如果人解决不了。 机器也不行。
这篇论文  The sciences are different and the differences matter.  下载链接 http://isi-dl.com/downloadfile/31596  
讨论了一个问题 , 社会学能不能用数学定量解释 ?  
经济学某种程度来说也是社会学的范畴, 很多事件是人为主观推动的, 只不过这个事情最后在数学上有反应。  

几年以后如果DL 真的能预测出股票走势,我一点都不惊讶。 但任重道远。
8#
Jack Jiang  3级会员 | 2018-10-13 14:55:47 发帖IP地址来自

9#
张馨宇  3级会员 | 2018-10-13 14:55:48 发帖IP地址来自
为什么任何人经过两三个月都会跑deep learning代码,但是正经做dl的大公司还是只喜欢要科班phd呢?因为机器学习并不是无脑扔进黑箱子,而是建立在统计学,可学习理论基础上,对过拟合的科学研究。
10#
罗浩.ZJU  2级吧友 | 2018-10-13 14:55:49 发帖IP地址来自
Lstm 对序列数据处理能力我是不怀疑的,我也做过很多实验,但是做股票分析就差远了,这完全不是序列数据分析这么简单的问题,我敢保证这个世上至少一百万的人想过用lstm 或者其他时序分析的方法来预测股票,但是如果做的出来的话早就闷声发大财去了谁还去读什么博士。

通常一个东西没有人做出来有两个原因,一是大家做过了做不出来,二是这个东西没有意义。我想赚钱应该算不上没有意义吧

股票预测绝不简单是一个序列数据丢到深度学习里面就可以发大财的问题,比如买入点,交易量,历史价格,k线一大堆东西你都不知道用哪些数据。所以股票预测是要在你了解股票金融市场数学模型的背景下,同时具有统计和深度学习等等相关理论的条件下才有可能找到一个入手点,我想这世上没几个人能够做到发财的地步。

当然也不要这么悲观,说几个真事:
1.香港有个科研工作者用模糊理论做股票预测已经成为富翁了
2.我导师的朋友用马尔科夫理论做个自动炒股软件每年也稳稳的赚点零花钱
3.我一个学长用深度学习成功预测出了两次股灾,论文已经发了,当然细节我没关注过

题主可以深入研究这个问题,我觉得这个问题至少可以作为一个博士课题,如果解决了记得告诉我,我和导师都yy 一年了
11#
babyquant  5级知名 | 2018-10-13 14:55:52 发帖IP地址来自
这是我的专栏里之前写的一篇文章,抛砖引玉吧。用lasso/gbm/random forest/deep learning来研究螺纹钢分笔数据的。
比如一开始先简单准备一下数据,这是螺纹钢某段历史的数据,150天吧,40天训练,10天验证,100天测试,够意思了吧。
  1. train.range  gbm.test.pred  R2(gbm.test.pred, test.mat$y)[1] 0.01765722
复制代码
然后看看样本外,同样的数据这次是0.01765722,比lasso好多了,5900多秒不是吃干饭的。。。
然后看看随机森林,说实话这个我不大熟,貌似好慢。。。那就试试h2o这个包吧,还是挺高达上的,很多斯坦福统计系教授是它的顾问,包括Elements of Statistical Learning的几个作者。。。
  1. > library(h2o)> h2o.init(+ nthreads=-1,+ max_mem_size = "8G")Connection successful!R is connected to the H2O cluster: H2O cluster uptime: 4hours 4 minutes H2O cluster version: 3.10.5.3 H2O cluster version age: 1month and 30 days H2O cluster name: H2O_started_from_R_pc_igo044 H2O cluster total nodes: 1 H2O cluster total memory: 6.42GB H2O cluster total cores: 20 H2O cluster allowed cores: 20 H2O cluster healthy: TRUE H2O Connection ip: localhost H2O Connection port: 54321 H2O Connection proxy: NA H2O Internal Security: FALSE RVersion: R version 3.3.3(2017-03-06) > h2o.removeAll() # Clean slate - just incase the cluster was already running[1] 0
复制代码
我的电脑配置一般啦,人穷志短,莫笑。。。。还要对数据进行处理
  1. > train.frame  valid.frame  test.frame  dim(train.frame)[1] 1609232 12
复制代码
然后就可以建模了。。。其实对随机森林真心不大熟,就对深度进行优化吧,省略一些过程:
  1. > best  best[1] 10可见最优的模型是深度为10的情况,我们看看样本外的结果:> h2o.rf.model  h2o.test.pred  R2(h2o.test.pred, test.mat$y)[1] 0.0133576
复制代码
最后10层最优,跟gbm貌似一样,gbm我随便取的10层哈。。。结果是0.0133576,比lasso好,比gbm差,这是样本外的。。。。
好了,最后关键时刻到了,deep learning粉末登场!!!
其实这个deep learning参数有点多,我先放代码再解释:
[code]n.level
12#
竹间智能 Emotibot  3级会员 | 2018-10-13 14:55:53 发帖IP地址来自
我的答案是肯定的。
个人而言,说否定的,可能是陷入了两个误区:
1.认为股价预测只依赖于历史价格,将预测简单地看成是一个时间序列问题;
2.对人工智能的期望太高,期待有一个人工智能程序能够完全代替人来做决策,自动买卖,而且稳赚不赔。而一旦这个目标不易实现时,就会完全否定人工智能在股市中的价值。

众所周知,要在股市中赚钱,需要有掌握信息的优势,利用信息的不对称,从信息匮乏的一方身上赚钱,比如:
股市老手,掌握更多的基本面分析(看得懂财报)和技术分析(对K线分析得好)手段,这类人可能比股市菜鸟赚钱;
掌握内幕信息的人,不用说,这类人也更有可能赚到钱。

那么将人工智能技术应用于股市,其实不是说让人工智能代替人去做决策,而是指让人工智能去扮演一个“信息处理助手”的角色,去辅助人做决策。
股市分析包括基本面分析与技术分析两大块,而人工智能技术在这两方面都能发挥作用:
1. 基本面分析
简言之,就是读取各类财经资讯。
面对网上海量又纷繁复杂的信息,只依靠人脑已经无法解决问题了。而深度学习在自然语言处理领域的应用,可以做到在海量的信息中做出自动摘要,提取出精华信息以帮助人类进行决策。
另外,股票价格在很大程度上是由买卖双方的力量对比决定的,是由每个股民对某支股票的情绪而决定的。而情绪识别已经是人工智能所擅长的技术了(见《人工智能可以解决的12类问题》Twelve types of Artificial Intelligence (AI) problems)。国外已经有很多这方面的研究,简单的,比如trump2cash(maxbbraun/trump2cash: A stock trading bot powered by Trump tweets,分析trump的tweet来预测股票的价格),复杂的,比如DataMinr这家start up专注从社交媒体中提取有价值的金融信号。
2. 技术分析
传统技术分析中的K线分析,什么“大阳星”、“小阴星”、“旭日东升”,“穿头破脚”,其实就是人脑的模式识别。受人脑信息处理能力的限制,这些识别出来的模式有以下缺点:
(1)只是单条K线的、只是基于一个模糊的形状,似是而非的、没有确切的数字标准的;
(2)基于有限的历史信息的。
而好的深度学习策略,可以突破人脑的限制,比如突破单一K线的限制,从更多的财经信号(其他股票、黄金、外汇等)中寻找规律;或是从一个更长时间段的历史信息中识别出规律。

总之,人工智能将提升我们处理信息的深度、广度。使用基于人工智能技术的“智能投顾”的人,将比不运用或是还在利用“人脑”进行基本面分析与技术分析的人占信息优势,从而也就更可能在股市中盈利。

本回答来自Emotibot机器学习工程师赵传霖。
13#
子楠  4级常客 | 2018-10-13 14:55:54 发帖IP地址来自
我倒是会深度学习,也考虑过用LSTM和GAN来做个预测策略。但是我现在上实盘的套利脚本用的是强化学习。


你说呢?


顺便给你看一下强化学习的跨市套利脚本收益,这个是一个实盘的仓:





这个客户是9月3号开始跑的,这个哥们9月5号因为监管,部分价格大跌,害怕,停了一天,不然现在策略产生的和持仓不动相比收益应该是2000多,持仓收益应该有15500左右。
































另外……实际上深度学习做股票也是靠谱的。目前我测试过的可以用做情绪博弈预测涨跌压力的方法来做涨跌概率预测。只不过夏普和胜率没想象中那么高罢了。
14#
zc-brant  5级知名 | 2018-10-13 14:55:55 发帖IP地址来自
可以写的

15#
venidici  4级常客 | 2018-10-13 14:55:56 发帖IP地址来自
用来优化参数更靠谱,预测的话还是基本面和资金结构。
16#
匿名用户   | 2018-10-13 14:55:57 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP