透過機器學習預測股市漲跌-
模型投資策略驗證(附Python程式碼)
此為系列文第四篇
點此回顧 _第一篇:掌握投資關鍵消息! 從當日熱門新聞預測股票走勢(基本資料處理篇)(附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個月),並未經過長期驗證。因此實際運用此模型時如與本文驗證結果不盡相同實屬正常現象。本系列文也非財務建議而僅供教學研究參考之用,請讀者斟酌使用。
以上就是 透過機器學習預測股市漲跌系列文 的全部囉
如果看完覺得喜歡,不妨幫忙拍個手並訂閱我們 !
我們下次見~
作者:蔡尚宏(臺灣行銷研究特邀作者)、劉睿哲(臺灣行銷研究特邀作者)、鄭晴文(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究創辦人)
更多實戰案例及情境好文推薦
社群經營必備!好奇自己FB的互動性指標嗎?!用Selenium爬蟲搞定貼文按讚數、留言數、分享數(附Python程式碼)
社群經營必備!好奇自己 FB 的互動性指標嗎?! 用 Selenium 爬蟲搞定貼文按讚數、留言數、分享數 (附 Python 程式碼) 現
透過資料視覺化,找出成為Youtube發燒影片的關鍵
透過資料視覺化,找出成為Youtube發燒影片的關鍵 情境 社群行銷一直是企業吸引市場目光或是培養客戶關係的熱門管道,而較受歡迎的社群平台從
您的請求陌生人是否會答應? — 不同情境下人們是否願意捐贈披薩
您的請求陌生人是否會答應? - 不同情境下人們是否願意捐贈披薩 情境 「今天是我丈夫的生日,我想帶他出去吃晚餐但沒有足夠的錢,如果能有披薩