丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習社
發(fā)送

0

LSTM Networks 應用于股票市場探究

本文作者: AI研習社 編輯:賈智龍 2017-05-26 14:58
導語:將RNN用于股市預測,對于基金管理具有很大意義。

雷鋒網(wǎng)按:本文原作者BigQuant,本文原載于知乎專欄。雷鋒網(wǎng)已獲得授權轉載。

LSTM Networks 應用于股票市場探究

摘要:BigQuant平臺上的 StockRanker 算法在選股方面有不俗的表現(xiàn),模型在 15、16 年的回測收益率也很高 (使用默認因子收益率就達到 170% 左右)。然而,StockRanker 在股災時期回撤很大 (使用默認因子回撤 55%),因此需要擇時模型,控制 StockRanker 在大盤走勢不好時的倉位。 LSTM(長短期記憶神經(jīng)網(wǎng)絡) 是一種善于處理和預測時間序列相關數(shù)據(jù)的 RNN。本文初步探究了 LSTM 在股票市場的應用,進而將 LSTM 對滬深 300 未來五日收益率的預測作為擇時器并與 StockRanker 結合使用,在對回測收益率有較好保證的前提下,較為顯著地降低了 StockRanker 的回撤。

LSTM Networks(長短期記憶神經(jīng)網(wǎng)絡)簡介

LSTM Networks 是遞歸神經(jīng)網(wǎng)絡(RNNs)的一種,該算法由 Sepp Hochreiter 和 Jurgen Schmidhuber 在 Neural Computation 上首次公布。后經(jīng)過人們的不斷改進,LSTM 的內(nèi)部結構逐漸變得完善起來(圖 1)。在處理和預測時間序列相關的數(shù)據(jù)時會比一般的 RNNs 表現(xiàn)的更好。目前,LSTM Networks 已經(jīng)被廣泛應用在機器人控制、文本識別及預測、語音識別、蛋白質(zhì)同源檢測等領域。基于 LSTM Networks 在這些方面的優(yōu)異表現(xiàn),本文旨在探究 LSTM 是否可以應用于股票時間序列的預測。

LSTM Networks 應用于股票市場探究

LSTM Networks 處理股票時間序列的流程

本文使用的 LSTM 處理股票序列的流程如圖 2。本文的整體流程均在 BigQuant 量化平臺上進行,構建 LSTM 模型使用庫主要為 Keras。

數(shù)據(jù)獲取與處理:對于時間序列,我們通常會以 [X(t-n),X(t-n+1),…,X(t-1),X(t)] 這 n 個時刻的數(shù)據(jù)作為輸入來預測 (t+1) 時刻的輸出。對于股票來說,在 t 時刻會有若干個 features,因此,為了豐富 features 以使模型更加精確,本文將 n(time series)×s(features per time series) 的二維向量作為輸入。LSTM 對于數(shù)據(jù)標準化的要求很高,因此本文所有 input 數(shù)據(jù)均經(jīng)過 z-score 標準化處理。

LSTM 模型構建:作為循環(huán)層的一種神經(jīng)網(wǎng)絡結構,只使用 LSTM 并不能構建出一個完整的模型,LSTM 還需要與其他神經(jīng)網(wǎng)絡層(如 Dense 層、卷積層等)配合使用。此外,還可以構建多層 LSTM 層來增加模型的復雜性。

回測:本文進行的回測分為兩種,一是直接將 LSTM 輸出結果作為做單信號在個股上進行回測,二是將 LSTM 的預測結果作為一種擇時信號,再配合其他選股模型(如 BigQuant 平臺的 StockRanker)進行回測。

LSTM Networks 應用于股票市場探究

LSTM 應用股票市場初探

之前我們做過 LSTM 應用于股票市場的初步探究(鏈接地址),使用方法為利用滬深 300 前 100 天的收盤價預測下一天的收盤價。從結果來看,LSTM 對未來 20 天的預測基本上是對過去 100 天收盤價變化的趨勢的總括,因此最終的預測結果以及回測結果都不是很理想。 之后嘗試增加了 features(每日 Open,High,Low,Close,Amount,Volume),效果依然不是很好。

通過對結果進行分析以及閱讀研究一些研報,得到的初步結論為:一是 input 時間跨度太長(100 天的價格走勢對未來一天的價格變化影響很?。?,而待預測數(shù)據(jù)時間跨度太短;二是收盤價(Close)是非平穩(wěn)數(shù)據(jù),LSTM 對于非平穩(wěn)數(shù)據(jù)的預測效果沒有平穩(wěn)數(shù)據(jù)好。

LSTM 對滬深 300 未來五日收益率預測

綜合以上兩點,本文所使用的輸入和輸出為利用過去 30 天的數(shù)據(jù)預測將來五天的收益。

測試對象:滬深 300

數(shù)據(jù)選擇和處理:

  • input 的時間跨度為 30 天,每天的 features 為 ['close','open','high','low','amount','volume'] 共 6 個,因此每個 input 為 30×6 的二維向量。

  • output 為未來 5 日收益 future_return_5(future_return_5>0.2, 取 0.2;future_return_5<-0.2, 取 - 0.2),為使訓練效果更加明顯,output=future_return_5×10; features 均經(jīng)過標準化處理 (在每個樣本內(nèi)每個 feature 標準化處理一次)。

  • 訓練數(shù)據(jù):滬深 300 2005-01-01 至 2014-12-31 時間段的數(shù)據(jù);測試數(shù)據(jù):滬深 300 2015-01-01 至 2017-05-01 時間段數(shù)據(jù)。

  • 模型構建:鑒于數(shù)據(jù)較少(訓練數(shù)據(jù)約 2500 個,預測數(shù)據(jù)約 500 個),因此模型構建的相對簡單。模型共四層,為一層 LSTM 層 + 三層 Dense 層(圖 3)。

  • 回測:得到 LSTM 預測結果后,若 LSTM 預測值小于 0,則記為 - 1,若大于 0,記為 1。

每個模型做兩次回測,第一次回測(后文簡稱回測 1)為直接以 LSTM 預測值在滬深 300 上做單:若 LSTM 預測值為 1,買入并持有 5day(若之前已持倉,則更新持有天數(shù)),若 LSTM 預測值為 - 1,若為空倉期,則繼續(xù)空倉,若已持有股票,則不更新持有天數(shù);

第二次回測(后文簡稱回測 2)為以 LSTM 為擇時指標,與 StockRanker 結合在 3000 只股票做單:若 LSTM 預測值為 1,則允許 StockRanker 根據(jù)其排序分數(shù)買入股票,若 LSTM 預測值為 - 1,若為空倉期,則繼續(xù)空倉,若已持有股票,則禁止 StockRanker 買入股票,根據(jù)現(xiàn)有股票的買入時間,5 天內(nèi)清倉;

LSTM Networks 應用于股票市場探究

1)future_return_5 是否二極化處理比較

對于 future_return_5 的處理分為兩種情況,一種為直接將 future_return_5 作為 output 進行模型訓練,二是將 future_return_5 二極化(future_return_5>0, 取 1;future_return_5<=0, 取 - 1),然后將二極化后的數(shù)據(jù)作為 output 進行模型訓練。

兩種處理方法的回測情況如圖 4,圖 5。由于模型每次初始化權重不一樣,每次預測和回測結果會有一些差別,但經(jīng)過多次回測統(tǒng)計,直接將 future_return_5 作為 output 進行模型訓練是一個更好的選擇。在本文接下來的討論中,將會直接將 future_return_5 作為 output 進行模型訓練。

LSTM Networks 應用于股票市場探究

LSTM Networks 應用于股票市場探究

2) 在權重上施加正則項探究

神經(jīng)網(wǎng)絡的過擬合:在訓練神經(jīng)網(wǎng)絡過程中,“過擬合” 是一項盡量要避免的事。神經(jīng)網(wǎng)絡 “死記” 訓練數(shù)據(jù)。過擬合意味著模型在訓練數(shù)據(jù)的表現(xiàn)會很好,但對于訓練以外的預測則效果很差。原因通常為模型 “死記” 訓練數(shù)據(jù)及其噪聲,從而導致模型過于復雜。本文使用的滬深 300 的數(shù)據(jù)量不是太多,因此防止模型過擬合就尤為重要。

訓練 LSTM 模型時,在參數(shù)層面上有兩個十分重要的參數(shù)可以控制模型的過擬合:Dropout 參數(shù)和在權重上施加正則項。Dropout 是指在每次輸入時隨機丟棄一些 features,從而提高模型的魯棒性。它的出發(fā)點是通過不停去改變網(wǎng)絡的結構,使神經(jīng)網(wǎng)絡記住的不是訓練數(shù)據(jù)本身,而是能學出一些規(guī)律性的東西。正則項則是通過在計算損失函數(shù)時增加一項 L2 范數(shù),使一些權重的值趨近于 0,避免模型對每個 feature 強行適應與擬合,從而提高魯棒性,也有因子選擇的效果;(若希望在數(shù)學層面了解正則項更多知識,參考《機器學習中防止過擬合的處理方法》) 。在 1) 的模型訓練中,我們加入了 Dropout 參數(shù)來避免過擬合。接下來我們嘗試額外在權重上施加正則項來測試模型的表現(xiàn)。

回測結果如圖 6,加入正則項之后回測 1 和回測 2 的最大回撤均有下降,說明加入正則項后確實減輕了模型的過擬合。比較加入正則項前后回測 1 的持倉情況,可以看到加入正則化后空倉期更長, 做單次數(shù)減少 (19/17),可以理解為:加入正則項之后,模型會變得更加保守。

正則項的問題:經(jīng)過試驗, 對于一個 LSTM 模型來說,正則項的參數(shù)十分重要,調(diào)參也需要長時間嘗試,不合適的參數(shù)選擇會造成模型的預測值偏正分布 (大部分預測值大于 0) 或偏負分布,從而導致預測結果不準確,而較好的正則參數(shù)會使模型泛化性非常好 (圖 6 所用參數(shù)訓練出來的模型的預測值屬于輕度偏正分布)。本文之后的討論仍會基于未加權重正則項的 LSTM 模型。

LSTM Networks 應用于股票市場探究

3) 雙輸入模型探究

除了傳統(tǒng)的 Sequential Model(一輸入,一輸出) 外,本文還嘗試構建了 Functional Model(支持多輸入,多輸出)。前面提到的 features 處理方法丟失了一項重要的信息:價格的高低。相同的 input 處在 3000 點和 6000 點時的 future_return_5 可能有很大不同。因此,本文嘗試構建了 "二輸入一輸出" 的 Functional Model: 標準化后的 features 作為 input 輸入 LSTM 層, LSTM 層的輸出結果和一個指標 - label(label=np.round(close/500)) 作為 input 輸入后面的 Dense 層,最終輸出仍為 future_return_5(圖 7)。

LSTM Networks 應用于股票市場探究

回測結果如圖 8。由回測結果可以看出,加入指示標后的 LSTM 模型收益率相對下降,但是回撤更小。LSTM 預測值小于 0 的時間段覆蓋了滬深 300 上大多數(shù)大幅下跌的時間段, 雖然也錯誤地將一些震蕩或上漲趨勢劃歸為下跌趨勢。或許這是不可避免的,俗話說高風險高回報,風險低那么回報也不會非常高,高回報和低風險往往不可兼得。

LSTM Networks 應用于股票市場探究

結論與展望

本文通過探究性地應用 LSTM 對滬深 300 未來五日收益率進行預測,初步說明了 LSTM Networks 是可以用在股票市場上的。
由于 LSTM 更適用于處理個股 / 指數(shù),因此,將 LSTM 作為擇時模型與其他選股模型配合使用效果較好。利用 LSTM 模型對滬深 300 數(shù)據(jù)進行預測并將結果作為擇時信號,可以顯著改善 stockranker 選股模型在回測階段的回撤。

展望:由于個股數(shù)據(jù)量較少,LSTM 模型的可擴展程度和復雜度受到很大制約,features 的選擇也受到限制(若 input 的 features 太多,而 data 較少的話,會使一部分 features 不能發(fā)揮出應有的作用,也極易造成過擬合)。將來我們希望能在個股 / 指數(shù)的小時或分鐘數(shù)據(jù)上測試 LSTM 的性能。另外,將探究 LSTM 模型能否將屬于一個行業(yè)的所有股票 data 一起處理也是一個可選的方向。

說明:由于每次訓練 LSTM 模型權重更新情況不同以及 Dropout 的隨機性,LSTM 模型的每次訓練訓練結果都會有差異。

附:

提示:由于 LSTM 涉及參數(shù)眾多,目前我們還不能保證 LSTM 模型的穩(wěn)定性, 本文所附回測結果均為多次訓練模型后選取的較為理想的情況,目的是說明 LSTM 是可以應用于股票市場的以及將其作為擇時模型是可能的。本文所述以及提供的代碼僅供探究及討論,若要形成一個在股票市場比較實用的 LSTM 模型,還需要在 features 選擇、模型構建、模型參數(shù)選擇以及調(diào)優(yōu)等方面花費大量精力。

源代碼:

LSTM Networks 應用于股票市場探究之 Sequential Model
LSTM Networks 應用于股票市場探究之 Functional Model


【從零構建一個區(qū)塊鏈應用】課程開課啦!

ThoughtWorks 頂級專家手把手教你實現(xiàn)區(qū)塊鏈應用!

課程詳情:http://www.mooc.ai/course/78

加入AI慕課學院人工智能學習交流QQ群:624413030,與AI同行一起交流成長


雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉載。詳情見轉載須知。

LSTM Networks 應用于股票市場探究

分享:
相關文章

編輯

聚焦數(shù)據(jù)科學,連接 AI 開發(fā)者。更多精彩內(nèi)容,請訪問:yanxishe.com
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說