姚小強 ,侯志森
(1.空軍工程大學 防空反導學院,西安 710051; 2.西安交通大學 軟件學院, 西安 710049)(*通信作者電子郵箱icemissile@sina.com)
金融時間序列的預測一直備受關注,有效的預測手段卻十分稀少。長短期記憶(Long Short-Term Memory, LSTM)神經網絡是目前金融時間序列預測領域內比較先進的技術手段,它的記憶功能對解決蘊含時間序列信息的問題具有天然優勢[1],這種網絡技術已被廣泛運用到很多與時序相關的領域,如自然語言處理[2-3]、動作識別[4]、語音識別[5]、金融時間序列預測[6-7]等。相比傳統的BP(Back Propagation)神經網絡,LSTM神經網絡能利用選擇性記憶的高級機器學習功能,深入挖掘出金融價格時間序列中的固有規律,使預測得到更高的準確性。Fischer等[8]的研究發現LSTM網絡的表現通常優于無記憶的分類方法; Saini等[9]對傳統的前饋型神經網絡與帶有記憶功能的循環結構神經網絡進行了對比研究,通過考察它們在外匯價格預測上的表現,發現這兩種網絡都為所有的貨幣提供了良好的預測結果,而循環網絡帶來的結果比前饋型網絡更好。
在時間序列的預測研究中,多周期尺度下的特征融合是一種重要的分析方法,然而多數應用LSTM神經網絡的時間序列預測方法,往往只針對某一特定周期進行特征提取,忽視了時間序列在其他時間尺度上的信息,導致預測模型的能力得不到充分發揮; 故而,本文提出一種基于樹結構神經網絡模型用于預測未來黃金價格的變化方向與強度。樹結構模型對蘊含多尺度特征的問題有很好的適配性,應用樹結構有利于同時對復雜的多尺度特征進行提取挖掘,進而提高分類預測的準確性;遺憾的是,目前這種結構還主要停留在圖像識別領域[10]。Zangeneh等[11]以卷積神經網絡為基礎,分別為高分辨率和低分辨率的人臉圖像建立擁有兩個分支的預測模型,結果顯示,引入分支的模型能夠顯著提高識別性能,這一結論為本文的方法提供了思路與靈感。
在金融時間序列的分類預測問題上,類標簽的可信度(即分類的合理性)是預測的基礎,它的設置將直接影響輸入數據與輸出數據內部關聯性的強弱。本文將盈虧比的概念融入類標簽的劃分過程,綜合考慮到類標簽的可信度與預測結果的價值和意義,建立合理有效的數據模型,使數據內部的關聯性得以強化。即便如此,金融時間序列的前后關聯性還是在大量噪聲干擾下被削弱,一些較弱的關聯規則幾乎消散,致使關聯性樣本分布稀少,而噪聲樣本占據多數。這種非平衡的樣本分布給預測模型的訓練過程帶來巨大障礙。本文從樣本抽取模式與目標權值優化兩個角度進行研究,以降低樣本分布不均所帶來的負面影響。
利用過去一段時間內黃金價格歷史時間序列信息,實現對未來一段時間內黃金價格運行方向與強度的預測。將之具體化為:利用過去60 h內的K線數據,預測未來20 h內黃金價格的運行方向與強度。
針對以上任務,提出圖1所示的方法路線。

圖1 問題求解方法路線
本文所建立的預測模型以LSTM神經網絡為基礎,同時考慮到金融時間序列多周期共振特點,設計了融合多尺度特征的分支結構;在預測目標的量化標記方面,設計了檢索標定算法;訓練的過程中通過監控盈利指數來保存性能優越的過程模型;為提高預測模型對主要類別樣本的關注度,引入目標權值優化方法;另外還采用不同類別樣本平衡抽取的策略進行訓練,避免各類樣本不均衡可能帶來的問題。
相比傳統的預測方法,具有如下優勢:
1)相比單個周期序列作為輸入的預測模型,本文方法能更加適應金融時間序列多周期共振的特征,又比小波分解等多尺度特征提取方法更具有周期針對性,處理過程也更加簡單高效。
2)目標檢索標定方法,充分考慮了金融價格實現周期與幅度的不確定性,相比價格回歸預測以及形態聚類等目標量化標定方法更符合金融價格波動的內在規律。
3)引入閾值調整、目標權值優化、多類別樣本平衡抽取等一系列方法策略,相比一般的預測方法更加系統、完善。
4)傳統的方法通常是將損失誤差作為過擬合監控的標準,使得最終模型往往無法取得理想的預測性能;為此,本文創造性提出了盈利指數的概念以及計算公式,并將其應用到模型訓練的監控過程,為模型性能的評估提供了科學的依據,也為過程模型的優選帶來極大便利。
將黃金歷史價格時間序列表示成X,未來價格時間序列的變化結果表示成Y, 則價格的預測問題就是尋找X與Y之間的映射關系,用函數形式可以表示為:
Y=f(X,θ)
(1)
式中:f為X到Y的映射函數,也稱預測函數;θ為預測函數內部的所有參數。
X的表示 考慮到多周期共振特征可能帶來更好的預測效果,將1 h與15 min兩個周期的歷史序列數據同時作為輸入,分別記為xa、xb,兩個周期的窗口截取長度都為60,即60根K線數據,每根K線被表示成一個4維的向量[o,h,l,c], 則t時刻預測函數的輸入xt可表示成:
xt=[xa,xb]t=
(2)
式中:G為歸一化方法;R為利用歸一化方法G將原始窗口序列,轉換為預測模型可用的輸入。
歸一化方法 選擇3倍時間窗口的歷史序列作為搜索空間,得到期間的最高價格與最低價格,然后利用最大最小值的方法對當前窗口中的每個輸入變量xi進行歸一化處理。歸一化的結果按照式(3)計算:
(3)
式中:PriceMax為3倍時間窗口歷史序列中的最高價格;PriceMin為3倍時間窗口歷史序列中的最低價格。
Y的表示yt為t時刻Y的值,它是一個4維向量,各分量依次代表弱震蕩、上漲、下跌、強波動4種情況。為了與交易系統很好銜接,將弱與強的量化邊界分別對應止損價格與止盈價格。止損價格為3美元,止盈價格為7.5美元,對應盈虧比為2.5。檢索標定算法如下:
1)利用t時刻的收盤價格O,初始化上漲幅度h,與下跌幅度l。
2)遍歷未來20 h內的價格變化,i為循環變量。
3)如果t+i時刻的最高價>h,更新h=最高價[t+i]。
4)如果t+i時刻的最低價 5)若h>O+7.5且l>O-3,則類別T=漲,退出遍歷。 6)若l 7)如果完成遍歷,轉下一步;否則轉到步驟3)。 8)若h 9)弱h>O+7.5且l 2.2.1 LSTM模型簡介 LSTM結構模型因其擁有記憶功能,在解決時間序列的回歸與分類問題中具有很強優勢。 如圖2所示,LSTM模塊由多個同構單元格(Cell)構成,單元格也常被稱作節點(Node)。每個節點內部包括:遺忘門(Forget Gate)、輸入門(Input Gate)和輸出門(Output Gate),以及由它們控制的輸入到輸出的各種連接。三個門是LSTM的核心,可以看作是張量流在LSTM內部流動時的調節者。它們的具體功用如下: 遺忘門 負責對此前狀態空間中的信息進行過濾調節。 輸入門 它的主要作用是調節各節點的輸入信息進入狀態空間的比例。 輸出門 主要作用是對當前節點下狀態空間所保存的信息流入隱層的過程進行調控。 圖2 LSTM結構 經過遺忘門與輸入門的調控,狀態空間C得到更新,t時刻的值為Ct。ht作為隱層的輸出將同時與狀態信息Ct被送入下一時刻的節點。 LSTM模塊中各門控函數以及狀態傳遞過程的計算公式如下: (4) LSTM模型有很多變體,但在性能上區別不是很大,因此本文提出的樹結構LSTM神經網絡就是在傳統的LSTM模型之上建立的。 2.2.2 樹結構LSTM神經網絡模型 網絡結構 樹結構LSTM神經網絡總體結構上由兩個分支子網與一個頂層全連接子網組成。兩個分支子網同構,前端包括3個LSTM神經網絡模塊,末端引入一個全連接網絡層,兩個分支子網分別用于15 min與1 h兩個時間尺度下的特征提??;頂層全連接網絡首先通過一個ADD層將兩個分支LSTM子網的輸出拼接,然后通過兩個全連接神經網絡層匯集的特征進行綜合分類預測。模型結構如圖3所示。 參數設置 神經網絡在訓練過程中容易陷入局部最小值,簡單的做法是引入Dropout層,通過隨機抑制部分神經元的輸出,讓所有神經元實現更充分訓練;該Dropout參數的大小應與數據集的信息量負相關,與網絡規模正相關,經測試,當棄點概率設為0.2時基本可以滿足訓練需要。網絡中所有LSTM層的激活函數均采用非線性函數“tanh”,它與門函數的取值(0-1)剛好適配,同時也適用于金融時間序列的非線性特征;頂層激活函數選擇適用于多分類的“softmax”;全連接層的激活函數采用線性函數“relu”,模型前端以非線性函數來映射金融時間序列的數值特征,后端的全連接層依據這些特征進行線性整合劃分最終輸出分類向量,選擇“relu”可以保持可用性的同時,提高訓練效率;優化器采用“rmsprop”,這是一種類似隨機梯度下降的權值優化算法,在深度學習網絡的優化中被廣泛試用。 過擬合監控 神經網絡分類器如果過度訓練會出現過擬合情況,使得模型泛化能力不進反退。為了防止這種情況的發生,采取的方法是每完成一次訓練,利用模型對檢驗集進行預測,得到一個模型泛化評價指標,如果指標有提升則保存該模型到文件,保存模型時以非覆蓋的形式進行,防止更好的模型被覆蓋掉,待完成訓練后再參考擬合曲線或其他指標,對過程模型進行甄選。 平衡抽取 為保持不同類別之間的平衡性,每次迭代隨機從4類樣本中隨機抽取相等數量的樣本,此方法可以防止預測模型向分布較多的樣本傾斜。 圖3 樹結構LSTM神經網絡結構 權值調整 通過動態調整目標函數中各樣本對應的權值來實現注意力機制,目的是讓模型在訓練時將注意力集中到更關注的類別(漲、跌類)。對于預測結果為漲、跌的樣本,預測結果高于閾值0.8的權值為2,否則設為1;對于預測結果為弱、強的樣本,預測結果高于閾值0.8的權值為1,否則為0.5。在模型訓練過程中,模型會向更高權值樣本的分布特征傾斜。為了獲得在主類別樣本上更高的準確率,可以適當犧牲主類別的召回率,以及非主類別的判斷能力。 評價指標是針對預測模型的預測結果與訓練過程進行評價與監控的重要依據,模型對數據的預測結果包括4種情況: 3) 利用公共管廊管道的風險評價模型,對上海某化工園區的氫氣管廊管道進行了風險評價。結果表明: 該管廊管道失效概率等級為1級,失效后果等級為B級,風險評價結果為低風險。 1)TT:預測為真,實際為真,預測正確; 2)TF:預測為真,實際為假,預測錯誤; 3)FF:預測為假,實際為假,預測正確; 4)FT:預測為假,實際為真,預測錯誤。 準確率 用于考察模型在測試集上對主類別樣本的預測準確性,計算公式如下: (5) 召回率 用于考察模型對測試集中主類別樣本的漏判程度召回率越高,漏判程度越低。計算公式如下: (6) 盈利指數 準確率與召回率相互依存,不能顧此失彼。對與金融投資來說,準確率p對應投資的勝率,并與召回率r共同決定交易機會的多少。結合盈虧比b,可以得到一個模型總體盈虧能力的一個指數IW,它可作為模型訓練時的監控量,盈利指數IW的公式推導如下: W=盈利總額-虧損總額=NTT·b·v-NTF·v= N·v·r·(b+1-1/p)? IW=r·(b+1-1/p) (7) 式中:N為總交易機會,對于特定時間段而言,交易機會為常數,等于該段時間內所有主類別樣本數量;W為總盈虧,也稱凈盈利;v為每場交易的平均虧損額度,這里可視為常數;NTT為盈利交易次數,此時預測結果為主類別,且與實際值相符;NTF為虧損交易次數,此時預測結果為主類別,但與主類別不符。 從式(7)可以看出,召回率與準確率越高,IW的值越大。當p=1且r=1時,IW取最大值b;而當p=0且r=0時,IW取最小值,具體需要依據非主類樣本的數量比例來確定。 數據來源 數據是從MT4交易平臺中采集得到,交易品種為國際黃金現貨(黃金價格對美元進行折算),其中包含2008- 01 — 2017- 12的15 min與1 h的K線數據。 數據集劃分 訓練集來自2008- 01 — 2016- 12的數據,用于預測模型的訓練;測試集來自2017- 01 — 2017- 12的數據,用于考察預測模型的準確性與泛化性能;檢驗集從訓練集中無放回抽取5 000個樣本。樣本分布情況如圖4所示。 圖4中顯示了4類樣本(弱(價格小幅波動)、上(價格以上漲為主,下跌幅度不超過止損價格)、下(價格以下跌為主)、強(價格上下波動的幅度均超過止盈價格))的占比情況,以及波動強度信息,其中圖例中百分比的數值代表這類樣本占總體樣本數量的比例;最后的整數代表此類樣本的具體數量。圖中重疊較嚴重的區域,代表樣本分布密集。在樣本集劃分階段,主要關注樣本總體分布的平衡性。 訓練過程模型擬合情況如圖5所示。從圖5(a)、5(b)中可以看到,漲、跌兩類樣本的準確率在開始階段波動十分劇烈,多次觸及100%。然而不能將此時的模型作為最終的模型,因為召回率(為方便查看,召回率被向上平移了0.1)此時還處于底部,即便是一味追求高勝率,而不關心模型的綜合盈利能力,也需結合圖5(c)的盈利指數變化情況,在模型迭代500次之后尋找準確率高的位置選擇模型。 圖4 輸出數據分布 本文最終模型是在迭代訓練1 500次之后選定的,從這個位置開始上漲盈利指數已經開始逐漸下滑,而下跌盈利指標相對保持平穩,說明模型已經開始出現過擬合;而從圖5(c)可以看出,迭代1 530次時,綜合盈利指數取得最大值,本文將其從保存的過程模型中調出,作為最終的預測模型。 預測模型的輸出形式為[y1,y2,y3,y4],每個分量的取值范圍為[0, 1]。為了提高預測結果的準確率,將輸出閾值調整為[0.5, 1]內的一個數值。當閾值為0.77時,預測結果為上漲與下跌的樣本分布情況如圖6所示。 從圖4(b)可知,測試集的樣本分布中漲跌樣本的分布數量分別為23%與22%,而圖6中顯示此時預測結果所對應的分布數量分別為27%與31%。這一結果說明預測模型學習到了一部分規律,使得預測結果的分布高于樣本的原始分布,但27%還沒有達到28.7%的最低概率要求。 圖5 預測模型訓練過程曲線 圖6 閾值為0.77時預測結果為漲或跌的樣本分布 對圖4(a)觀察發現,類別為“弱”的樣本在上漲樣本的附近分布比較密集,而預測為上漲和下跌的樣本中“弱”樣本都占據了40%以上的分布。為此,本文將盈虧限制調整為止損2美元,止盈5美元,其他參數保持不變。調整后,得到新的樣本分布如圖7所示,上漲與下跌的分布概率分別達到38.57%與38.27%,它們同時代表了預測的勝率,此時已經高于最小成功概率(28.7%)將近10個百分點。 圖7 止損2美元時預測結果為漲或跌的樣本分布 通過繼續對閾值與止損價格進行綜合調整,應該還可以取得更好的預測準確率,如果需要建立一個綜合盈利能力更強的預測模型,可以參考本文所給出的盈利指數計算方法,對閾值和止損價格進行遍歷優化。將預測模型應用于自動化交易系統之前,還需要對模型的連續虧損次數等數據進行統計,從而得到資金最大回撤幅度等風險指標,最終確定交易系統中的開倉比例等具體參數。 為了證實模型的通用性,將這種雙通道的結構模型,在歐元兌美元的匯率指數變動的預測中做了同樣的嘗試,選擇的輸入周期仍然是15 min與1 h,預測距離等其他參數保持不變。按照文中的方法,很容易得到一個積極的預測模型(準確率高于28.7%)。 經分析,取得積極預測效果的主要因素有3個: 1)引入了樹結構模型;2)時空分割法強化了數據內部的關聯;3)利用閾值來限制預測時機,減少了一些不穩定因素。為了證實樹結構的優勢,引入文獻[7]中的建模方法,按如下步驟進行對比實驗。 第1步 選擇歸一化后的1 h的歷史收盤價格作為輸入序列,窗口長度為60; 第2步 利用離散小波分解(db4)進行降噪處理; 第3步 以降噪后的時序數據為輸入,利用自動編碼器,建立三層編碼網絡,節點數量設為50、30、20,傳遞函數為“tanh”; 第4步 以編碼結果為輸入,建立LSTM預測模型,并進行簡單訓練; 第5步 聯合編碼網絡與LSTM網絡進行整體調優訓練。 最后,在測試集上進行預測。最終取得的準確率為32.31%,經過閾值調整,性能并沒有得到明顯提高。 根據多周期共振原理,建立樹結構LSTM神經網絡預測模型,是金融時間序列預測的一種有效方法。配合本文設計的目標類別標定方法(見Y的表示方法)與過擬合監控手段(引入盈利指數),預測性能可達到輔助交易的要求。這種樹結構模型可進一步融合多個關聯性較強的數據特征,如成交量、更多周期、關聯品種、相關基本面、消息面等信息。對這些數據特征的選擇需要一定的實踐經驗作為支撐,否則不但會增加訓練成本,還達不到理想的預測效果。為提高預測的準確率,本文的方法是調整盈虧比以及限制預測的精度。實踐發現,并非所有訓練得到的模型都能夠在提高閾值精度條件下,同時提高預測的準確性,這一問題并未在文中進行著重提出,有待進一步研究。2.2 網絡模型



3 評價指標
4 實證結果與分析




5 結語