圖像數據輸入

為什麼將市場數據編碼為圖像而不是更常見的時間序列數值格式是有益的呢?第一個原因是領先的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)下生成的股票圖表示例:

../_images/stock_plot_10.png

10日K線圖

../_images/stock_plot_30.png

30日K線圖

../_images/stock_plot_60.png

60日K線圖

再次強調,我們致力於確保使用 FinOL 的過程儘可能簡便。要開始使用,用戶只需按照以下方式配置自己的 config.json 文件即可:

config.json
"DATA_AUGMENTATION_CONFIG": {
    // ...
    "IMAGE_DATA": {
        "INCLUDE_IMAGE_DATA": true,
        "SIDE_LENGTH": 224
    }
}

通過在 config.json 中選擇模型,如 CNN、CNN-JF 或自定義圖像處理模型:

config.json
"MODEL_NAME": "CNN"

用戶可以輕鬆執行完整的 FinOL 流程。

這種方法不僅簡化了將圖像數據納入數據驅動的 OLPS 的過程,還為該領域的預測建模和模式識別開辟了新的途徑。通過利用 CNN 的強大功能和圖像數據的直觀特性,FinOL 使用戶能夠發現通過傳統數值分析可能不明顯的見解。

開發仍在進行中

我們想指出,FinOL 的圖像處理功能仍在開發中,未來計劃探索和開發的功能包括但不限於:

  • 用於時間序列圖像的數據增強技術,如裁剪、翻轉、調整大小,以提高模型的泛化能力;

  • 基於圖像識別的可解釋性工具,幫助用戶理解模型決策背後的理由。

  • 集成更先進的深度學習模型,以提高圖像處理的準確性和效率。

  • 開發用戶友好的界面,使配置和執行過程更加直觀。

也參考

有關更多詳細信息,請參見 圖像表示模型