透過機器學習預測股市漲跌-模型投資策略驗證(附Python程式碼)
程式碼來源:臺灣行銷研究Github
前情提要
在上篇文章中,我們以處理後的資料建立了 Logistic Regression / Random Forest / Naive Bayes 三種機器學習模型並進行調參,最終在測試集上獲得了最高 54.23% 的準確度。雖然準確度僅有 54.23%,但這並不能代表在實際股市中完全依照模型所給予的投資建議投資會獲得的最終報酬率。鑑於此,本篇文章筆者將試驗模型投資策略、隨機投資策略、長期投資策略三種投資策略以測試及比較所建立之模型的實際效益。
模型投資策略
此處我們以 2015年一月初至2016年六月底的道瓊大盤漲跌指數作為報酬率變動指標,並於每日進行當沖(註:此篇文章皆不考慮交易稅之影響,且皆以當沖為主,未採取槓桿策略。)。也就是說,我們會於每天開盤時以梭哈的方式選擇做多或做空,於收盤時將此筆交易沖掉,並將每天當沖所造成的資金增減都計入隔天的投資本金。
我們假設最初投入本金 USD$10,000 ,在模型投資此策略操作下在 2016 六月底手邊資金一共剩餘 USD$13,470 ,最終報酬率為 34.7 %。逐月累積報酬率如圖一所示。
由此可見,雖然我們所建立之機器學習模型僅有 54.9% 準確度,但實際投入市場可以發現其還是能帶給投資人一定價值。此時讀者心中可能會產生些許疑惑:假如模型準確率僅約一半,那用猜的會不會報酬率反而還比較高?為了釐清此問題,筆者接下來將會試驗隨機投資與長期投資兩種策略之效益以驗證模型是否確實能為投資者帶來價值。
隨機投資策略
承接上文之條件,此處我們隨機分配 2015 年一月初至 2016 年六月底一半的天數做多,另一半做空。最終本金從 USD$10,000 減少至 USD$9,300 ,最終報酬率為 -7%。逐月累積報酬率如圖二所示。
由此可見,隨機投資的報酬率相較遵從模型投資策略低了 41.7%。此時讀者心中可能難免產生疑問:假如我採用長期投資策略的方式,那這樣的報酬率跟模型投資策略比起來會是如何呢? 有鑑於此,以下篇幅筆者將會實際驗證長期投資策略的報酬率以再度驗證機器學習模型的參考價值性。
長期投資策略
此處投資策略為 2015 年一月初開盤時將全部本金投入市場,期間完全不進行任何操作 ,2016 年六月底收盤時再檢視實際獲得報酬。最終結果為資金剩餘 USD$10,060 ,報酬率為 0.06%。逐月累積報酬率如圖三所示。
經過上述不同投資策略驗證,模型投資策略的報酬率是最高的,如圖四所示,這也代表了我們所建立之機器學習模型在特定條件與情形下是具有一定參考價值。
研究限制
以上不同模型策略報酬率驗證結果皆是在符合下列條件下得出:
- 以DJIA指數變動作為報酬率計算基準
- 模型策略報酬率驗證日期始於西元 2015 年一月初至西元 2016 年六月底
- 不考慮交易稅(證交稅)之影響
- 以當沖為主,未採取槓桿策略
基於上文所述,本機器學習模型之回測乃是在諸多條件限制進行下且僅驗證特定時間段(共18個月),並未經過長期驗證。因此實際運用此模型時如與本文驗證結果不盡相同實屬正常現象。本系列文也非財務建議而僅供教學研究參考之用,請讀者斟酌使用。
以上就是 透過機器學習預測股市漲跌系列文 的全部囉
如果看完覺得喜歡,不妨幫忙拍個手並訂閱我們 !
我們下次見~
作者:蔡尚宏(臺灣行銷研究特邀作者)、劉睿哲(臺灣行銷研究特邀作者)、鄭晴文(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究創辦人)
更多實戰案例及情境好文推薦
矩陣分解推薦系統 - Python實戰:如何找出商品搭配的個體消費者策略?(附Python程式碼)
矩陣分解推薦系統 - Python實戰:如何找出商品搭配的個體消費者策略?(附Python程式碼) 本篇文章要繼續和大家分享如何針對個體的消
如何使用機器學習提高房仲業潛在成交率?提升機器學習準確度的方法(附Python程式碼)
如何使用機器學習提高房仲業潛在成交率?提升機器學習準確度的方法(附 Python 程式碼) 過去的二篇文章,我們探討了將機器學習的方法應用於
探尋顧客內心最真實的意圖-關鍵字搜尋分析(Keyword Search Analytics)
探尋顧客內心最真實的意圖-關鍵字搜尋分析(Keyword Search Analytics) 以市場區隔與機器學習篩選有價值的顧客?找出成功