柴昱白,陳偉,趙舒欣,毛新越
(西安交通大學電子與信息學部,710049,西安)
隨著我國證券市場的不斷迅猛發(fā)展,投資者面臨著更加動態(tài)多變的投資可行集和市場環(huán)境[1]。因此,制定什么樣的投資交易策略始終是一個研究的熱點問題。近年來,使用計算機技術進行量化投資的方式為投資者交易提供了新思路。量化交易是投資者使用金融數學模型對證券市場交易數據進行量化分析而完成交易[2],其中投資擇時依靠投資者對資產價格趨勢的有效預判,選擇適當時機買賣資產,以實現規(guī)避風險、獲取超額收益[3]。計算機快速處理數據并計算得出結果的能力正適用于此。越來越多的量化交易者通過程序將交易過程集成化,以程序化自動交易完成整個交易過程。
機器學習方法在金融量化交易中得到了廣泛的應用。Lohrmann等使用隨機森林(random forest,RF)對標普500指數構建了一種四分類漲跌預測模型,證明此模型比只分漲跌模型更有助于改善交易策略[4]。王淑燕驗證了隨機森林量化選股模型在中國股票市場上有較好的性能[5]。李斌等設計了一套基于機器學習和技術指標的量化投資算法,證明由此構建的投資組合收益率遠超大盤指數[6]。張茂軍等設計并研究了一種基于決策樹的量化交易擇時策略,對比證明機器學習模型使用其構造的區(qū)間突破分類標簽進行訓練具有更好的預測效果[7]。高妮等使用集成經驗模態(tài)分解和不敏感支持向量回歸構建低頻分量預測模型,構建了良好的指數擇時策略[8]。
除了傳統(tǒng)機器學習模型,神經網絡模型在量化交易方面也得到了廣泛研究。Nemes等將神經網絡模型應用于羅馬尼亞股票的短期趨勢預測,提出了可為投資者交易決策提供參考的預測模型[9]。Thomas等發(fā)現利用長短期記憶神經網絡模型(LSTM)預測非線性金融時序的精度顯著優(yōu)于隨機森林等模型[10]。楊青等構造深層LSTM神經網絡并對全球30個股票指數進行不同期限的預測研究,發(fā)現LSTM能夠有效控制誤差波動,泛化能力很強[11]。
現有的量化交易研究有一定的不足:一是標簽構造較為簡單,僅基于價格漲跌標記為(1:漲,2:跌),沒有考慮具體漲跌幅數值[4,7];二是交易策略較為基礎,通常僅使用簡單建倉策略,并沒有使用機器學習信號結合交易實時情況進行更細化的設計[7-8,12];三是交易驗證不充分,現有文獻通常僅使用歷史數據進行回測實證,并沒有使用實時獲取的行情數據驗證,對于其策略可在真實交易市場中獲取理想收益難具說服力。
本文旨在通過探討不同分類方式下機器學習對于股票指數漲跌的預測效果選擇多空兩方向表現最好的預測模型,在此基礎上設計與機器學習預測信號緊密結合的實際交易策略,然后使用歷史數據回測以及最接近真實交易的模擬盤實時數據進行驗證分析,為投資者形成一種實際可用的交易策略提供參考。從而將機器學習的方法真正有效運用在金融交易市場中,并為形成穩(wěn)定理性的股票交易市場提供行之有效的技術支持與智力支持。
隨機森林算法是Bagging類算法思想的一種改進算法,其采用并行計算的學習方式,各個學習分類器之間相互獨立。隨機森林通過組合多個決策樹進行分類或者回歸[13],得到廣泛使用。決策樹算法無需數據的歸一化處理,簡單易行,但是面對繁多冗雜的數據存在容易過擬合的缺陷,預測分類能力較差。隨機森林通過自舉采樣和隨機子空間分割賦予的雙重隨機性解決了決策樹泛化能力弱的缺點[14]。
LSTM是循環(huán)神經網絡(RNN)的變體[15],它通過門機制使網絡具有長期記憶的功能[16]并且緩解了RNN的梯度問題[17]。LSTM由記憶塊遞歸連接而成,每個塊的基礎結構又包括一個存儲單元和3個乘法單元。具體來說,乘法單元又根據實現的具體功能分別被稱為輸入門、輸出門以及遺忘門。輸入門決定輸入信號能否改變存儲器單元的狀態(tài),其可以短暫存儲相關信息,是LSTM不同于RNN的最大特點[15]。輸出門的功能是決定存儲單元能否改變其他存儲單元的狀態(tài)。遺忘門的功能是決定記住先前的狀態(tài)還是進行遺忘丟棄,如果上一條網絡傳遞過來的輸入數據具體值沒有達到對應閾值,則丟棄此數據。LSTM神經網絡基本結構如圖1所示。
圖1 LSTM神經網絡基本結構
2.1.1 特征選取
本文所使用的目標數據包括15 min線級別股票指數的逐筆資金流數據和價格數據,具體包括7個維度:主動賣出額、主動買入額、成交額、開盤價、收盤價、最高價和最低價。每日的交易時間為240 min,即一天共計16根15 min線數據。在最終7維度數據的基礎上,本文通過不同處理方式計算得到了總體的特征指標共44維,所用方式基于不同指標的時間周期,不同指標相互間的不同運算而變化。
若輸入特征過多會使模型復雜化[18],所以需要對計算的特征進行預處理。本文采用最大互信息系數法(MIC)[19]剔除特征相關性較大的指標,篩選后特征的數量由44維降至21維。
2.1.2 標簽定義
本文提出了一種雙閾值漲跌不平衡型標簽,其計算方式如下
(1)
使用兩個閾值的原因是:讓1(漲)與2(跌)的判定更加嚴格,從閾值來看三類別的區(qū)分度更高,能夠更便于模型進行類別特點的學習;這樣的標簽在實際交易中具有更高的容錯率:因為其嚴格的判定條件,本在閾值相同型標簽中可以標記為1(漲)或2(跌)標簽的樣本,若其收益的小值沒有超過小閾值,仍被標記為0(平),這樣就存在0(平)標簽仍可能獲利的情況,更有利于實際的交易。
2.1.3 分類方式
在傳統(tǒng)機器學習隨機森林算法的嘗試中發(fā)現,直接進行漲、跌、平(1、2、0)三分類,會將大量樣本分類為0,即平標簽,實際上損失了很多可供交易的機會,造成有效交易信號的減少,所以在三分類的基礎上本文還進行了B-B分類、B-T分類兩次分類,其流程圖分別如圖2、圖3所示。本文的機器學習模型分類方式共有3種。
圖2 B-B分類方式
圖3 B-T分類方式
(1)T方式。直接使用各個模型進行基礎的三分類訓練。
(2)B-B方式[20]。訓練集原始標簽為0(平)、1(漲)、2(跌),第一次訓練過程為:將其中1(漲)、2(跌)兩類視為一類,標記為新的1,然后與原始標簽0(平)組合成新的訓練集進行訓練。第二次訓練過程為:只取出原始數據中標簽為1(漲)、2(跌)的樣本作為訓練集進行訓練。
(3)B-T方式。訓練集原始標簽為0(平)、1(漲)、2(跌),第一次訓練過程為:將原始數據集中標簽為1(漲)、2(跌)的樣本取出進行訓練,訓練方式等同于B-B方式中的第二次訓練方式。第二次訓練過程為:將原始數據集樣本直接進行漲跌平(1、2、0)三分類。
簡單建倉策略中交易信號只用于開倉,即預測信號為買入時進行買入操作,達到止盈止損閾值時進行賣出。為最大化發(fā)揮機器學習模型預測信號在交易過程中的指導作用,將其與交易策略緊密結合,同時考慮到ETF交易中手續(xù)費較大的問題,本文在簡單建倉策略的基礎上進行了進一步改進。
2.2.1 持倉中的更新
本交易策略增添了根據正向交易信號進行持倉更新的操作,更新對象包括參考價格、止盈止損價格與此方向的持倉時間。具體執(zhí)行過程為:若此時持有倉位且交易線程獲得開倉正向預測信號,同時,此時獲取的最新收盤價已優(yōu)于上一次更新的參考價格,則更新參考價格為此時的最新收盤價,以參考價格與所定止盈止損閾值比例計算最新的止盈止損價格,更新持倉時間為0。
2.2.2 開倉閾值自適應調整
漲跌幅限制是為了抑制過度投機行為和從眾行為而采取的一種價格穩(wěn)定機制[21],此制度是指在一個交易日內證券的交易價格只能在指定的范圍內波動[22]。對于股票指數來說,單日內的漲跌幅值不會過于夸張,因此當行情在多(空)方向已有較大漲(跌)幅時,應對其同方向的開倉進行限制以避免行情反轉帶來的虧損。本文統(tǒng)計所有數據多空方向的日內相對于開盤價的漲跌幅分布統(tǒng)計結果,具體見表1,統(tǒng)計結果所依據的數據集為表2中的神經網絡訓練集數據。
表1 中證500指數單日內漲跌幅分布統(tǒng)計結果
表2 模型數據集標簽分布
表1中:NL為數據集中漲與跌方向的樣本數;Cmax為此方向絕對值最大的漲跌幅,將數據集中漲跌幅為25%~75%的數量分位數所對應的漲跌幅表示為C25%~C75%。
可以直觀得出:統(tǒng)計范圍內,中證500指數單日內漲跌幅的整體分布集中在百分之一以內,日內最大跌幅大于日內最大漲幅,分別為(漲:0.035 0,跌:-0.057 2)。據此,本文借鑒圖像處理領域中一種使用光照分量對光照不均勻圖像進行自適應矯正的算法[23],提出一種根據日內漲跌幅對開倉方向的類概率判別閾值進行自適應調整的二維伽馬函數,其公式如下式
(2)
式中:Pt為此時要求的類概率判別閾值;m為表1中所統(tǒng)計的樣本75%分割點對應的漲跌幅,此處兩方向判別閾值的絕對值均取近似值0.007 5;pc為此時刻獲取的最新收盤價相對于今日開盤價的漲跌幅。此函數為分段函數,閾值一般情況下為0.5,只有在|pc|>|m|時才應用式(2),其對閾值的自適應調整效果如圖4所示。
圖4 二維伽馬函數校正后的類概率判別閾值
圖4中類概率判別閾值初始為0.5,以日內漲跌幅正值為例,在pc>0.007 5時類概率判別閾值與pc呈正相關,其增長趨勢為先緩慢增加而后迅速上漲,代表類別判據越來越嚴格。在機器學習預測過程中,只有在預測概率大于給定判別閾值時才能預測為對應類別,而在橫坐標日內漲跌幅pc為0.02時,縱坐標類概率判別閾值Pt為0.99,即只有預測的概率大于0.99才可判為此類,已接近判別閾值的極限1。這意味著在pc>0.02后基本已不存在判為此類的可能,在交易過程中則表示為無此方向的交易信號,不進行持倉更新或開倉。據表1所用數據集統(tǒng)計,pc>0.02的樣本僅占所有樣本的1.67%,所以,經此函數調整閾值,只喪失了少于1.67%的交易機會,說明此種算法對在交易方向上已出現較大日內漲跌幅值行情時的開倉進行限制的同時,并沒有影響實際交易過程中所需要的良好召回率。
本文先通過機器學習模型的對比分析選定交易策略中多空方向分別使用的機器學習預測模型,然后,為了驗證本策略的收益能力,還設計了簡易量化交易系統(tǒng),實現了交易策略的程序化自動交易,不僅可以使用歷史數據進行回測驗證,還可以在交易日獲取實時行情數據進行模擬盤的實時驗證。量化交易系統(tǒng)總體框架如圖5所示。
圖5 量化交易系統(tǒng)總體框架
本文樣本集基于中證500指數日內15 min線級別數據。隨機森林模型數據集共7 647條數據。研究表明使用近一年的交易日即約250天交易數據進行訓練具有良好的效果[7,10,24],據此,本文選取訓練集為:2020年1月29日至2021年1月29日共4 147條數據。驗證集為:2021年1月29日至2021年3月29日共562條數據。測試集為2021年3月29日至2021年12月29日共2 938條數據。
參考文獻[10]對比實驗,本文設置神經網絡模型中深度神經網絡(DNN)為LSTM網絡的參照模型。因神經網絡模型的學習能力依賴于樣本數,而本文的15 min線級別數據每日只有16條數據,一年(250交易日)約4 000條訓練數據,數據較少,而神經網絡模型的學習性能依賴于更充分的訓練樣本,所以本文在神經網絡模型訓練預測中使用時間更久遠的歷史數據共9 565條。其中,訓練集:2019年7月3日至2021年1月29日共6 081條數據,驗證集與測試集與隨機森林模型相同。
隨機森林模型幾乎無需調整參數便具有很好的預測性能[10],因此本文選用模型默認參數進行實驗。DNN、LSTM模型則參考文獻[12,25]中的設置,設置結構如下:一個輸入層(神經元個數等于輸入特征數),兩個隱含層(神經元個數分別為32、16),隱含層間設置Dropout層(失活概率0.1)以防止過擬合,一個輸出層(神經元個數等于各分類方式中的目標分類個數)。
表3與表4是本節(jié)所列預測模型分別在驗證集與測試集數據中預測表現的評價指標。常用的機器學習評價指標包括精確率、錯誤率、召回率,考慮到實際交易中除了追求預測的準確性,還需要一定的召回率保證穩(wěn)定的交易機會,否則,盲目追求預測正確而使召回率過低會導致開倉數量急劇減少,浪費交易機會,因此本文還重點關注召回率。
表3 模型在驗證集的預測效果評價
表4 模型在測試集的預測效果評價
表3驗證集結果顯示多方向LSTM-B-T分類具有最高的精確率0.307 7,雖然其錯誤率0.283 5比RF-B-T分類0.269 2略高,但其召回率0.274 0是RF-B-T分類0.137 6的二倍左右,因此認為LSTM-B-T分類模型在驗證集多方向預測表現最佳;做空方向DNN模型預測表現不佳,出現預測精確率為0的結果。其原因是由于DNN-T分類模型將待測樣本全部預測為0,導致預測精確率為0,而DNN-B-T分類模型的第二步分類是T分類,所以其最終精確率也為0。其他做空方向模型的預測結果中:RF-B-T分類的預測精確率0.485 3,大幅領先其他預測模型且其召回率理想,因此認為RF-B-T分類在驗證集空方向預測表現最佳。
表4測試集結果顯示雖然多方向預測RF-B-T分類具有最高的精確率0.324 3,但其召回率僅有0.047 6,表現不佳,而召回率表現優(yōu)異的LSTM-B-T分類精確率0.246 7,錯誤率0.186 4,召回率0.244 0,綜合表現相比于LSTM-T精確率0.247 2,錯誤率0.216 1,召回率0.325 9,其精確率相近且錯誤率更低,因此認為LSTM-B-T分類在測試集多方向預測表現最佳;同理做空方向排除多數召回率低于0.1的模型后,RF-B-T分類在召回率0.453 0表現優(yōu)異的情況下其預測精確率0.225 6,錯誤率0.170 6,精確率高于錯誤率5個百分點,預測結果是理想的,因此認為RF-B-T分類模型在測試集空方向預測表現最佳。
綜上所述,本文通過驗證集與測試集在多空方向的評價指標進行對比歸納得出,在做多方向上LSTM-B-T模型最為理想,做空方向上RF-B-T模型的預測表現最為理想。其相應方向評價指標與原待測樣本中數據分布比例的對比結果顯示兩模型都對精確率與錯誤率有較好的提升,同時保證了穩(wěn)定的召回率,適用于實際交易策略的形成。
本文使用中證500指數ETF完成多空方向的回測與模擬盤交易驗證。需要說明的是為使用指數ETF完成空方向的交易,需要在前一交易日提前持有底倉,因此本文的交易策略收益因底倉的存在而跟隨中證500指數波動,此策略追求獲得對標指數基準收益的超額收益,是一種指數增強型策略。
本文對比實驗中的交易策略如下:①買入并持有策略,后文以M1表示,此策略的收益率等于指數此段周期內股票指數的價格增長率,是實驗的基準策略;②隨機建倉策略,即隨機給定此時刻預測信號,結合簡單建倉策略進行買入賣出的策略,以M2表示;③持倉更新策略,即使用機器學習預測模型與持倉更新策略進行交易的策略,以M3表示;④完整策略,即結合持倉更新策略與二維伽馬函數對開倉信號的類概率判別閾值進行自適應調整的策略形成的最終完整策略,以M4表示。
各交易策略在2021年1月29 日至2021 年12月29日的回測收益曲線如圖6所示。
圖6 不同策略整體回測收益曲線
圖6中M2與M3對比可得,相比于隨機判斷,機器學習模型的預測信號提供了正確的指導作用,獲取了正向收益。M3與M4對比可得,加入開倉信號的類概率判別閾值自適應調整策略實現了更小的回撤以及更大的收益。不同策略整體回測收益評價指標見表5,本文的完整策略交易指標整體最優(yōu),策略收益率為28.84%, 相比于持倉更新策略提升了約2個百分點,相對于基準策略的超額收益率為11.24%,實現了超越參考標的中證500指數的增強收益。
表5 不同策略整體回測收益評價指標
圖7為本文所提完整交易策略在驗證集與測試集時間區(qū)間內于多空兩向整體交易回測的開平倉交易點示意圖。
圖7 完整策略多空方向整體回測交易點
藍色曲線為交易標的每時刻收盤價連起來的價格走勢曲線。可以看出,在驗證集與測試集時間區(qū)間內的交易情況中多空兩方向都表現為開倉點較為密集,證明開倉次數理想,沒有損失較多交易機會。且在2021年3月10日與2021年9月22日附近的流暢行情中,藍色曲線上空方向開平倉點較少,證明持倉更新的設定在流暢行情中有效增加了持倉時間,避免頻繁開平倉而造成手續(xù)費的磨損,從而產生了相對較多的收益。
圖8為2022年3月15日至6月15日的模擬盤測試圖,點畫線從零開始呈逐漸上升趨勢,代表超額收益始終為正值,收益表現良好。具體的模擬盤測試評價指標見表6,勝率大于50%且盈虧比接近2.1,證明開倉創(chuàng)造的收益遠大于開倉導致的虧損,這3個月的超額收益為2.599%,折算年化收益為13.38%,指數增強年化收益為11.08%,夏普比率為1.476。
表6 模擬盤測試評價指標
圖8 模擬盤測試收益
本文設計了多空方向采用不同機器學習模型的日內股指ETF程序化自動交易策略并完成回測和模擬盤驗證。研究發(fā)現:本文給定的分類方式中,B-T方式具有較好的預測表現,多空方向最終確定的LSTM-B-T模型、RF-B-T模型都以此分類方式為基礎;使用歷史數據的回測對比實驗結果顯示,本文提出的結合持倉更新及二維伽馬函數的完整交易策略使交易評價指標得到整體性提升;最終,使用實時交易數據進行程序化自動交易的模擬盤測試獲取了11.08%的指數增強年化收益,證明此策略是一個對標指數可獲得良好超額收益的量化交易策略,具有重要的工程應用價值。