天天看點

如何使用圖像識别預測趨勢反轉?

前言

近幾年,深度學習算法在計算機視覺領域有着出色表現。我們也經常好奇,在量化投資領域,我們是否能夠使用圖像識别技術預測股價。要解決這個問題,首先要回答以下兩個問題:

  • 如何将股價序列轉換為計算機圖檔?(X)
  • 如何定義預測的目标?(Y)

以上兩個問題,本質上就是如何定義訓練樣本及訓練目标的問題。這是每個機器學習任務都會遇到的問題。對于這兩個問題,很多人直覺的回答就是:如果是圖像識别的模式,是不是直接輸入股價K線圖,預測未來一段時間的漲跌就可以了。這種端到端的方式,大機率是不會有非常好的效果的。

今天分享的這篇文章,來自IEEE。本文從以下幾個方面解答了以上兩個問題:首先,通過Market Profile将股價序列轉換為灰階的圖像,然後定義預測的目标為趨勢的反轉。最後,使用CNN模型,預測未來是否會發生趨勢反轉。

Market Profile

市場輪廓名額,國内也稱為四度空間名額。與傳統的K線圖相比,更能直覺的展示目前市場的價格分布。假設,我們把一天時間分為5個時間段,以ABCDE五個字母表示。每個時間段都有高開低收的價格,我們隻使用最高價和最低價,然後把對應的時間段(字母表示)标注在該時間段對應的價格區間。如下圖Day1,A時間段最高價為3130,最低價為3100,那就在3130至3100的對應位置标上A;然後,B時間段最高價為3120,最低價為3090,那就在3120至3090的對應位置标上B;以此類推。

如何使用圖像識别預測趨勢反轉?

Market Profile到灰階圖像

上述轉換得到的Market Profile還不能直接作為CNN的輸入,必須再轉換成圖像。在上述示例中,使用了日内的行情資料(把一天分成了5個時間段)。但在實證的模型中,作者隻使用的日度的K線價格資料。作者使用了過去25天的價格資料,那麼針對這25天的價格資料,轉換為Market Profile就有多種方法。作者采用了以下幾種作為對比:

  • 把所有25天的K線資料轉換為Market Profile
  • 把25天,以5天周期分成5段,每一個5天轉換為Market Profile

然後,又可以根據不同日期用不同的顔色表示,最終可以有以下幾種定義樣本資料的方式(具體參考以下圖9和圖10):

  • EGA,基于所有25天生成Market Profile,每個日期用不同的顔色表示。
  • EGB,基于5天一個時間段生成5個Market Profile,所有日期用相同顔色表示。
  • EGC,基于5天一個時間段生成5個Market Profile,每個時間段用相同顔色表示,時間段之間顔色不一樣。
  • EGC,基于5天一個時間段生成5個Market Profile,每個時間段的第N天用一種顔色,比如所有時間段中的第1天為一個顔色。
如何使用圖像識别預測趨勢反轉?

作者使用标普500mini期貨,過去20年的資料,并采用1日視窗,按下圖所示,滾動将K線資料轉為圖像資料。

如何使用圖像識别預測趨勢反轉?

資料标注

上述個步驟,如何将K線轉換為圖像,解決了第一個問題。對于預測目标,也就是趨勢反轉,作者采用了以下定義,其中c表示收盤價,如果t-5日收盤價大于t-10日收盤價、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日賣出;
    • 如果下一日預測為2,則賣出。
  • t日,當模型預測趨勢上升反轉時(預測1),賣出,并計劃t+5日後買入:
    • 期間如果觸發止損,則買入;
    • 如果下一日還是預測1,則在t+6日後買入;
    • 如果下一日預測為0,則還是在t+5日買入;
    • 如果下一日預測為2,則買入。

如圖14所示,在所有對比中,EGC獲得了最高的平均單筆收益,2%止損的情況下,其年化收益率為50.5%,盈虧比為1.74。

如何使用圖像識别預測趨勢反轉?
如何使用圖像識别預測趨勢反轉?

總結

本文最大的創新是利用Market Profile将原本的時間序列預測問題,轉換為圖像識别的問題。這樣就可以使用CNN進行趨勢反轉的預測。關于其他細節,請參考原文:

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9693504