前言
AI技术的快速发展,自然会让人们想到是否可以用到股票预测上面,毕竟财富自由是无数人的梦想,对于此国外也已经有很多的文献进行了报道,使用的神经网络包括但不限于循环神经网络(RNN),长短记忆神经网络(LTSM)、卷积神经网络(CNN)等。
关于神经网络的介绍已经有很多的书籍,这里推荐复旦邱锡鹏老师的《神经网络与深度学习》。
本策略的核心原理:主观交易者可以利用历史K线进行交易,比如著名的W底,M顶等。通过人对历史K线的总结可以对未来的走势进行预测。
获取数据
要想构建一份合格的量化策略第一步是获取数据,这个我们可以通过akshare进行获得。比如我们可以使用著名的沪深300指数,这里为了方便交易我们使用目前最大的ETF 沪深300ETF(159915)。
|
Python |
运行结果如下:

数据处理
获得好数据就要开始对数据进行处理。我们先试用最简单的人工神经网络(ANN),神经网络我们可以将其当做一个万能拟合函数,关于我们是要搞清楚输入的x是什么,输出的y是什么。这里就遇到第一个陷阱。有的人可能会觉得输入就是过去的open,close,high,low,volume,amount,输出就是明日的close不久行啦。这个时候你使用神经网络拟合,包括(LSTM),你会发现神经网络“偷懒”了,是的,他一般就是你当日的close加一个小的随机噪声然后就传给你了,最关键的是你训练的曲线非常完美,loss下降也是非常漂亮,但是实盘就不行了。
所以,是不能用原始数据,这个时候我们一般使用return,即涨跌幅。我们需要对所有数据都使用涨跌幅。
|
Python |
类似上面那样,这样我们的训练输入x就是OHLCV数据,输出就是明日的涨跌幅。
训练我们就使用最简单的多层感知机
|
Python |
然后预测
|
Go |
一般情况下,你很容易获得结果是下面这样的

即训练集完美训练,测试集基本就是随机预测,这个时候就说明过拟合了,使用一些调参技巧,逐渐提高测试集的准确率,这里还有一个重要点需要注意,就是一般不可以针对test数据集进行调参而是准备交叉验证集进行调参,不然实盘有可能继续过拟合。因为test数据集只能使用一次,即:你把所有数据集都优化好了,拿出来实盘(test集)。
最后对测试集进行回测与沪深300实际走势对比:

可以看到,可以明显跑赢沪深300基准。过去四年可以实现超额30%+
当然上面只是一个最原始的模型,后面还会继续进行优化。如果你想获得全部代码,请关注公众号小李同学314,后台回复AI预测股票,就可以获得完整代码.
浙公网安备 33010602011771号