這個系列打算分三篇來完成。
第一篇先來解析論文中的方法以及實驗結果。
第二篇會把這篇論文應用在台股上,評估效果如何。
第三篇會把這篇論文實作成因子套用在Finlab上進行回測。
今天要介紹的論文是這篇 (Re-)Imag(in)ing Price Trends。會知道這篇論文是看到FCDO在臉書上分享了這篇論文,覺得很有趣就把這篇看完了。此論文收錄在頂尖的金融期刊Journal of Finance上,又有AQR的Bryan Kelly加持,可以說是非常值得讀的一篇論文。
這篇論文改變了預測股市趨勢的方式。與傳統的測試理論或固定模式不同,他們選擇運用機器學習,利用股價線圖作為數據來探索潛在上漲的股票。有趣的是,這些模型不同於以往研究中常見的股價趨勢信號,它們提供更精準的報酬預測,並且能夠轉化為更具獲利性的投資策略。更令人驚奇的是,這些模型似乎與時間尺度和地區都無關,無論是短期還是長期、美國還是國際市場,都呈現出卓越的表現。總體來說,這篇論文透過獨特的視角,旨在找出更為卓越的股市預測方法。
然而論文中提到的股票線圖和我們平常用的k線有些不同,他們所使用的是美國線(下圖為特斯拉的美國線圖)。
直線呈現的最高點代表最高價,而最低點則代表最低價。左側橫線表示開盤價,而右側橫線表示收盤價。
美國線雖然看起來比k線圖還簡單,但圖中的顏色、文字以及不同股票的尺度差異使得AI在訓練時難以學習和收斂。為解決此問題,本論文將美國線圖簡化如下:
將圖片轉為黑白,並降低畫質,同時將不同股票的尺度標準化。統一的線圖有助於AI更迅速學習股價走勢和成交量資訊。
另外,論文中使用到的AI模型是CNN(如果沒聽過CNN但有興趣認識的話可以參考這部影片)。是專為影像辨識而設計的模型,非常適合辨識股價線圖趨勢。
根據不同時間區間,線圖可分為5日、20日和60日,並針對不同周期設計了不同複雜度的CNN模型。(如下圖)。
週期越長的圖片複雜度越高,信息更豐富,因此使用的CNN模型也更複雜。
CNN模型預測的目標是y天後股價是上漲還是下跌,論文中僅關注漲跌,而非漲跌幅。上漲標注為1,下跌標注為0。模型需要針對給定的線圖預測1或0。問題可表示為Ix/Ry,其中x代表時間週期,y代表y天後市場漲跌(例如I5/R5表示使用五天線圖預測五天後市場上漲還是下跌)。
首先,研究人員收集了1993年至2019年的美股資料。他們以1993年至2000年的數據作為訓練集,用來訓練CNN模型;而2001年至2019年的數據則被用作測試集,以驗證模型是否成功學習了如何透過線圖來辨別股價漲跌趨勢。
隨後,研究人員根據不同週期的線圖(I5、I20、I60)和不同週期的預測值(R5、R20、R60),總共培訓了9個模型(I5/R5、I5/R20、I5/R60、I20/R5、I20/R20、I20/R60、I60/R5、I60/R20、I60/R60)
經過訓練的模型以2001年至2019年的資料進行預測和評估。CNN模型將每張圖片轉換為介於0和1之間的數值,數值越接近1表示上漲的機率越高,反之則下跌機率越高。
按照模型轉換的數值排序預測結果,並將其分為十等分。第一等分包含模型預測分數最低的股票,而第十等分包含模型預測分數最高的股票。結果如下圖所示
可觀察到I5/R5模型的表現最為優越,而隨著等分升高,報酬率也相應提高,反之,較低等分則顯示報酬率較差。這顯示模型預測的結果能夠有效預測股票的漲跌。與其他因子相比,如MOM(動能)、STR(月短期反轉)、WSTR(周短期反轉)等因子也呈現優異的表現。
下圖呈現將上述結果以圖表方式呈現,顯示大多數因子在第一等分的表現相對較低,而在第十等分的表現相對較高。值得注意的是,透過CNN產生的訊號在第十等分呈現更為顯著的報酬,同時第一等分也顯示更為顯著的負報酬。這樣的結果非常適合應用於多空對沖策略。
下圖就是透過多空對沖進行交易的報酬曲線圖,作法就是做多第十等分同時放空第一等分。
不論是I5/R5、I20/R5還是I60/R5,其表現均明顯優於大盤(SPY),且優於其他因子。這顯示CNN模型確實成功學習如何透過股票線圖來準確判斷漲跌。
為了深入了解CNN模型的學習成果,本論文將該CNN模型與傳統因子進行了比較。研究著重於近期價格趨勢(包括動能指標(MOM)、月短期反轉(STR)、周短期反轉(WSTR)以及距離52周高點的距離(52WH))、風險(包括β值(Beta)和波動性(Volat.))以及流動性(如買賣價差(Bid-Ask)、成交金額(Dollar Volume)、無交易日數(Zero Trade)、價格延遲(Price Delay)、市值規模(Size)以及Amihud流動性(Illiq.))等因子的對比,具體內容見下圖。
透過觀察此圖,我們可以發現當模型以"未來5日後的漲跌 (R5)" 作為預測目標時,其相關性與WSTR達到最高點。然而,隨著預測目標週期延長至20日 (R20) 或60日 (R60),相關性明顯下降,甚至在60日時幾乎降至零。
值得注意的是,動能 (MOM) 在長週期線圖 (I60) 中展現出顯著的相關性,隨著線圖週期的遞減而遞減,到5日線圖 (I5) 時幾乎為零。
最令人驚奇的是,CNN 居然學到了除價量之外的資訊。我們可以觀察到60日線圖 (I60) 與風險以及流動性的因子之間存在相當大的相關性。需要強調的是,這些線圖都經過歸一化處理,因此無法得知每張線圖的原始股價和原始成交量。在這樣的前提下,CNN 模型仍然能夠捕捉到非價量的訊息,例如52週最高價、波動度、交易額、市值、流動性等因子。
這是我第一次嘗試發文解析論文,有哪裡看不懂或不清楚的歡迎留言。下一篇我將把這篇論文的方法實作在台股上,覺得有幫助的歡迎幫忙點讚,也歡迎贊助~。