top of page
利用機器學習探討美金匯率及三大法人買賣超金額與股市漲跌之關聯
一、摘要:
股市每日的漲跌,時常困擾著投資人,若能理解影響股市的因素,就能預測股市的動向並進行有利之交易。本研究利用爬蟲程式抓取每日匯率收盤價、三大法人每日買賣超、每日大盤指數收盤價、台灣元大0050每日收盤價、一檔金融股和電子股,並將三大法人、每日匯率及大盤資料擴增變成比例值之後,再進行標記。所有連續性數值將透過閥值執行三種資料類別之轉換及組合(分七類、三類、兩類),之後再以傳統機器學習(KNN、XGBoost、SVM、Random forest、LightGBM)以及深度學習LSTM技術分別進行預測與比較各個模型之實驗結果,並針對匯率與三大法人進場行為對於股市的影響和交易獲利之關鍵因子加以分析探討。
二、 研究架構與執行內容
如下圖所示,本研究之架構與執行內容陳述如下:
1. 資料建立:
撰寫爬蟲程式(crawler)擷取每日三大法人買賣超、美金對台幣匯率、大盤收盤價、台灣元大0050收盤價,自2019年1月2 日至2021年11月5日。
2. 資料前置處理:
(1) 將擷取到的資料進行成長率計算。
(2) 將大盤與0050計算後的數據分為二類。
3. 機器學習訓練及測試:
(1) 將資料集使用10-fold做交叉驗證,再利用五種機器學習模型(KNN, XGBoost, SVM, Random forest, LightGBM)分別進 行預測。
(2) 將資料集使用10-fold做交叉驗證,在利用台灣元大0050的股票資料放入LSTM進行預測,得出的獲利結果。
4. 評估結果:
本研究將五種機器學習模型(KNN, XGBoost, SVM, Random Forest, LightGBM)與LSTM的預測結果進行比較,再計算出 0050運用LSTM的獲利結果。
三、資料前置處理
-
成長率計算
將資料進行初步整理,匯率和三大法人買賣超(外資、投信及自營商)計算當日與前五天內的成長率,大盤指數與0050則是計算未來一天的成長率。 -
資料類別
大盤指數為我們預測的目標,大盤指數透過分兩類進行預測,在資料中,成長率為負標示為0,成長率為正標示為1,成 長率為0屬於大盤指數不漲也不跌的情況,將其歸類到0進行預測,0050資料同上述方式分類進行預測。
四、台灣元大0050交易流程
利用三大法人及匯率資料預測台灣元大0050漲跌,而台灣元大0050資料類別為分兩類進行預測,並利用預測結果進行模擬交易。首先依照時間序,得到第一天預測的漲跌,預測為漲的情況,會以當日的收盤價格買入一張台灣元大0050,預測為跌的情況,則會賣出股票,再賣出前會判斷是否持有股票,若持有股票會以當日收盤價格賣出所有的股票,反之沒有持有股票會直接進到下一個判斷,判斷是否有下一筆資料,是則會重複上述動作,否則結束交易。
一、預測大盤結果
在五種機器學習的方式中,以分兩類的大盤指數分類方式下,Random forest和SVM預測的Accuracy是最好的。
Random forest分兩類結果表
kKNN分兩類結果表
LightGBM分兩類結果表
XGboost分兩類結果表
SVM分兩類結果表
二、預測台灣元大0050結果
透過LSTM並且利用分兩類的分類方式,整體預測的正確率為50.58%。
0050 使用LSTM分兩類結果表
討論:
研究結果發現,在利用各種不同機器學習方式進行預測後準確率最高的為Random forest與SVM,準確率皆有達到58%,雖然準確率沒有非常高但對投資者還是有一定的參考價值,而大盤受到很多不同的外部條件所影響,例如:輿論或是國際情況等,未來可以加入新的因素讓資料更完整,改善預測的結果,也可以使用其他演算法研究,讓預測及交易過程更準確,進而找出預測股市的最佳方法。
五、實驗結果與討論
此實驗結果利用匯率、三大法人買賣超及大盤指數日資料,透過不同的機器學習模型進行預測,並利用台灣元大0050日資料分兩類透過LSTM預測結果通過交易程式得到獲利結果,實驗得出結果如下:
bottom of page