製作動機
由於平時有在進行股票的投資,加上有透過勞工局所辦的課程接觸到python,因此想到能否使用程式的方式預測股票藉此提升效率。為此於達內進行系統性的python學習後,以資料分析與機器學習的部分進行專案實踐。

股票資料透過FinMind的API進行股價的抓取並保存為csv檔

• 透過股票中的技術指標(KDJ, MACD, RSI, 乖離率)作為特徵值進行預測漲跌幅
• 說明各項的技術指標的計算方式,再透過python進行處理
• KDJ值: 稱為隨機指標,為衡量股價在一段時間內的變異程度



J = 3D - 2K
MACD: 平滑移動平均線指標,透過兩條快慢線(指數移動平均)的差異來判斷股價的走勢

資料須先進行時間序列分組,利用20天的資料預測下一天

LSTM模型: 使用tensorflow中的keras模塊進行LSTM結構搭建。訓練的batch為50,週期為300次,損失函數為mse

透過上述的技術將針對22支半導體類股進行預測22個交易日(4/6~5/6)的漲跌幅狀況

再透過設定的買賣點進行預測收益與實際進行比較
• 買點:由隔天對比今日, 如果是跌的,則在隔天進行買進
• 賣點:當累積漲5%或者跌8%時,則將股票賣出

心得分享
本身就是想利用python的大數據分析的優點進行股票的預測讓自己能在股票市場中能盡量提高勝率, 才有這次的學習. 而在學完達內python的學習後, 自己獨立進行專案製作時, 發現利用深度學習來預測股票時有很多的困難產生, 例如有在資料上的前處理, 利用那些特徵作為股價的預測, 模型的參數都是要花滿多時間去嘗試錯誤和找相關文獻進行測試, 尤其是在投入深度學習模型前的資料是最困難的部分, 一旦資料處理的不恰當, 預測的結果是天差地別. 最終與老師的討論和測試也順利解決問題. 也透過這次專案的學習提升我對機器學習的興趣, 未來還會再繼續深造其相關的應用。
Comments