導語:《Machine Learning for Stock Price Forecasting》是Ali El-Shayeb撰寫的機器學習系列文章 ,本文主要介紹其第二部分內容——《監督式機器學習演算法的應用》,並將其思想和程式碼應用在中國股票市場,開發出具有擇時功能的監督式機器學習演算法,最後進行策略回測。對此感興趣的小夥伴可以直接在本文文末克隆策略原始碼,前往BigQuant人工智慧量化投資平臺實現並進一步研究。
《監督式機器學習演算法的應用》
Ali El-Shayeb透過價格和成交量相關的9個特徵訓練模型,特徵列表和資料來源見下圖。
作者希望訓練出一個二分類模預測模型,來預測市場屬於牛市還是熊市狀態。在訓練集資料處理上,如果交易日t+30價格小於t交易日價格,那麼標註為0,否則標註為1。透過特徵資料和標註資料可以訓練出一個二分類模型,接著在預測集上進行預測,如果預測結果為1,表明為買入訊號,如果預測集為0,表明是賣出訊號。最後,透過預測結果回測檢驗策略收益曲線。
需要補充的一點是,作者將訓練集上80%的資料作為訓練集,20%的資料作為驗證集,在驗證集上評估策略的預測效果。評估指標為準確率,準確率計算公式為預測正確的天數與總預測天數的比值。
模型比較
Ali El-Shayeb嘗試了多個機器學習分類模型,發現模型表現各不一樣(見下圖)。透過構建更多的特徵能夠消除資料噪音,獲取更好的預測結果。此外,作者還發現預測時間越長,模型預測越準確。模型的準確率較之於隨機猜測(50%漲,50%跌)的差值,恰恰能夠體現模型的有效性。
交易策略
華爾街專業量化交易員預測第二天漲跌的準確率為55%,預測未來30天股價的準確率高達80%。Ali El-Shayeb發現,使用支援向量機分類演算法的準確性最高,模型會告訴他,如果價格下跌就賣出股票,如果價格上漲就買入股票。該策略從08年到10年每月收益為1.3%,期間策略總收益為31.2%。在該時間段,基於標準普爾S&P500買入並持有的策略收益率為-6.9%。
展望和不足
- 股票價格受很多因子影響,股票池不一樣,總能找到比較好的策略回測曲線
- 模型偏簡單,沒有考慮宏觀方面的一些特徵,比如GDP、通貨膨脹率、利率水平等
- 財報的因子也沒有考慮進去,未來可以基於自然語言處理(NLP)的演算法對財報進行分析預測
A股市場策略復現
本文將Ali El-Shayeb的量化思想應用在A股上面,因為本質上該策略屬於擇時策略,因此我們只需確定股票。這裡我們以深高速(600548.SHA)為例,如果大家想要換成其他股票,修改下證券程式碼列表這個模組的引數即可。
本文完全採用Ali El-Shayeb提到的9個因子,其中2015年到2017年初為訓練集,2017年到2018年為預測集(回測區間)。因為是二分類演算法,所以我們採取Logistic Regression演算法,如果大家想檢驗一下其他二分類演算法的效果,可以直接在模組裡將演算法更改為sklearn機器學習包相關的演算法名稱。
策略回測結果:
從上圖可以看出,該策略在在回測區間總收益率為17.36%,而如果直接買入並持有該股票的話,策略總收益率為9.3%。該策略主要是透過擇時空倉規避了下跌,可見該策略擇時有效。
需要說明的是,本文旨在復現國外資料科學家的一個量化策略,介紹如何在A股市場開發ai量化策 略,希望大家能夠快速高效開發策略。因此並不對策略收益做保證。
參考文獻
- Machine Learning for Stock Price Forecasting (1/3)
- Machine Learning for Stock Forecasting
附錄
本文由BigQuant人工智慧量化投資平臺原創推出,版權歸BigQuant所有,轉載請註明出處。