Press "Enter" to skip to content

人工智能在股票买卖中的应用

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

经过一个多月的努力,终于完成了一个简单的人工智能来判断第二日股票的涨跌,用的是一个简单的全连接神经网络。Tensorflow的架构,简单说一下实现算法的业务逻辑。

 

 

一、数据处理。

 

取出某个股票的400个交易日内的历史记录。对400个交易日内进行各个指标的运算,将运算结果记录数据库中。获取了6个常见的指标,比如说KDJ,MACD等。

 

把400个指标记录分别拆分成训练集和测试集,如下:

随机拆分的比例大约:9:1

 

二、训练网络

 

将这些数据放入到神经网络中进行训练,训练的正确率达到90%就可以。

 

然后用测试集进行验证。

 

由于每个股票都会有单独的特点,因此各个股票都会有一个独立的拟合模型。

 

网络结构代码如下:

 

1. 定义输入层函数:

2. 定义神经网络结构

3. 编译网络

4. 对网络进行训练

这个训练指标感觉一般,产生了一定的过拟合,所以说各个股票的训练模型在使用的过程中还需要调整。

 

5. 使用测试集对结果验证

在这里测试集的正确率是95.34%, 还是比较高的。

 

三、结果处理

 

由于是股票投资,对结果的处理,采用了一个分类处理的方式,将神经网络的处理结果分成3类:-10%至-3%, -3%至3%, 3%至10%。

 

简单来说就是,大跌情况,横盘震荡情况,大涨情况。三种情况对应三个人工智能判断的结果,来指导第二天股票的买卖。如图:

初步的想法是,实盘过程中震荡结果必然是最多的,但对多只股票进行运算,比如10-20只,当某个股票出现大涨的指标后,第二天及时买入,第三天立即卖出。

 

四、业务部署

 

训练出的模型需要与各个股票对应,股票也许多只,因此在模型的部署上要求会比较高,否则会带来潜在的大量工作。首先是初次任务,当股票被纳入到股票池中后,获取其400日之内的全部历史数据计算入库和处理,同时到处用于神经网络的训练集和测试集。盘后的定时任务,通过定时任务将当日的股票数据进行加载和运算。

 

时间仓促的缘故,神经网络的训练过程没有与业务系统结合,需要手动训练。但使用工作流的部署方式,让效率有所提高。将模型推送到git会自动的将线上的模型库更新。

 

五、后期处理

 

刚刚写完的一种对股票涨停的判断,由于在量化交易过程中,会存在测不准原理。这个指标方式还是需要时间的检验,后期会将每周新产生的数据纳入到机器学习的范畴中。达到自动学习自动提高正确率。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注