這篇是實戰前的測試路
系列最終章,先回顧一下之前的系列
前幾篇的測試都是以預測「明日股價」為目標,而今天測試則以「我今天該執行什麼動作」為目標。資料部分,同樣使用「局部正規」的方式,並加入「交易量」資訊。預測行動有三 :
除此之外,會簡單比較一下優化器sgd
、adam
和Radam
結果,和batch_size大小的取捨
這其實是上一篇正規的延伸,昨天我做完想說...
漲跌幅,如果都是正
的, 幹嘛還分 "正多少?" 買就是對啊! ,所以當然要來動手測看看
optimizer | LOSS | predict | with_choose 50 |
---|---|---|---|
sgd | - | ||
Adam | |||
RAdam |
會發現,sgd
非常的棒,慢慢地收斂但方向是對的,唯一缺點就是太慢了! 跑了1000 epochs結果loss還沒降到比adam
的epochs 50還低。而Radam
好像要比adam
降得更慢些,但根據Radam
在網路上評價,我還是使用看看好了。
days | batch_size | LOSS | predict |
---|---|---|---|
60 | 250 | ||
60 | 50 |
考慮測試輸出的效益...我決定選小的!
我希望去預測我的行動,今天該不該買,或是該不該賣? 下方的測試是以輸入n天前的「局部正規」資料,希望預測出個個動作的機率,並採取最高分數的動作來執行。這個網路結構其實也同前幾篇一樣,只是我們改變輸出為one hot classification
而已。 資料預處理部分,今天的測試只針對「明天一天」的結果,我們並不需要去預測後天或是大後天等等。 那就來看看測試結果吧!
days | offset | LOSS | predict |
---|---|---|---|
60 | 0.02 | ||
30 | 0.02 | ||
10 | 0.02 | ||
60 | 0.01 | ||
30 | 0.01 | ||
10 | 0.01 |
先道歉,其實又有天數位移細節沒有弄好...但重新訓練真的太久了,check point也被我over write了,所以直接口頭平移(? 除了offset=0.01外其他都要往左兩天Orz 萬分抱歉Orz
今天的結果我認為滿特別的,甚至可以說是與前幾篇的結果是相反的。其中10
、30
和60
天的特性都不太一樣,30天的輸出都是「全部買就對了」,這可能跟dataset有關係,10和60可能就沒有這麼剛好了。 下方我做個簡單表格整理一下...
預測內容 | 正規方法 | 結果 |
---|---|---|
股價 | 局部正規 | 有一點參考歷史,但模仿成分多 |
股價 | 漲跌幅正規 | 完全模仿前一天結果 |
股價 | 混合正規 | 的確有達到一點預測趨勢的效果,但對於股價的「價格」預測性低 |
動作 | 局部正規 | 再一定程度上能夠預測該買或是不該買 |
如果從歷史的資料來看
但不論如何,我今天有測出一個我滿想看到的圖形
: 「可能要停漲了,賣掉好了... 然後竟然還多漲一天,那我再加碼」
都能聽到類似的獨白了Orz
綜上來說,接下來進行實測的部分可能會針對action
來做預測,以上就是實戰前的測試路
系列
下一步-未定 (???