首先想到自己手邊的feature真的太少了, 之前我也只實作SMA, KDJ, BollingerBands 這三個技術指標, 這一個禮拜就開始實作各類指標以及畫圖的功能, 目前實作好的技術指標如下:
- ATR (Average True Range)
- Bollinger Bands
- CCI (Commodity Channel Index)
- DMA (Different of Moving Average)
- DMI (Directional Moving Index)
- EMA (Exponential Moving Average)
- KDJ (Stochastic Oscillator)
- MACD (Moving Average Convergence Divergence)
- MSTD (Moving Standard Deviation)
- MVAR (Moving Variance)
- RSI (Relative Strength Index)
- SMA (Simple Moving Average)
- SMMA (Smoothed Moving Average)
- TEMA (Triple Exponential Moving Average)
- TR (True Range)
- VR (Volatility Volume Ratio)
- WR (Williams Overbought/Oversold Index)
不得不說真是他X的有夠累, 雖然有 /stockstats 的github可以參考, 可是為了驗證還是要Google以及看Yahoo財經的圖表確認自己實作有沒有錯, 真的好麻煩阿....而且這種技術指標真的太多太多了, 我目前想先實作到這, 未來有空再來繼續增加新的指標...。
秀幾張新實作好的指標圖, 幸好指標通用的GUI框架之前就做好了, 現在新增加指標也只要實作算法跟訂輸入的規格, 不用再改GUI真的是很爽XD
MACD:
EMA20 & RSI20 & WR14:
實作了那麼多技術指標, 準備資料特徵的工作算是先告一段落, 首先稍微修改一下之前的方法, 改成預測3類(上漲N%, 盤整, 下跌N%), 預測AT&T未來5天的趨勢, 股價資料期間: "2000-1-3"~"2018-6-01"。
驗證方式一樣:
1. 依時間軸切割成3份資料: D1: 2000~2006. D2: 2006~2012, D3: 2012~2018。
2. 使用D1訓練並用D2資料驗證, 在使用D2訓練並用D3資料驗證。
由於現在是預測三類, 考慮到很多分類算法只能作二類預測, 這裡使用OvR來作分類擴展。
先用之前準備好的資料特徵試試, 鄰居特徵neighbor_size = 10, 技術指標特徵使用:
[MA_W20, BollingerBands_W20, KDJ_W20]
使用的分類模型為決策樹, 預測結果:
Label1是上漲5%, Label0是盤整, Label-1則是下跌5%, 這結果很明顯的比亂猜還爛= = 畢竟資料特徵有55個都只是單純的OHLCV資料(5*(1+10)), 實際的技術指標只有6個(1+2+3), 不過跟亂猜沒兩樣真的讓我覺得頗無奈。
再來試試這一個禮拜嘔心瀝血的成果吧, 把實作的技術指標通通加進去。
預測結果:
恩....雖然還是很爛, 至少好一咪咪(?), Data imbalance還是一樣是很大的問題(畢竟大多時候都是在盤整), 不過光是數值有稍微上去就讓我很開心了, 至少這一個多禮拜不算白費:)
再來的課題就是怎麼做feature selection, 調參數以及選擇分類算法了, 之後也打算開始多看一些相關的paper, 看其他人是怎麼用ML做股價預測的...漫漫長路阿, 希望之後能做出些許成果出來!!!
-----------------------------------------------------------------------
AxisTradeCult 程式原始碼:
https://github.com/zmcx16/AxisTradeCult
https://github.com/zmcx16/AxisTradeCult
目前完成的功能如下:
- 程式自動取得關注個股的歷史資訊 (每日的開盤, 收盤, 最低, 最高, 成交量, 調整收盤價, etc...) [資料來源: Alpha Vantage]
- Stocks Overview頁面 (可新增, 移除個股至群組, 可依選擇時間顯示個股資料, 也會計算該天前3個月平均價&成交量以及一年成交價區間)
- 各種技術分析線圖組合分析
待完成項目:
- 投資組合頁面
- 提供機器學習模型預測
- 自動取得、生成個股的基底、衍生特徵
- 支援各類機器學習算法
- 提供回歸測試模型預測率以及調適最佳參數
- 提供增強式學習進行策略模擬
沒有留言:
張貼留言