如何從技術上成功預測比特幣價格?

買賣虛擬貨幣

許多論證聲稱,透過深度學習網路可以準確預測加密貨幣的價格波動。本文則用實際資料打臉:別被玩弄了!這種所謂的“準確預測”存在很多坑,很多人試著建了個深度神經網路來預測比特幣的價格,結果準得不可思議。

利用LSTM預測比特幣的價格

為了便於說明,首先介紹一個利用多維LSTM(長短期記憶)神經網路來預測比特幣價格,並生成上面的預測結果的例子。LSTM是一種特殊的RNN(遞迴神經網路),十分適合帶有時間序列的問題。因此,在預測加密貨幣價格和股市方面LSTM十分流行。

接下來,我將資料分割成了訓練集和測試集。使用最後的10%資料作為測試,這樣分割線位於2017/9/14。所有在該日期之前的資料被用於訓練,該日期之後的資料用於測試訓練好的模型。下面,我畫出了DataFrame的close列,這就是我們要預測的每日收盤價格。

為了訓練LSTM,我們將資料按照7天的時間段分割(時間長度可以人選,我只是簡單地以一週為時間段),每個時間段內以零為基礎(zero base)將資料正規化(normalize),即每個時間段內的第一條資料為0,其他值表示與第一條資料之間的相對變化。因此,這裡預測的是價格變動,而不是絕對的價格。

這裡採用了一個簡單的神經網路,包含一個由20個神經元組成的LSTM層,dropout率為0.25,還有一個密集層(Dense),啟用函式為簡單的線性函式。此外,損失函式用的是MAE(Mean Absolute Error,平均絕對誤差),最佳化器用的是Adam。

可能你已經猜到了,這個模型最根本的問題在於,對於給定某天的預測,它幾乎與前一天的實際結果相同。預測曲線看起來只不過是把實際曲線平移了一天而已。實際上,如果把預測曲線平移一天,這個結論就更明顯了。該結果與我在許多使用LSTM做單點預測的例子中看到的一樣。

為了更明確地說明這一點,我們來計算下模型預測的返回結果和實際的返回結果:觀察實際和預測的返回結果,一個是原始形式,一個是平移了一天的形式,可以得到相同的結論。

從上面的圖形中可見,實際和預測的返回結果實際上沒有相關性。但將預測返回結果偏移一天之後,就能觀察到極強的相關性,說明預測結果在重複實際的比特幣資料。

本文的目的是討論我這幾個月看到的許多關於利用深度神經網路預測加密貨幣和股市價格的例子。這些文章用的方法與這裡類似:利用歷史價格資料實現一個LSTM,並預測未來的走勢。而本文演示了為何這些模型無法在實際交易中使用。

沒錯,網路在學習方面很有效。但學習到的策略卻是預測一個儘量接近於前一天的數值,因為這樣能獲得最小的平均絕對誤差。但是,無論這種預測在損失函式上的結果多麼精確,在實際中,僅基於歷史價格資料的單點預測模型的結果依然很難準確,在實際交易中幾乎沒有任何用處。

當然,可能存在更復雜的方式,在價格預測方面實現更有用的LSTM。可以從使用更多的資料,同時最佳化網路結構和超引數開始。但是我認為,更可能的是採用歷史價格資料之外的資料和特徵。畢竟,投資的世界中已有共識——“過去的業績不代表未來的產出”。同樣的結論對於加密貨幣應該也成立。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;