经过一个多月的努力,终于完成了一个简单的人工智能判断股票第二天的涨跌,使用了一个简单的全连接神经网络。Tensorflow的架构,简单说说算法的业务逻辑。1.数据处理。获取某只股票400个交易日内的历史记录。在400个交易日内计算各项指标,并将计算结果记录在数据库中。得到KDJ、MACD等6个常用指标将400条指标记录分别拆分为训练集和测试集,如下:随机拆分的比例约为:9:12.训练网络将这些数据放入神经网络网络进行训练,训练正确率达到90%即可。然后使用测试集进行验证。由于每只股票都有各自的特征,因此每只股票都有一个单独的拟合模型。网络结构代码如下:1.定义输入层函数:2.定义神经网络结构3.编译网络4.训练网络在使用过程中需要进行调整。5.使用测试集验证结果。这里测试集的正确率是95.34%,还是比较高的。3、结果处理由于是股票投资,所以采用分类处理的方式对结果进行处理,将神经网络的处理结果分为3类:-10%到-3%,-3%到3%,3%到10%。简单来说就是大跌,横盘震荡,大涨。三种情况分别对应三个人工智能判断的结果,指导次日的股票买卖。如图:最初的想法是实盘过程中震荡的结果一定是最多的,但是计算是对多只股票进行的,比如10-20只股票,当一只股票出现大幅上涨时,第二天及时买入,第三天立即卖出。4.业务部署训练好的模型需要对应每只股票,可能有很多只股票。因此,对模型部署的要求会比较高,否则会带来潜在的大量工作量。首先是初始任务。股票进入股票池后,获取400天内的所有历史数据进行计算、存储和处理,并用于神经网络的训练集和测试集。下班后定时任务,当天的股票数据通过定时任务加载计算。由于时间仓促,神经网络的训练过程没有与业务系统结合,需要人工训练。但是,使用工作流部署方法可以提高效率。将模型推送到git会自动更新在线模型库。5.后处理一种对刚刚写好的股票涨停板的判断,由于量化交易过程中的不确定性原理。这种指标方式还需要时间的检验。以后每周新生成的数据都会被归入机器学习的范畴。实现自动学习,自动提高正确率。
