标星★置顶公众号 爱你们♥
作者:Nayak 编译:1+1=6
0
前言
本文基于一篇题为《Algorithmic Financial Trading with Deep Convolutional Neural Networks: Time Series to Image Conversion Approach》的研究论文:
获取论文,见文末
![d78c0abc22dfe2eb9a868af826b4b788.png](https://i-blog.csdnimg.cn/blog_migrate/f1a4f2e5ab6164a07e2685123fe85262.jpeg)
我们从该论文中借用了作者的一些核心思想,同时又做了部分改进。
获取相关代码,见文末
![b8c209d82675590e344bf0d3b74ce6c5.png](https://i-blog.csdnimg.cn/blog_migrate/ee4b0ba8c5dfaca8ab0a324ee92c0d9e.png)
1
论文说了什么?
在这一节中,我们将解释论文中提出的观点:
在你的交易数据中计算15个技术指标,每天有15个不同的周期长度。然后将225(15*15)个新特征转换成15*15个图像。根据文中提供的算法,将数据标记为买入/卖出/持有。然后像处理其他图像分类问题一样训练一个卷积神经网络分类器。
图片来自:论文
我们用简单移动平均线(SMA)来解释技术指标和周期的概念:
6天滚动
现在数据集的每一行都有15个新特征。如果将这些数字重新组合成一个15x15的数组,就得到了一个图像!但是有一件事要记住。在构建这些图像时,应保持相关技术指标在空间上的密切性。你要知道,当训练人脸识别时,如果一幅画的鼻子下面有一只眼睛,你肯定不会给它打上人脸的标签。
1、打标签
作者使用了以下算法:
图片来自:论文
利用11天窗口的收盘价。如果窗口内的中间数字最大,则将最后一天(第11天)标记为“卖出”,如果中间数字最小,则将最后一天标记为“买入”,否则标记为“持有”。像前面解释的那样滚动窗口并重复。这个想法是在谷底买入,在任何一个11天窗口的顶点卖出。
2、训练
作者使用了滚动窗口进行训练。假设我们的历史数据是从2000年到2019年,用5年的数据进行训练,然后对1年的数据进行测试,那么就从数据集中提取2000 - 2004年的数据用于训练,用2005年的数据进行测试。根据这