監督式機器學習演算法的應用:擇時【附原始碼】

寬邦科技發表於2019-01-23

導語:《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所有,轉載請註明出處。 

相關文章