2019/09/23
code
已經修改並上傳了今天,我有一個大膽的想法,我下載了台股5秒交易資訊的資料,想要去做「極短期股價預測」。我想應該很簡單且有趣才是...應該會很有趣才是呀!!!! 話不多說,這東西浪費了我極多時間,但效果卻是一馬平川...到底是不是哪裡做錯呢? 這跟我想的不一樣啦! 開講~
這個資料集的樣子如下
我統計了這些資料的筆數(一天內的資料量)
因為資料實在不少,我最後留下 「最近成交價, 當盤成交量, 最佳五檔(賣價), 最佳五檔(賣量), 最佳五檔(買價), 最佳五檔(買量)」,但會經過正規化處理
價格
10%
,所以我將開盤價格的正負10%
當作我的MinMaxScaler
正規化input data
,最近成交價、最佳1檔賣價、最佳1檔買價成交量
最佳買賣量
|sell-buy|/max(sell, buy)/2 + (0.5 if sell > buy else - 0.5)
以上總共有5個input data,都是正規到0-1,那麼time stamp呢? (笑
這是純粹的暴力美學,使我非常後悔... 靈感來自之前看過處理語意解讀的處理方式,一天500筆資料對吧? 那我將第一筆資料當作第一個input,第二個資料取自第一和第二筆資料以此類推...
x
個input
),總維度維持500
夠暴力吧...
我使用三層的LSTM,input shape理所當然地是shape(500, 5)
(完全沒有理所當然Orz
我希望能預測下一筆的交易價格,所以輸出是1
維
我才使用不到1/3的資料集,就訓練超級久!!!
光是input 維度是500我就覺得根本瘋掉了,但抱持著完全測試的心情,還是用下去了,直接看結果吧Orz
Loss
Pridiction
一馬平川 (笑死,上方藍紅的標籤打相反了Orz
我原本真的預計至少會亂跳一點,怎麼結果就這麼平? 其實後來想想,模型為了要將loss用到最低,很可能這是最好的方式... 明天我會測試「action」預測看看,但要先改改input data,不然這東西不能繼續啦 XDDD
你說怎麼不繼續training久一點? epochs多一點啊?
一個epochs要8分多鐘,10個epochs要80分鐘,100個要...自己算,這沒有CP值啦! (怕.jpg
model_01_LSTM_base_action_predict