摘要:本文將為大家構建一個AI驅動的量化投資策略樣例,策略用LSTM演算法進行擇時,StockRanker演算法進行選股,並用視覺化的方式實現,文末附上策略原始碼,感興趣的朋友可以直接前往BigQuant人工智慧量化投資平臺進行實現。
一、LSTM演算法簡介
LSTM Networks是遞迴神經網路(RNNs)的一種,該演算法由Sepp Hochreiter和Jurgen Schmidhuber在Neural Computation上首次公佈。後經過人們的不斷改進,LSTM的內部結構逐漸變得完善起來(圖1、圖2)。在處理和預測時間序列相關的資料時會比一般的RNNs表現的更好。目前,LSTM Networks已經被廣泛應用在機器人控制、文字識別及預測、語音識別、蛋白質同源檢測等領域。
圖1LSTM層結構
圖2典型LSTM層結構
這裡ht 代表神經元的輸出,而Ct 代表神經元的狀態。系統的執行分為以下步驟:
A.計算需要被細胞丟棄的資訊:
B.計算需要新增到細胞中的資訊:
C.更新細胞狀態:
D.計算輸出資訊:
LSTM模型構建:作為迴圈層的一種神經網路結構,只使用LSTM並不能構建出一個完整的模型,LSTM還需要與其他神經網路層(如Dense層、卷積層等)配合使用。此外,還可以構建多層LSTM層來增加模型的複雜性,學習描述更高層次的時域特徵(如圖3)。
圖3LSTM的組合運用
二、LSTM在股票預測中的應用
經濟學家靠ARMA 模型預測的時間序列模型。該模型對小資料集效果很好,可容納時間序列的記憶效應,如永續性、均值迴歸、季節性等。在深入學習中,長短期記憶(Long short-term memory,LSTM)可類比於ARIMA長期短期記憶模型。LSTM 對RNN 進行了結構上的修改,來避免長期依賴問題。LSTM在股票預測中通常分為兩類應用:一是直接將LSTM輸出結果作為做單訊號在個股上進行回測,二是將LSTM的預測結果作為一種擇時訊號,再配合其他選股模型(如BigQuant平臺的StockRanker)進行回測。社群中已經在LSTM Networks應用於股票市場探究一文中提到LSTM更適用於處理個股/指數,將LSTM作為擇時模型與其他選股模型配合使用效果較好。
三、策略流程
本文策略在BigQuant平臺AI視覺化模板的基礎上建立,使用stockranker作為選股器,針對滬深300指數採用LSTM構建擇時模型作為倉位風控控制,流程圖見圖4。
關於LSTM模型中涉及的引數含義可以參考《[量化學堂-機器學習]基於LSTM的股票價格預測模型》一文中的描述。
- 開始時間:2017-07-01
- 結束時間:2018-04-30
- 選股策略:stockranker
- 優質股數量:10只
- 換倉週期:每日
- 止盈止損:使用滬深300指數LSTM的漲跌預測值進行倉位控制
LSTM的模型引數:
- 每段input預測資料的長度seq_len: 5日資料
- 輸入特徵:[‘close’,‘open’,‘high’,‘low’,‘amount’,‘volume’]
- 預測集長度:10*seq_len
- 神經網路結構: 1層LSTM層+3層Dense層
- 模型訓練:優化器adam,損失函式mse
- 模型輸出: 漲跌預測值(正數為持倉訊號,負數為空倉訊號)
圖4策略流程圖
四、回測結果
回測時間是2017年7月以來,總收益接近30%,超過滬深300基準指數近27.5%。從圖5可以看出,在2017年12月以及2018年2月中旬在大盤指數下跌期間,策略的淨值回撤明顯小於滬深300基準指數,這說明LSTM演算法的倉位管理起到了作用。策略原始碼在附錄,歡迎大家克隆研究。
圖5模型預測結果
五、參考文獻
1.《LSTM Networks應用於股票市場探究》
2.《LSTM Networks應用於股票市場之Functional Model》
3.《LSTM Networks應用於股票市場之Sequential Model》
4.《[量化學堂-機器學習]基於LSTM的股票價格預測模型》
5.《2018/03/08 中信建投證券:零基礎python 程式碼策略模型實戰:——大資料人工智慧研究之七 》
六、附錄
策略完整程式碼:《視覺化策略—LSTM大盤擇時+Stockranker選股》
本文由BigQuant人工智慧量化投資平臺原創推出,版權歸BigQuant所有,轉載請註明出處。