陳毅



摘? 要:股市作為一個(gè)國(guó)家經(jīng)濟(jì)的晴雨表,在整個(gè)國(guó)民經(jīng)濟(jì)體系中起著不可或缺的作用。合理地、有效地預(yù)測(cè)股市未來(lái)走向?qū)?guó)家、企業(yè)以及投資者來(lái)說(shuō)均有者重要意義。而B(niǎo)P神經(jīng)網(wǎng)絡(luò)在處理高非線性、多維度數(shù)據(jù)上又有著巨大的優(yōu)勢(shì),該文旨在使用BP神經(jīng)網(wǎng)絡(luò)及其優(yōu)化算法對(duì)股價(jià)未來(lái)走勢(shì)做出一個(gè)合理的預(yù)測(cè),為股票市場(chǎng)長(zhǎng)期穩(wěn)健發(fā)展添磚加瓦。
關(guān)鍵詞:BP算法? 股價(jià)預(yù)測(cè)? 趨勢(shì)預(yù)測(cè)? Adam
中圖分類號(hào):TP183 ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2020)05(c)-0198-03
近年來(lái),隨著我國(guó)經(jīng)濟(jì)的飛速發(fā)展,股市投資者的數(shù)量也以驚人的速度迅速上漲,根據(jù)中國(guó)證券登記結(jié)算有限公司的數(shù)據(jù)顯示截至2018年底我國(guó)股市活躍賬號(hào)已有1.465億,總市值已達(dá)53.66萬(wàn)億。然而股價(jià)的走勢(shì)會(huì)受到如國(guó)家政策、宏觀經(jīng)濟(jì)情況、所屬行業(yè)發(fā)展前景、上市公司自身運(yùn)營(yíng)情況、投資者情緒及其他突發(fā)事件等影響,而傳統(tǒng)的走勢(shì)預(yù)測(cè)方法如基本面分析法和傳統(tǒng)技術(shù)分析法等的具體實(shí)施不僅需要大量準(zhǔn)確且及時(shí)的消息為前提,更需要充足的理論知識(shí)為背景,方可大致預(yù)測(cè)出股價(jià)未來(lái)走勢(shì),很難滿足數(shù)量如此龐大且多數(shù)不充分具備相關(guān)理論知識(shí)的投資者,因此尋求一種穩(wěn)定可靠且操作簡(jiǎn)單的股價(jià)預(yù)測(cè)方式以迫在眉睫。神經(jīng)網(wǎng)絡(luò)的出現(xiàn)為此提供了可行性,其對(duì)高非線性的復(fù)雜數(shù)據(jù)的處理得到了廣泛的學(xué)界認(rèn)可,模型建立后對(duì)股價(jià)的預(yù)測(cè)操作也極為簡(jiǎn)單。值得我們進(jìn)行深入研究。
該文嘗試?yán)肂P神經(jīng)網(wǎng)絡(luò)進(jìn)行建模,通過(guò)對(duì)長(zhǎng)江電力(600900)2003年11月14日到2019年12月12日共3493條交易數(shù)據(jù)進(jìn)行實(shí)驗(yàn),以期獲得一個(gè)能夠較好擬合股價(jià)走勢(shì)的模型,并據(jù)此對(duì)未來(lái)走勢(shì)進(jìn)行預(yù)測(cè)。
1? 相關(guān)研究
2001年,吳微、陳維強(qiáng)、劉波等通過(guò)大量的數(shù)據(jù)實(shí)驗(yàn)分析總結(jié)得出關(guān)于如何進(jìn)行樣本選擇、初始權(quán)值賦予、隱層層數(shù)及每一層神經(jīng)元個(gè)數(shù)選取、激活函數(shù)選取等一系列方法。并就不同的選擇產(chǎn)生的結(jié)果進(jìn)行了比較,以此說(shuō)明其優(yōu)缺點(diǎn)[1]。王晶、張文靜等人在2008年指出BP神經(jīng)網(wǎng)絡(luò)采用的負(fù)梯度下降法有可能使結(jié)果陷入局部極小值而非全局最小值,且在學(xué)習(xí)率等參數(shù)設(shè)置不理想時(shí)易造成收斂速度過(guò)慢[2]。他們?cè)诖嘶A(chǔ)上提出蟻群神經(jīng)網(wǎng)絡(luò),將蟻群算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合,并通過(guò)輸入代號(hào)為000070的股票前一周每天t時(shí)刻的股價(jià)和前3天大盤(pán)t時(shí)刻的股價(jià),來(lái)預(yù)測(cè)未來(lái)一天t時(shí)刻的股價(jià),實(shí)證得出加入蟻群算法的神經(jīng)網(wǎng)絡(luò)在預(yù)測(cè)精度和預(yù)測(cè)速度上相較于單一神經(jīng)網(wǎng)絡(luò)有顯著的提高。2012年,劉斐弘分別將BP、RBF、GABP這3種神經(jīng)網(wǎng)絡(luò)用于股票價(jià)格預(yù)測(cè),實(shí)證表明這3種神經(jīng)網(wǎng)絡(luò)均能夠較好地進(jìn)行股價(jià)預(yù)測(cè),而其中以GABP網(wǎng)絡(luò)的全局收斂性和精度最高[3]。2017年,周寧、黃捷等人在用BP神經(jīng)網(wǎng)絡(luò)對(duì)中石化股票數(shù)據(jù)進(jìn)行建模預(yù)測(cè)后,利用馬爾可夫模型對(duì)誤差序列(預(yù)測(cè)數(shù)列與實(shí)測(cè)數(shù)列之差)進(jìn)行處理,計(jì)算出未來(lái)狀態(tài)數(shù)據(jù)的狀態(tài)概率,再將未來(lái)數(shù)據(jù)進(jìn)行還原得出其所在真實(shí)范圍區(qū)間,再選取概率最大區(qū)間,取均值作為最終預(yù)測(cè)結(jié)果輸出。此法有效提高了模型的準(zhǔn)度[4]。2018年,劉佳祺、劉德紅等人將主成分分析法、遺傳算法與BP神經(jīng)網(wǎng)絡(luò)算法相結(jié)合,建立PCA-GA-BP模型用于預(yù)測(cè)股價(jià)變動(dòng)情況,該模型很好地改善了BP網(wǎng)絡(luò)運(yùn)算速度慢和易陷入局部極小值的缺點(diǎn)[5]。值得說(shuō)明的是,上述這些研究多是將BP算法與其他相關(guān)算法相結(jié)合,以此來(lái)獲得更好結(jié)果,基于BP網(wǎng)絡(luò)自身的改進(jìn)算法并不多見(jiàn)。
2? 誤差反向傳播算法
誤差反向傳播算法(Back-Propagation Algorithm),簡(jiǎn)稱為BP算法,是在神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)中占據(jù)統(tǒng)治地位的算法,它的出現(xiàn)極大地推進(jìn)了神經(jīng)網(wǎng)絡(luò)的發(fā)展。圖1可以看作是一個(gè)3層神經(jīng)網(wǎng)絡(luò)示意圖。其權(quán)重反向傳播如下。
3? 數(shù)據(jù)處理
該文通過(guò)網(wǎng)易財(cái)經(jīng)的數(shù)據(jù)接口獲得長(zhǎng)江電力(600900) 2003年11月14日到2019年12月12日共3909條交易數(shù)據(jù),其特征包含日期、收盤(pán)價(jià)、最高價(jià)、最低價(jià)、開(kāi)盤(pán)價(jià)、前收盤(pán)價(jià)、漲跌額、漲跌幅、換手率、成交量、成交金額、總市值、流通市值共13個(gè)維度。將其停盤(pán)日數(shù)據(jù)(收盤(pán)價(jià)=0)共416條刪除后剩3493條實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)中,以t+1日收盤(pán)價(jià)為預(yù)測(cè)目標(biāo),以t日的交易數(shù)據(jù)為訓(xùn)練對(duì)象,通過(guò)歸一化對(duì)數(shù)據(jù)消除量級(jí)差造成的影響。
4? 實(shí)證分析
通過(guò)構(gòu)建3層BP神經(jīng)為網(wǎng)絡(luò),其中第一層為輸入層,共有11個(gè)神經(jīng)元組成,分別輸入t日收盤(pán)價(jià)、t日最高價(jià)、t日最低價(jià)、t日開(kāi)盤(pán)價(jià)、t-1日收盤(pán)價(jià)、t日漲跌額、t日換手率、t日成交量、t日成交金額、t日總市值和t日流通市值。第二層為中間層(隱藏層),設(shè)有3個(gè)神經(jīng)元,第三層為輸出層,有一個(gè)神經(jīng)元,輸出值為t+1日的收盤(pán)價(jià)預(yù)測(cè)值。學(xué)習(xí)率為0.05,通過(guò)最小批量梯度下降法迭代次數(shù)為50次,每批次為85條數(shù)據(jù)。將數(shù)據(jù)按4∶1的比率分為訓(xùn)練集共2793條,測(cè)試集700條。其實(shí)驗(yàn)結(jié)果如圖2所示。測(cè)試集最終均方誤差為2.505。
5? 優(yōu)化改進(jìn)
Adam算法是由OpenAI的Diederik Kingma和多倫多大學(xué)的Jimmy Ba最早提出的,其可以看作是動(dòng)量算法與RMSProp算法的集合,是目前神經(jīng)網(wǎng)絡(luò)中最流行的優(yōu)化方法。該算法對(duì)梯度和學(xué)習(xí)率均做了改進(jìn),使得代價(jià)函數(shù)在接近鞍點(diǎn)時(shí)能夠繼續(xù)學(xué)習(xí),或當(dāng)陷入局部最小值時(shí),增大逃出的可能性。
在不改變其他超參數(shù)的情況下,使用Adam算法進(jìn)行梯度下降后其結(jié)果如圖5所示,且訓(xùn)練集與測(cè)試集中部分放大,測(cè)試集最終均方誤差為0.0293。
6? 結(jié)語(yǔ)
對(duì)比上述實(shí)驗(yàn),可知基于神經(jīng)網(wǎng)絡(luò)的股票趨勢(shì)預(yù)測(cè)是充分可行的,當(dāng)使用BP算法與Adam算法相結(jié)合時(shí),也可以大幅改進(jìn)算法的準(zhǔn)確率。該文的不足之處在于沒(méi)有對(duì)模型進(jìn)行其他方面的改進(jìn),具體實(shí)驗(yàn)也是針對(duì)個(gè)股,不具有普遍性。在未來(lái)的工作中可以嘗試通過(guò)對(duì)數(shù)據(jù)維度進(jìn)行縮減和對(duì)多個(gè)股票進(jìn)行實(shí)驗(yàn)分析,以提升模型使用的廣度。
參考文獻(xiàn)
[1] 吳微,陳維強(qiáng),劉波.用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票市場(chǎng)漲跌[J].大連理工大學(xué)學(xué)報(bào),2001(1):9-15.
[2] 王晶,張文靜,張倩.蟻群神經(jīng)網(wǎng)絡(luò)用于股票價(jià)格短期預(yù)測(cè)[J].商場(chǎng)現(xiàn)代化,2008(6):364-366.
[3] 劉斐弘.神經(jīng)網(wǎng)絡(luò)在股票價(jià)格預(yù)測(cè)中的應(yīng)用——基于三種網(wǎng)絡(luò)的比較分析[J].時(shí)代金融,2012(15):241.
[4] 周寧,黃捷,劉志遠(yuǎn),等.基于神經(jīng)網(wǎng)絡(luò)和馬爾可夫組合模型的股票價(jià)格預(yù)測(cè)[C]//中國(guó)自動(dòng)化學(xué)會(huì)控制理論專業(yè)委員會(huì).第36屆中國(guó)控制會(huì)議論文集.中國(guó)自動(dòng)化學(xué)會(huì)控制理論專業(yè)委員會(huì):中國(guó)自動(dòng)化學(xué)會(huì)控制理論專業(yè)委員會(huì),2017:6.
[5] 劉佳祺,劉德紅,林甜甜.基于BP神經(jīng)網(wǎng)絡(luò)模型的股票價(jià)格研究[J].中國(guó)商論,2018(8):29-30.