(上海對外經貿大學,上海 210620)
金融市場中的神經網絡拐點預測法
胡悅
(上海對外經貿大學,上海 210620)
本文首先分析了前人學者在使用神經網絡模型對金融市場進行預測時的局限和錯誤,提出了基于拐點預測的改進方法,接著使用該方法構建神經網絡模型以上證綜指為例展開實證研究,并對模型進行了評估,證明了模型的有效性。
神經網絡;金融市場;預測
人工神經網絡憑借其強大的擬合性能,在經濟學預測領域得到了廣泛的重視。劉國宏(2005)利用深圳的具體經濟數據進行了實證預測研究,證明基于人工神經網絡的經濟預測是可行和有效的,利用神經網絡進行經濟預測對于有效指導經濟決策具有較大的參考價值。劉德紅(2012)在《基于微觀結構理論的證券市場可預測性研究》一文中,使用BP神經網絡對上證綜指和萬科A的每分鐘收益率進行了預測,取得了一定效果,表明使用神經網絡對上證綜指進行預測是可行的。上證綜指自1991年發布以來,已經成為中國股票市場的代表性指數,對上證綜指進行預測,可以較好地對其他股票指數、個股、期貨、期權等衍生品進行合理定價和交易。此外,依靠隨時可更新的模型內在傳導機理和運行結構,以盡可能避免小概率事件,人工神經網絡的種種優勢是傳統的統計學模型和金融模型難以企及的。
過去十年間,有大量的學者研究了如何使用神經網絡模型直接預測股票市場、債券市場、匯率市場及其他衍生品市場的價格或點數,幾乎所有學者的論文得出了模型有效的結論。
在如下的例子中,使用上證綜指2000年1月至2016年12月的日收盤價共4112條數據樣本構建神經網絡模型。將數據3階前置并窗口化之后,作為輸入項,將原始收盤價格直接作為輸出目標值,這是目前絕大多數該領域學者的做法。使用前7/8的樣本作為訓練集,后1/8的樣本作為驗證集。
訓練集部分樣本如下表所示:

日期1收盤價1日期2收盤價2日期3收盤價3日期-目標收盤價-目標2000-01-041406.372000-01-051409.682000-01-061463.942000-01-071516.62000-01-051409.682000-01-061463.942000-01-071516.62000-01-101545.112000-01-061463.942000-01-071516.62000-01-101545.112000-01-111479.782000-01-071516.62000-01-101545.112000-01-111479.782000-01-121438.022000-01-101545.112000-01-111479.782000-01-121438.022000-01-131424.442000-01-111479.782000-01-121438.022000-01-131424.442000-01-141408.85
接下來,使用淺層BP神經網絡構建上證綜指預測模型。模型為單隱層結構,隱層節點數為10個,激活函數為函數:

(1)
迭代次數為1000次,經多次實驗該迭代次數已足夠使該淺層神經網絡收斂。訓練結果如下圖所示。大部分前人學者得到了這一結果,并認為模型有效。

然而前人學者們忽略了一個嚴重的問題:神經網絡輸出的預測值,實際上是輸入值的平移。例如,為了預測3天后的股票價格,研究者普遍會如上文選擇將前置3階的數據輸入模型進行訓練,并直接將第4天的價格作為輸出目標值,而這樣的模型輸出的預測值將不會是真正的預測值,而只會是和輸入值(3天前的值)非常接近的值。
這是因為BP過程實際上是一個反向求導過程,算法會向著梯度——即損失函數一階導——的最小值靠近,但由于金融數據的復雜性,梯度函數中充滿了各種局部極小點,算法在降低梯度的過程中,非常容易陷入局部極小,盡管統計驗證結果較理想。當算法“認為”直接平移3天前的數據能夠使誤差達到一個很小的水平(局部極小)時,就很難再繼續優化了。因此,前人的經驗既有借鑒意義,也需要更深入的改進和優化。
從訓練結果圖中可見,神經網絡不論是對訓練集的擬合輸出,還是對驗證集的預測輸出,似乎都是有效的。然而,放大訓練結果圖后,可以看到神經網絡的擬合輸出和預測輸出在形態上均近似于目標值的滯后。


修改模型結構、修改樣本結構、修改樣本來源類別,仍將得到類似的結果。經過測試,使用DBN、SAE、RNN、LSTM等深度學習模型直接預測股票價格、點數,也會得到同樣的結果,依然會陷入局部極小。
因此作者認為,以目前現有的算法、模型,使用機器學習技術直接預測金融產品的價格是幾乎不可能的。若使用不包含輸入項的目標值訓練模型,雖然可以避免上述問題,但此時模型相當于在進行無限分類,對模型和設備的要求超出了客觀現實條件。目前的條件下,使用神經網絡進行金融預測需要另尋他法。
作者認為,可行的改進方法之一是對金融序列的拐點進行預測,以此為基礎可以構建擇時模型。
同樣使用上證綜指2000年1月至2016年12月的日收盤價共4112條數據構建神經網絡模型。使用三階前置窗口化的數據作為輸入項,使用簡單標注的底部拐點作為目標值。樣本中,目標值的0表示改日非底部拐點,100表示該日收盤價是底部拐點。訓練集部分樣本如下表所示:

日期1收盤價1日期2收盤價2日期3收盤價3日期-目標拐點-目標2000-01-041406.372000-01-051409.682000-01-061463.942000-01-0702000-01-051409.682000-01-061463.942000-01-071516.62000-01-101002000-01-061463.942000-01-071516.62000-01-101545.112000-01-111002000-01-071516.62000-01-101545.112000-01-111479.782000-01-121002000-01-101545.112000-01-111479.782000-01-121438.022000-01-1302000-01-111479.782000-01-121438.022000-01-131424.442000-01-140
拐點的標注情況如下圖所示。其中,紅色點表示階段底部拐點,綠色點表示階段頂部拐點。

使用多層BP神經網絡構建模型,模型為4隱層結構,每一層隱層的節點數目為10個,激活函數為函數。使用前95%的樣本集作為訓練集,使用后5%的樣本集作為驗證集。迭代6000次后神經網絡收斂,訓練結束。訓練結果如下圖所示,其中,藍色“+”號為目標值,綠色“*”號為訓練集的擬合輸出結果,紅色“.”號為未加入訓練過程的驗證集的預測輸出結果。從訓練結果圖中可以看到,神經網絡已經出現了過擬合現象,模型已經得到充分訓練。

對基于后5%驗證集的預測輸出值進行回測,以檢驗模型的有效性?;販y結果如下文的4張結果圖所示?;販y具體時間段為2016年3月3日至2016年12月31日,共206個交易日。用于回測的模擬賬戶共有100萬元資金,模型發出底部拐點信號后,以上證綜指點數為價格,買入100單位指數,并于從下1個交易日開始計算的第5個交易日平倉。

模型在該時間段內最終取得了3.30%的收益,年化收益率為3.90%。2016年市場無風險利率為1.50%,該時段的無風險利率為1.26%,低于模型取得的收益率。模型的夏普比率為1.6392,說明模型是有效的。但模型的CAPM收益率為12.04%,且最終收益率低于市場收益率,說明模型尚有改進空間。

年化收益率3.90%β2.4179最終收益率3.30%協方差0.0004平均收益率0.92%標準差0.0124無風險利率1.26%E(ri)0.1204市場收益率5.72%夏普比率1.6392
本文旨在提出正確使用神經網絡模型對金融市場進行預測的方法,故在模型數據和結構選取時予以簡化,并未達到最優。例如,輸入的訓練集僅為3階窗口化的上證綜指收盤價,目標值的標定也有改進空間,操作策略也過于簡單。不過這些缺陷都不影響本文模型的有效性及本文的論點。
本文分析了前人學者使用神經網絡模型對金融市場進行預測時的局限性和錯誤,并使用拐點預測法對上證綜指進行了實證研究,接著對預測結果進行了評估,驗證了該模型的有效性。
[1] 劉國宏.基于人工神經網絡的經濟預測研究[D].天津大學,2005.
[2] 劉德紅.基于微觀結構理論的證券市場可預測性研究[D].北京交通大學,2012.