这次采用机器学习的分类算法,主要用感知机、支持向量机、逻辑回归等几个算法。
基本思路就是把股票数据分成盈利和亏损两类,根据回测年化收益率来给股票数据打标签,再进行训练。
先给数据打标签。
1 | # 对数据打标签 |
再用感知机模型看看
1 | # 感知机模型分析 |
结果很差
感知机得分: 0.2403560830860534
再画散点图看看
回测下试试。
结果很差了,年化7%。
支持向量机
结果居然一模一样。
逻辑回归
回测结果完全一样。
应该是我的程序有问题。
最后再来试一下聚类算法,用KNN吧。
终于有一个不一样的了。年化收益率3%。
下面,再试试深度学习?这是我第一次写深度学习的程序。
完全照这个来: https://zhuanlan.zhihu.com/p/59403493
写了半天没调通,好像是数据类型不对。先摆着吧。
另外关于一些股票代码不足六位的,知乎上有网友说是深市的代码省略了前面的“00”和“000”。我想办法加上吧。
折腾了一晚上,改好了,股票池数量增加到2600多。
再运行之前的回测程序,年化收益率有了变化。
顺着看了一下,多元线性回归的年化收益率是31.4%,二项式回归是39.7%,随机森林回归是35.5%,感知机是-1.8%,支持向量机是-1.8%,逻辑回归是-1.8%,KNN是7%。深度学习回归模型没调出来。所以收益率最高的是二项式回归的。输出股票代码看一下。
接下来是不是就该实盘了?嘿嘿。
模拟炒股,实盘才发现,选的股票除了建设银行以外全是百元以上的股票!总共100万,大体上是每只股票10万左右,全仓买入。摆着,一个月,一年以后来看吧。
这里必须来个免责声明:本文是我自己瞎折腾的结果,不作为投资建议。照此投资,风险自担。股市有风险,入市须谨慎。
感觉我就是所谓的“调包侠”,把数据喂给各种算法鼓捣出结果来。真的要实盘像我这样是肯定不行的。接下来打算一个算法一个算法的仔细学一下。
具体代码看: https://github.com/zwdnet/MyQuant/tree/master/48
策略文件为facts.py。
我发文章的三个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。
我的个人博客地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的微信个人订阅号:赵瑜敏的口腔医学学习园地