图像数据输入¶
为什么将市场数据编码为图像而不是更常见的时间序列数值格式是有益的呢?第一个原因是领先的CNN(卷积神经网络)架构是专门为图像分析设计的。因此,为了充分利用CNN自动生成信号的优势,将价格数据以自然被CNN摄入的形式表示为图像是有用的。第二个原因是将时间序列表示为图像可以让模型专注于数据的相关属性,而这些属性很难从时间序列方法中提取出来。这与人类用图形而不是数字列表来表示模式的基本理念是相同的。如果人类可以通过单一的可视化来浏览整个数据矩阵来更轻松地从图像中检测出模式,那么一个统计模式识别算法也可能从中受益。第三个原因是将价格和成交量数据图像化将所有资产的数据历史转换为可比的尺度。我们证明,对于股票组合中的股票而言,这种特定的缩放选择在预测方面具有很大的好处。第四,技术交易依赖于几何图形的存在,这些图形是通过人类认知视觉定义和观察的。技术交易者长期以来一直使用价格图表作为信息来源,以预测回报并做出投资决策。
—Jiang J, Kelly B, Xiu D. (Re-)Imag(in)ing Price Trends[J]. The Journal of Finance, 2023, 78(6): 3193-3249.
开始使用图像数据¶
要开始使用图像数据,我们使用了 mplfinance 库。有关安装说明,请参阅 安装。我们对 FinOL 进行了小幅修改,使其能够将原始数据转换为图像,并允许用户根据配置文件中指定的配置调整这些图像的大小。
接下来的图表展示了 FinOL 在不同窗口大小(10、30、60)下生成的股票图表示例:
10日K线图¶
30日K线图¶
60日K线图¶
再次强调,我们致力于确保使用 FinOL 的过程尽可能简便。要开始使用,用户只需按照以下方式配置自己的 config.json 文件即可:
"DATA_AUGMENTATION_CONFIG": {
// ...
"IMAGE_DATA": {
"INCLUDE_IMAGE_DATA": true,
"SIDE_LENGTH": 224
}
}
通过在 config.json 中选择模型,如 CNN、CNN-JF 或自定义图像处理模型:
"MODEL_NAME": "CNN"
用户可以轻松执行完整的 FinOL 流程。
这种方法不仅简化了将图像数据纳入数据驱动的 OLPS 的过程,还为该领域的预测建模和模式识别开辟了新的途径。通过利用 CNN 的强大功能和图像数据的直观特性,FinOL 使用户能够发现通过传统数值分析可能不明显的见解。
开发仍在进行中¶
我们想指出,FinOL 的图像处理功能仍在开发中,未来计划探索和开发的功能包括但不限于:
用于时间序列图像的数据增强技术,如裁剪、翻转、调整大小,以提高模型的泛化能力;
基于图像识别的可解释性工具,帮助用户理解模型决策背后的理由。
集成更先进的深度学习模型,以提高图像处理的准确性和效率。
开发用户友好的界面,使配置和执行过程更加直观。
参见
有关更多详细信息,请参见 图像表示模型。