0人浏览 | 2019-01-25 17:09 |
导读:北京时间 1 月 25 日凌晨 2:00 ,Deep Mind公布了其录制的 AI 在《星际争霸 2》中与2位职业选手的比赛过程,最终结果是人类1:10输给AI!自AI在围棋界横扫人类后,首次在游戏界大展身手。本篇文章以AI为中心,运用9种常见的机器学习算法,预测A股上证50指数明日涨跌,让我们看看AI是否靠谱? 各种机器学习算法预测股市指数涨跌的表现如何?
1.哪些数据可能会影响指数明日涨跌?
在AI预测指数涨跌的这事儿上,我们首先来想个问题:哪些数据会影响指数明日涨跌?
- 大晴天?紫外线强度?PM2.5?
- 不不不,“种瓜得瓜,种豆得豆”,咱们考虑点靠谱的
- 指数的高、开、低、收、成交量、成交额?
- 开始靠谱起来~
“哪些数据会影响指数明日涨跌”的这个问题非常重要!留给大家想象空间
那么本文主要收集了三项数据:
1.指数成份股内净上涨股票数占比:(当日上涨数-当日下跌数)/当日指数成分股总数
2.指数成份股平均涨跌幅:当日所有指数成份股的涨跌幅均值
3.指数成份股平均资金净流入率:当日所有指数成份股的资金净流入率均值
2.单日数据获取
以上证50指数,2019年1月23日为例,我们获取上述三项数据
moneyrate% | netuprate% | meanofupdown% | |
20190123 | -4.998 | -0.02 | -0.088 |
数据表 - 2019年1月23日上证50指数
该项数据打上标签,now up代表当日涨跌幅,now label代表当日标签,1为上涨,-1为下跌,next up代表下一个交易日涨跌幅,label代表下一个交易日标签,1为上涨,-1为下跌。
nowup | nowlabel | nextup | label | |
20190123 | -0.1742 | -1 | 0.6054 | 1 |
标签表 - 2019年1月23日上证50指数
代码展示(文末获取完整代码)
3.多维数据获取及展示
根据单日获取方式,我们获取上证50指数,从2014年1月1日至2019年1月23日的所有数据,并以标签分为2类,即:次日上涨(红点)和次日下跌(绿点),以2D、3D图的形式展示,以便进行数据观察:
ps:注意使用当日标签会产生未来函数,因此要用次日标签
指数涨跌分类下的数据空间分布-3D展示图
从指数成份股平均资金净流入率分析,数值大于20%时,次日标签基本为-1,即绿色下跌,在数值小于-20%时,次日标签基本为1,即红色上涨,分析:单日指数成份股平均资金净流入率较高时,往往导致次日指数下跌,反之,导致次日指数上涨。
指数涨跌分类下的资金净流入数据-平面图
指数涨跌分类下的净上涨数占比数据-平面图
指数涨跌分类下的平均涨幅数据-平面图
4.机器学习算法训练并测试,以KNN为例
获取整个时间序列的数据后,我将数据分割成两段,前一段用于模型训练,后一段用于模型测试,后一段数据长度为近250个交易日,以KNN为例,我们进行模型训练和测试,其其中KNN模型的n_neighbors参数设置为30。
模型训练和测试时的成功率分别:56%与55%
代码展示(文末获取完整代码)
虽然我们的训练出来的模型在测试时,成功率不高,但是在指数择时上,是否能躲避大跌的交易日是影响择时效果的重要因素,因此我们将KNN模型写成模拟策略:当KNN预测明日上涨,则尾盘集合竞价买入,预测明日下跌,则尾盘集合竞价卖出,绘制KNN预测收益走势图:
从结果分析:KNN策略全年净值达到1.1344,收益率达到13.44%,同期上证50指数净值下滑到0.7941,KNN不仅获取超额收益,而且还在熊市行情取得正收益~
KNN收益走势图(日频)-预测上证50指数
KNN模型在预测时,不仅会返回明日涨跌标签,而且返回涨跌概率,我们以上涨概率作为买入仓位,即明日上涨概率为66%,则买入66%的仓位,如果判断下跌,则卖出,以此我们来绘制仓位版的KNN预测收益走势图:
从结果分析:仓位版对风险有更好的把控,在2018年上半年,仓位版亏损较少,但是在下半年,仓位版的获利能力明显减弱。
KNN收益走势图(仓位版)-预测上证50指数
代码展示(文末获取完整代码)
5.武林大会至之机器学习算法PK
最后,激动人心的时候到了,我们把常见的机器学习算法都拿来预测指数涨跌,其采用上文的数据和时间戳,分别对tree、KNN、SVM、XGBClass等九大算法进行训练和测试,并将收益走势图绘制与同一画板上,大会比赛过程资料:
九大算法“肉搏”-收益走势图
ps:“肉搏”:算法均为默认参数
收益率 | 段位 | |
SVM | 17.1% | 最强王者 |
KNN | 13.4% | 至尊黑曜 |
RandomForest | 3.4% | 永恒钻石 |
tree | 0.0% | 尊贵铂金 |
KMeans | -3.4% | 荣耀黄金 |
XGBClass | -6.9% | 秩序白银 |
GBM | -7.1% | 绝强青铜 |
Logistic | -7.1% | 挂机 |
GaussianNB | -10.4% | 送头人 |
九大算法成绩公示
结束语:回归正题,从AI预测上证50指数这事儿看,我们可以初步判断:不同的AI算法,其预测的效果有明显差异,因此我们在考虑使用AI预测指数上涨下跌的时候,可以从不同的算法角度出发,筛选出更适合预测指数涨跌的算法,而不仅仅局限于用一种算法进行参数拟合。
参考文献
-基于多机器学习的股票预测方法及系统黄双喜,杨天祺-股票价格预测中机器学习的应用喻永生MindGo量化研究所精选文章
熊市中的摇钱“树”
从资金数据中挖掘市场超额收益【附策略】
资金流动强度与风格投资
-
0
-
TOP