得,今天就来聊聊我自个儿折腾股票预测算法那点事儿。一开始就是看着别人说能用算法预测股票涨跌,心里痒痒,想着能不能也搞一个,不说发大财,起码提高点胜率也行。
我的瞎折腾之路
第一步:先是瞎看乱撞
刚开始嘛啥也不懂,就上网到处搜。嚯,各种名词儿,什么“技术分析”、“量化交易”、“机器学习”、“深度学习”,看得我眼花缭乱。感觉好像挺高大上,又好像不太靠谱。
我看很多人提“技术分析”,说什么看K线图、均线、MACD、成交量啥的。我也跟着学点皮毛,对着K线图比比划划。感觉这玩意儿,事后诸葛亮挺准,但真要预测明天咋走,心里还是没底。有时候看着像要涨,结果第二天就给你来个大跳水。
第二步:决定自己动手搞代码
觉得光看图不行,还是得整点实在的。看网上说Python搞这个方便,库多。行,那就学呗。我以前有点编程底子,但不多。于是就开始装环境、装库,什么`pandas`处理数据、`numpy`搞计算、`matplotlib`画图,还有搞机器学习的`scikit-learn`。
- 找数据:这是头一步,也是挺烦的一步。得找到靠谱的股票历史数据,日线、分钟线,开盘价、收盘价、最高最低价、成交量这些。找好几个地方,数据格式还不一样,清洗、对齐就花不少功夫。
- 选特征:光有价格成交量还不够,得整点“特征”出来让机器学。我就琢磨着把那些技术指标,比如算个5日均线、10日均线差值,算个RSI啥的,加进去当特征。反正就是拍脑袋想,觉得可能有用的就试试。
第三步:尝试简单的机器学习模型
数据和特征准备得差不多,就开始上模型。先从简单的来,`scikit-learn`里面那一套,什么线性回归、支持向量机(SVM)、随机森林。代码网上抄抄改改,把数据喂进去训练,然后做个预测。
跑是能跑起来,结果嘛… 怎么说,感觉也就那样。有时候预测得还行,有时候偏差老大。而且感觉模型好像只是学到历史数据的某种“模式”,对未来的预测能力很有限。尤其是市场一有啥风吹草动,模型预测基本就废。
第四步:听说深度学习很牛?
看很多人吹深度学习,特别是那个叫LSTM(长短期记忆网络)的,说搞时间序列预测特别厉害。得,那我也跟风试试。这个比之前的机器学习模型复杂多,得用`TensorFlow`或者`PyTorch`这些框架。搭网络结构、调参数、训练模型,电脑风扇呜呜转,一跑就是好几个小时甚至几天。
过程是真痛苦:
- 数据要处理成它特定的格式。
- 模型结构得自己设计,或者找别人的改。
- 参数贼多,学习率、隐藏层大小、层数什么的,调起来跟炼丹一样。
- 训练很慢,还得防止“过拟合”,就是模型在训练数据上表现特但一用新数据就不行。
搞明白
折腾小半年,我的感受是:
这玩意儿技术门槛不低。 不光要会编程,还得懂点金融知识,懂点算法,数据处理能力也得强。不是随便下个代码跑跑就行的。
效果真的不神奇。 我试那么多方法,回测(就是用历史数据测试模型效果)看着可能还行,收益率曲线挺漂亮。但一到模拟盘或者小资金实盘试试,就发现不是那么回事。市场是活的,影响因素太多,光靠历史数据和几个技术指标想准确预测未来,太难。
算法顶多是个辅助。 可能在某些特定场景下,或者作为交易策略的一部分,能起点作用。但想靠一个“预测算法”就躺着赚钱,我觉得基本不现实。至少以我目前的水平是远远做不到的。
我现在对这些“股票预测算法”没那么迷信。感觉还是得老老实实研究公司基本面,或者结合市场情绪、消息面啥的综合判断。代码还是会继续写的,不过更多是用来做数据分析、策略回测的工具,而不是指望它给我报个“财富密码”。
这就算是我这段时间的实践记录,纯属个人体验,不一定对,给大家看个乐呵,也算提个醒。
还没有评论,来说两句吧...