深度学习算法:如何利用图像识别来预测回归?
作者:陈斌、陈安平
前言
近年来,深度学习算法在计算机视觉领域表现出色。我们也常常想,在投资领域,是否可以利用图像识别技术来预测股票价格。要解决这个问题,首先要回答以下两个问题:
- 如何将油价系列转换为计算机图形? (X)
- 如何确定预言的目的? (Y)
上面两个问题是关于如何确定训练样本和训练目标。这是所有机器学习任务中都会出现的问题。对于这两个问题,很多人的答案是:如果是图形指标的模型,是不是可以直接输入k线图的价格,预测未来的涨跌呢?这种最后一搏的方法不太可能产生好的结果。
今天分享的这篇文章来自IEEE。本文从以下几个方面回答了上述两个问题:首先,利用Market Profile将股票价格序列转换为灰度图像,然后将预测目标定义为趋势的反转。最后利用CNN模型预测未来是否会出现趋势复苏。
市场概况
市场概况指标,国内又称四维区位指标。与传统的K线图相比,它可以更直观地显示当前市场的价格分布。假设我们将一天分为5个时段,用五个字母ABCDE表示。每个季节都有开盘价高低之分。我们只使用最高价和最低价,然后用该时段对应的价格值来标记相应时段(用字母表示)。如下图所示,第一天,A时段最高价为3130,最低价为3100,在3130到3100对应位置标记A;那么B期最高价是3120,最低价是3090,标记在3120到3100之间。3090对应的位置是标记B;等等。
![]()
Market Profile转灰度图像
上述转换得到的Market Profile不能直接作为CNN输入,必须转换为图像。在上面的例子中,使用了日内市场数据(一天分为5个时段)。但在实证模型中,作者使用的是日K线价格数据。作者使用了过去 25 天的价格数据,因此有很多方法可以将这 25 天的价格数据转换为市场概况。作者用了以下方法进行比较:
- 将所有 25 天的 K 线数据转换为市场概况
- 将 5 天周期中的 25 天分为 5 段,每段换算为 5 天的周期
然后,可以根据不同的日期以不同的颜色显示。最后,有几种方法可以定义样本数据(详细信息请参见下面的图9和图10):
- EGA,根据所有25天创建市场概况,每个日期以不同的颜色显示。
- EGB 基于 5 天的周期创建 5 个市场概况,所有日期都以相同的颜色显示。
- EGC 根据 5 天的时间范围创建 5 个市场概况。每个时间段用相同的颜色表示,不同时间段的颜色不同。
- EGC 根据 5 天的时间范围创建 5 个市场概况。每个周期的第 n 天使用一种颜色。例如,每个季节的第一天都有一种颜色。
![]()
作者使用标准普尔500迷你期货,过去20年的数据,并使用1天的窗口。如下图所示,旋转后的K线数据转换为图像数据。
![]()
数据标注
上面的步骤,如何将K线转换为图像,解决了第一个问题。为了预测的目的,即趋势的逆转,作者采用了如下定义,代表c日的收盘价,而t-5日的收盘价大于t-10日的收盘价,则收盘价为c日收盘价。当天的价格。 t大于t-5日收盘价且t+5日收盘价小于t日收盘价,表明上涨趋势;如果t-5日收盘价小于t-10日收盘价,则t日收盘价小于t-5日收盘价和t+5日收盘价 如果价格大于 t 日收盘价,表明下降趋势发生逆转。
模型结构
文中使用CNN模型对输入图像进行训练和预测。具体模型结构如下:
![]()
经验结果
文章首先给出了模型的结果,如下表2和表3所示。展示下。然后还给出了应用于具体交易策略的测试结果,如表4和表5所示。表4显示了2%损失的结果,表5显示了5%损失的结果。具体交易策略的逻辑如下: 在
- t日,当模型预测下跌趋势反转时(预测为0),买入,并计划在t+5日后卖出:如果期间出现亏损,出售;
- 如果明天的预测仍为0,则在t+6天后卖出;
- 如果明天的预测为1,则在t+5天卖出;
- 如果明天的预测是 1 2,则卖出。在第
- t天,当模型预测上升趋势发生变化时(预测1),卖出,并计划在第t+5天后买入:如果在
- 期间出现损失,则买入;
- 如果按照明天的预测仍为1,则在t+6天后买入;
- 如果明天的预测为0,则在t+5天买入;
- 如果明天的预测是2,就买吧。
如图14所示,在所有比较中,EGC获得了最高的平均得分。亏损2%,其年回报率为50.5%,亏损率为1.74。
![]()
![]()
总结
本文的主要创新点是利用市场信息将原来的时间序列预测问题转化为图像识别问题。 这就是如何使用 CNN 来预测趋势。更多详情请参见原文:
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9693504
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网