王哲 肖臻

【摘要】? ? 期貨市場向從業者提供了套期保值工具以規避價格風險,基于K線圖的技術分析以及基于統計分析與機器學習的量化交易,能提高期貨市場流動性,從而加速價格發現。然而,目前K線圖的分析過于依賴人主觀分析的經驗,量化分析則通過特征預測漲跌來獲得買賣點,由于特征很容易失效,因此準確率不高。本研究通過人機結合,基于無監督深度學習自編碼模型,將K線圖形狀時間序列數據降維,可視化為散點圖,使用點的顏色表示后續價格走勢,點之間的距離代表兩段K線圖形狀的相似度,因此通過散點圖可以快速檢索與當前K線圖形狀相似的歷史K線圖,并根據歷史K線圖后續走勢做出交易決策。有別于傳統方法,本方法既可以充分利用算法對數據的處理能力自動學習特征,同時又能很好的利用人視覺分析的經驗。
【關鍵詞】? ? 人機結合? ? 期貨交易? ? 時序降維? ? 可視化? ? 自編碼網絡
一、國內外研究現狀
1.1量化交易的研究
傳統分析方法側重于依靠特征(因子)預測漲跌的方法對量化交易進行研究,缺點是精準度不高、容易過擬合,同時,某特征被證明有效后,容易引起市場跟風,最終導致失效。
Jegadeesh and Titman (1993) 對橫截面動量進行了研究[1],定義了動量因子,是指價格趨勢有一種慣性,強者恒強,弱者恒弱,相應的交易策略是追漲殺跌,動量因子容易理解,可操作性強。
Fernandez-Perez A 等人(2016) 總結了期貨交易常用的11個因子[2],包括動量因子、期限結構因子、特質波動率、持倉情況因子、流動性因子、通脹因子、匯率因子等因子。
上海交通大學胡波(2018)使用隨機森林和支持向量機算法研究了黃金期貨交易[3],此論文的創新點從算法上對支持向量機進行了加權,對時間較早的數據特征降低權重,時間近的數據特征增加權重。
1.2無監督深度學習自編碼器的研究
無監督深度學習的優勢在于能自主發現特征。網絡通過多層處理,將原始的“低層”特征轉換為“高層”特征表示,可完成復雜的分類等任務。深度學習在圖像識別、聲音識別、文本翻譯等領域取得了很多成果。
自編碼器是深度學習中的一種無監督學習模型,它利用神經網絡編碼器將輸入壓縮成潛在空間表征,再用解碼器將這種表征重構為輸出,通過這種有損的壓縮算法,學習到輸入數據最重要的特征。
Madiraju N S,? Sadat S M,? Fisher D(2018)提出了一種針對時間序列數據的無監督聚類算法[4],在聚類前通過自編碼器將時間序列數據降維。
Mohammed Ali,Mark W. Jones,Xianghua Xie,Mark Williams. TimeCluster(2019)提出了一種時間序列數據降維后,通過可視化進行模式識別與異常檢測的方法 [5],數據降維綜合使用了自編碼器與PCA等方法。與金融數據分析不同,文中舉例的呼吸時間序列數據非常有規律,模式比較明顯,人眼很容易識別異常,而在金融數據分析中,K線圖波浪識別主觀性更強,模式無明顯界限。同時,相較于醫學領域對準確性的高要求,金融數據分析對準確率要求不如醫學領域嚴格,只需勝率略大即可。
二、人機結合在期貨交易中的應用總體研究
人們在使用K線圖做期貨交易分析時,假設歷史會重演,通過K線圖的形狀來判斷價格走勢,例如鉆石底、頭肩頂等。然而,目前K線圖的分析過于依賴人的經驗,因此,我們可以通過皮爾遜相關系數計算兩條K線圖曲線的形狀相似度,找到與當前走勢相符的歷史數據,返回其后續走勢的曲線,然后用人腦過濾一遍,來決定最終操作。
通過研究發現,相似度類似的曲線有很多條,后續走勢可能存在差異。通過把每一段K線圖降維到二維空間的一個點,點之間的距離越近代表這兩段K線圖的形狀越相似,越遠代表這兩段K線圖的形狀差異越大,點的顏色代表這段K線圖后續價格的走勢。如果上漲為紅色,下跌為綠色,把這些點畫成散點圖后,就可以通過人來觀察待預測的點所處位置周圍顏色分布情況來判斷交易信號。本文的創新點是人機結合,開創了K線圖之外的一個新的可視化工具來輔助期貨交易決策。
三、實現方案
通過前30天的日K線數據預測后5天的價格走勢,將期貨交易K線圖時間序列數據用滑動窗口滾動生成數據集[5],使用無監督深度學習自編碼模型[4]訓練降維模型,然后通過模型對歷史期貨交易數據降維抽取特征,和待預測時序數據降維后的特征一起生成可視化的二維散點圖。
3.1數據預處理
1.期貨市場有幾十種交易品種,綜合考慮如下因素,選取螺紋鋼作為研究標的:交易活躍,不易產生滑點;交易一手金額適中,易控制風險;價格波動率適中,即不會因為波動太大而爆倉,也不會因為波動太小沒有盈利;上市時間早,有較長歷史數據可用。
2.螺紋鋼日K線圖的數據包含開盤價、收盤價、最高價、最低價、成交量,從2009年3月27日到2021年8月4日共3006行數據,使用30+5個工作日的滑動窗口[5],按天滑動滾動生成2970份步長為35的時序樣本數據,其中前面30步長時序數據用于降維,后5個步長用于判斷后續走勢。
3. K 線圖的形狀與價格絕對值無關,由于通貨膨脹等原因,時間越接近,價格越高,降維后保留的部分價格信息會干擾決策,通過求日漲跌幅消除其影響。其次,對數據做歸一化為深度學習訓練做準備。90%的樣本數據用于深度學習訓練(70%訓練數據,20%測試數據),另外10%用于評估人機結合交易的效果。
3.2自編碼器無監督深度學習訓練
1.參考文獻[4],使用TensorFlow和Keras構建深度學習卷積自編碼模型,將30(步長)*5(特征)的時序數據降維到6維特征,使用90%樣本集中的30步長時序數據進行無監督學習訓練。
2.編碼器首先通過一維卷積捕捉序列間的短距離波動,然后經過池化將卷積結果降維,降維后的數據通過兩個雙向LSTM學習到序列前后的數據波動,最后壓縮成6維特征。
3.解碼器進行UpSample和反卷積操作,將學習到的6維特征它重構為30*5時序數據,與輸入序列對比,以MSE為損失函數,不斷的訓練這個深度自編碼網絡,就可以得到自編碼降維模型。
3.3降維和可視化
使用自編碼器訓練出來的模型,將K線數據壓縮成6維特征,通過PCA進一步降維到2維,后5天走勢跌幅超過3%的點標識為綠色圓點,漲幅超過3%的點標識為紅色圓點,需要預測的當前行情通過同樣的模型將K線數據降維到散點平面圖上的一個點,用黑色三角形表示,根據點附近的紅綠圓點聚集情況判斷是要買多,還是賣空或者不交易。
通過實驗,可以非常清楚的看到K線圖形狀相似度接近的歷史曲線后續的歷史走勢,為交易決策提供了K線圖外的一種可視化工具。
四、結束語
通過機器學習K線圖形狀關鍵特征,將K線圖形狀相似度信息與價格未來走勢可視化為散點圖,快速找到與當前K線圖形狀類似的歷史K線圖及后續價格走勢,實現計算機輔助交易決策。機器學習與人腦結合,在K線圖以外,新創建了一種可視化輔助交易決策的圖。
參? ?考? 文? 獻
[1] Narasimhan Jegadeesh and Sheridan Titman .Returns to Buying Winners and Selling Losers:Implications for Stock Market Efficiency. The Journal of Finance, March 1993
[2] Fernandez-Perez A ,? Fuertes A M ,? Miffre J . Harvesting Commodity Risk Premia.2016
[3]胡波. 基于機器學習的期貨市場趨勢研究[D].上海交通大學,2018.
[4] Madiraju N S ,? Sadat S M ,? Fisher D , et al. Deep Temporal Clustering : Fully Unsupervised Learning of Time-Domain Features[J].? 2018.
[5]Mohammed Ali,Mark W. Jones,Xianghua Xie,Mark Williams. TimeCluster: dimension reduction applied to temporal data for visual analytics[J]. The Visual Computer,2019,35(6-8):