2012-05-29 86 views
5

我正在使用ANN來預測股票價格的項目。我使用過去7年的數據訓練了系統 ,並且它可以很好地預測一天的數據。現在我想預測未來七天的股價。使用人工神經網絡的長期預測

我的想法是使用第1天,第3天的數據使用第2天和第1天的預測數據等來預測第2天的數據。但它不能正常工作。

我已經訓練了人工神經網絡使用開盤價格,一天的最大和最小价格預測收盤價格。

預測未來七天數據的想法是什麼?

+4

我認爲這需要一個水晶球 –

回答

3

Maruf,如果你有一個可靠的神經預測提前1天,請與我聯繫進一步討論! LOL

開玩笑。神經網絡和其他非線性預測指標就是預測指標。你正在處理的數據(股票價格數據)在很大程度上是隨機的。如果你不相信我的話,請嘗試使用下面的僞代碼,並在屏幕上繪製它生成一個隨機遊走:

let min = -0.5 
let max = +0.5 
let bias = 0.01 
let random = rand(min, max) 
y[i] = y[i-1] + random + bias 

調整略微偏差(-0.01至0.01)和你結束了系列這看起來很像一個趨勢股票價格。其原因在於,任何潛在的趨勢都有人做出決定並不比投幣更好。你知道平均交易者55%的時間是正確的嗎?這就是他所需要的......

現在,如果數據很大程度上是隨機的,那麼就很難預測。您正在尋找大量噪音的信號。您每天都會嘗試預測您的預測變得不準確。

我可以問一下 - 你把什麼樣的輸入放到神經網絡中來獲得一天的預測?例如,如果您使用每日股票價格加上其他衍生因素(如變化率,交易量,差異等)來獲得準確的1天預測,則可能會發現您可以通過以下方式獲得準確的1周預測:用每週庫存數據代替上述所有數據。

編輯:

其次,你在做什麼,以測試預測的準確性?爲了擴大mikera的答案,我會提出一個如下的策略。

給定一個1000天的數據窗口,取其中的800個並訓練您的ANN。現在預測他將來的某一天。比較預測方向(上漲,下跌)和預測收盤價格(%差異),以衡量該結果的準確性。現在將窗口向右滑動一天。重新訓練人工神經網絡並進行1天的預測,並記錄結果。

如果您在剩餘的200天內繼續此操作,那麼結果中有多少比例的結果得到了正確的方向(上,下)?多少比例的結果在實際預測收盤價的10%以內?如果您的ANN在每天營業結束時下達訂單並在第二天結束時完成訂單,那麼它會賺多少錢?會計滑點和交易費當然...

這會給你一個想法,系統是多麼準確和值得。

+0

感謝您的快速回復(我與本項目中的maruf)。我們使用前一天的1.日2.最低價3.最高價4.開盤價和5.過渡量。我們不明白你的「向右滑動窗戶1天」的想法。訓練800天后,我們應該用第800天的數據(5行)預測第801天。那麼需要與原始數據進行比較。然後? 「將窗口向右滑動一天」是什麼意思?對不起,我的無知。 – shantanu

+1

我的意思是:如果你在真實交易系統中使用這個ANN,你只能訪問過去的數據。在市場收盤後的每個晚上,您都會重新訓練人工神經網絡並預測明天的收盤價格。然後在市場開放時,您將進行交易,並在市場關閉時退出交易。第二天晚上,你會重複過去的數據(包括新的一天)的再培訓,併爲第二天創建一個預測,在第二天進行交易等。 您的測試應該嘗試模擬此行爲。如果您創建了上述測試,然後報告了%贏/輸行業,這有多好? –

2

你已經做得很好,如果你可以預測未來,甚至有一天有效地 - 通常的問題是:

  • 你確定你是不是過學習,例如學習如何精確地複製訓練數據的特徵?如果您還沒有嘗試過,那麼我會強烈建議在對其他80%的數據進行訓練後,對20%的數據進行測試,以確保這一點。
  • 你是否還在學習預測絕對價格或增量?如果是前者,那麼你可能剛剛從這樣的事實中得到了很好的結果:迄今爲止,第二天收盤價的最佳預測因子是今日收盤價(因爲數據具有如此多的序列相關性)。通過犯這個錯誤獲得99%以上的R平方並不罕見....

假設你沒有陷入上述陷阱之一,那麼做多天預測的方法是簡單地爲每個未來日子單獨預測變量。將第二天的預測提供給第二天等等(因爲您的輸入數據中沒有任何新信息),但是如果您喜歡,您可以嘗試它(不會造成任何傷害,可以通過提供有用的特徵檢測器等來加速學習)。

此外,您還會預期未來預測的不確定性/變化會更大(因爲現在和之後存在更多不確定的股價變動日期)。由於這個原因,預測統計數據的方差以及平均值是值得的。

+1

我爲此+1了,因爲「在對其他80%的數據進行訓練後測試您的ANN數據20%以確保這一點」。另外我還要提到它值得使用滑動窗口技術,例如使用800天的訓練數據,提前1天預測,比較預測與實際比較,然後將訓練/預測窗口向右滑動1天,沖洗並重復。從這個角度來看,您可以在極長的時間範圍內評估預測變量的準確性。我會更新我的評論其實:) –