李迎路
隨著人們對加密貨幣認(rèn)可度的提升、各國政府出臺的寬松政策以及投資者的進(jìn)入,加密貨幣市場呈現(xiàn)出火熱態(tài)勢,大量的線上交易平臺在全球范圍內(nèi)建立起來,如今全球加密貨幣市場已達(dá)萬億級別。而加密貨幣自身不同于傳統(tǒng)金融工具的性質(zhì)使得其價(jià)格存在巨大的波動(dòng)性,同時(shí)加密貨幣市場不存在漲跌限制,某種加密貨幣的價(jià)格在一天內(nèi)的漲跌幅度可能高達(dá)30到40個(gè)百分點(diǎn),投資者面臨著巨大的投資風(fēng)險(xiǎn)。隨著人們對加密貨幣市場理解與研究的深入,出于幫助投資者規(guī)避風(fēng)險(xiǎn)、增加市場透明度的目的,加密貨幣市場上出現(xiàn)了類似于股指的被稱作加密貨幣指數(shù)的金融工具:它通過對從市場中收集到的交易信息進(jìn)行加權(quán)平均來刻畫市場整體的走向,或者通過特定算法對收集到的市場信息進(jìn)行匯總來勾畫市場中交易者的整體狀態(tài)。加密貨幣指數(shù)能夠像證券市場中的上證綜指、滬深300一類的指數(shù)一樣成為市場的晴雨表、為投資者提供可投資的風(fēng)險(xiǎn)相對較低的加密貨幣指數(shù)基金。
本文著眼于國內(nèi)有關(guān)加密貨幣市場的預(yù)測這一課題研究較少的現(xiàn)狀,嘗試通過構(gòu)建BP神經(jīng)網(wǎng)絡(luò)對加密貨幣指數(shù)這種新生事物的收盤價(jià)進(jìn)行預(yù)測,希望能夠起到拋磚引玉的作用,以激發(fā)起更多優(yōu)秀的研究者的研究興趣與熱情,從而豐富這一課題的理論與實(shí)踐,最終能為投身于加密貨幣市場的投資者提供切實(shí)可行的預(yù)測工具與理論指導(dǎo)。
國外有大量和加密貨幣市場的預(yù)測有關(guān)的文獻(xiàn),有直接預(yù)測單一加密貨幣價(jià)格的,有預(yù)測加密貨幣指數(shù)的,也有利用創(chuàng)造出的加密貨幣指數(shù)去預(yù)測其他幣種的價(jià)格。Alex Greaves和Benjamin Au分別使用線性回歸、logistic回歸、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)四種機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)了對未來一小時(shí)比特幣價(jià)格的預(yù)測,結(jié)果顯示:神經(jīng)網(wǎng)絡(luò)的預(yù)測精度達(dá)到了55.1%,效果最好。McNally S使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長期短期記憶網(wǎng)絡(luò)(LSTM)以及預(yù)測了比特幣價(jià)格指數(shù)(Bitcoin Price Index),并且使用ARIMA模型做了對比,實(shí)證的結(jié)果發(fā)現(xiàn):LSTM模型的預(yù)測效果較好,實(shí)現(xiàn)了52.78%的預(yù)測精度。Li等通過將推特上的信息進(jìn)行匯總成兩種指數(shù),然后使用了梯度提升決策樹(Extreme Gradient Boosting Regression Tree Model)預(yù)測了ZClassic價(jià)格的波動(dòng)。國內(nèi)有關(guān)加密貨幣市場預(yù)測的研究屈指可數(shù),并且都是對單一加密貨幣的價(jià)格進(jìn)行的預(yù)測,未發(fā)現(xiàn)和加密貨幣指數(shù)預(yù)測相關(guān)的研究,這是本文的一個(gè)創(chuàng)新點(diǎn)。梁秋等使用小波分析方法對比特幣價(jià)格進(jìn)行了時(shí)間跨度為一個(gè)季度預(yù)測,實(shí)證的結(jié)果顯示預(yù)測結(jié)果在短期內(nèi)與實(shí)際變化趨勢大致相同。艾青先通過實(shí)驗(yàn)證明了比特幣的交易趨勢是可預(yù)測的,然后分別使用混合模型、多元回歸模型、SVM模型、貝葉斯線性回歸模型對比特幣的價(jià)格進(jìn)行了預(yù)測,之后又使用改進(jìn)的貝葉斯模型將預(yù)測的準(zhǔn)確率提高到了74.14%。孫堅(jiān)提出了一種基于集成經(jīng)驗(yàn)?zāi)B(tài)分解方法(EEMD)的比特幣價(jià)格波動(dòng)分析及預(yù)測方法。先從三個(gè)時(shí)間尺度分別對比特幣價(jià)格時(shí)間序列進(jìn)行理論分析和特征分析,之后對比特幣價(jià)格展開預(yù)測,實(shí)證的結(jié)果顯示此方法比單一的LSTM模型要好。
本文選擇CCi30指數(shù)作為實(shí)證部分的研究對象。CCi30指數(shù)發(fā)行于2017年1月1日,作為一個(gè)基于規(guī)則的加密貨幣指數(shù),它通過跟蹤30種按調(diào)整后的市值計(jì)算占市場份額最大的加密貨幣,來反映區(qū)塊鏈板塊的整體增長、日變化和長期走勢。CCi30指數(shù)最初的目標(biāo)是成為加密貨幣市場的晴雨表以及為消極交易者提供參與到具有增長潛力的加密貨幣市場的投資工具。CCi30指數(shù)通過在計(jì)算過程中引入調(diào)整函數(shù)很好地解決了比特幣和萊特幣市場份額占據(jù)過大從而致使權(quán)重計(jì)算不公平的問題,通過使用調(diào)整后的市值代替原始市值的方法避免了因加密貨幣極高的波動(dòng)率帶來成分的劇烈變動(dòng)。
1986年,為了解決感知機(jī)(Multilayer Perceptron,MLP)網(wǎng)絡(luò)無法處理非線性問題的缺陷,Rumelhart和McClelland提出了BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)的概念,它使用多層網(wǎng)絡(luò)學(xué)習(xí)的誤差反向傳播學(xué)習(xí)算法,即BP算法,較好地解決了多層網(wǎng)絡(luò)的學(xué)習(xí)問題。經(jīng)過30年的發(fā)展,BP神經(jīng)網(wǎng)絡(luò)已成為應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò)模型,它的適用范圍覆蓋了模式識別、數(shù)據(jù)聚類、時(shí)間序列預(yù)測等熱門領(lǐng)域。BP神經(jīng)網(wǎng)絡(luò)自1986年誕生至今的30多年里已經(jīng)得到了很大發(fā)展,相關(guān)的理論越來越成熟,各種新的學(xué)習(xí)算法、優(yōu)化改進(jìn)方法的出現(xiàn)使得網(wǎng)絡(luò)的預(yù)測精度以及迭代速度都有了很大的提升,其應(yīng)用范圍得到了極大的拓展,因此本文選擇了BP神經(jīng)網(wǎng)絡(luò)作為預(yù)測使用的模型。
本節(jié)為實(shí)證分析部分,是本文的中心,整個(gè)分析過程可分為3個(gè)步驟:
第一步:數(shù)據(jù)的選取和預(yù)處理,這一步用來獲取實(shí)驗(yàn)所用的數(shù)據(jù),并對其進(jìn)行歸一化處理來消除不同量綱對實(shí)驗(yàn)的影響。
第二步:網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì),即確定BP網(wǎng)絡(luò)的層數(shù)以及最優(yōu)隱層的節(jié)點(diǎn)數(shù)目。
第三步:使用第二步建立的BP神經(jīng)網(wǎng)絡(luò)對CCi30指數(shù)的收盤價(jià)進(jìn)行預(yù)測,并分析預(yù)測的結(jié)果,進(jìn)行總結(jié)。
本文使用的實(shí)驗(yàn)環(huán)境為MATLAB的神經(jīng)網(wǎng)絡(luò)工具箱。作為三大數(shù)學(xué)軟件之一,MATLAB側(cè)重于數(shù)值計(jì)算與矩陣運(yùn)算,它所使用的腳本語言語法簡潔,結(jié)構(gòu)清晰,具有高度的可讀性。神經(jīng)網(wǎng)絡(luò)工具箱是MATLAB用來實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)功能所開發(fā)的官方擴(kuò)展功能包,它用于實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)功能的語句十分高級,往往使用幾條指令就能完成網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練與預(yù)測。
本文所用的數(shù)據(jù)下載自CCi30的官方網(wǎng)站,時(shí)間范圍自2018年3月1日至2019年3月26日,共計(jì)391天。在實(shí)證分析中,取前361天的數(shù)據(jù)作為訓(xùn)練樣本,后30天的數(shù)據(jù)作為測試樣本。
預(yù)測所涉及的指標(biāo)為:開盤價(jià)、最高價(jià)、最低價(jià)、交易量。要預(yù)測的指標(biāo)為:收盤價(jià)。為了消除量綱的影響,本文采用最常見的歸一化方法——Max-Min標(biāo)準(zhǔn)化函數(shù)變換對數(shù)據(jù)進(jìn)行歸一化:
其中,x表示原始樣本數(shù)據(jù),x*為歸一化后數(shù)據(jù),xmin和xmax分別是樣本數(shù)據(jù)最小值和最大值。(1)式為歸一化處理公式,它將原始數(shù)據(jù)變換到[0,1]區(qū)間或[-1,1]區(qū)間內(nèi),(2)式為反歸一化處理公式,它起到恢復(fù)預(yù)測值的量綱的作用。
1.隱含層數(shù)目的確定
一個(gè)BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層、輸出層構(gòu)成。其中輸入層和輸出層都是一層,但是隱含層的數(shù)目需要額外設(shè)置。一般的觀點(diǎn)認(rèn)為設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)時(shí),隱含層的確定應(yīng)優(yōu)先考慮一層的情況。而且已有理論證明,任何非線性連續(xù)函數(shù)都可以通過使用一個(gè)三層的網(wǎng)絡(luò)(單隱層)以任意精度逼近。所以基于以上的考慮,本文選擇具有一個(gè)隱含層的三層BP神經(jīng)網(wǎng)絡(luò)。
2.隱含層節(jié)點(diǎn)數(shù)目的確定
輸入層和輸出層的結(jié)點(diǎn)數(shù)會隨訓(xùn)練集(實(shí)證中所使用的數(shù)據(jù))的確定而確定,但是隱含層的節(jié)點(diǎn)數(shù)目需要額外設(shè)置。隱層節(jié)點(diǎn)數(shù)目過多或過少都會影響神經(jīng)網(wǎng)絡(luò)的整體性能——前者會增加學(xué)習(xí)時(shí)間、出現(xiàn)訓(xùn)練過度、降低容錯(cuò)率和泛化能力,后者會使學(xué)習(xí)過程不收斂。因此隱層節(jié)點(diǎn)數(shù)目的最優(yōu)選取對于提高神經(jīng)網(wǎng)絡(luò)的預(yù)測效果具有重要意義。對于隱含層最優(yōu)節(jié)點(diǎn)數(shù)目的選取問題,現(xiàn)在尚沒有被廣泛接受的理論。一般的做法是先通過經(jīng)驗(yàn)公式將節(jié)點(diǎn)的數(shù)目確定到一個(gè)大致的范圍內(nèi),然后使用“試湊法”通過實(shí)驗(yàn)確定最優(yōu)節(jié)點(diǎn)個(gè)數(shù)。
本文選取(3)式作為隱層節(jié)點(diǎn)數(shù)目范圍的經(jīng)驗(yàn)公式,n和l分別表示輸入層和輸出層節(jié)點(diǎn)數(shù),a為1~10之間的常數(shù)。通過上述公式計(jì)算可得,隱層節(jié)點(diǎn)數(shù)目的范圍為:3~12個(gè)。使用“試湊法”進(jìn)行多次實(shí)驗(yàn),最終得到以下結(jié)果:
表1 不同隱節(jié)點(diǎn)預(yù)測MSE
本文采用的評價(jià)指標(biāo)為MSE(均方誤差),MSE是最常用的性能函數(shù),它可以計(jì)算預(yù)測值和真實(shí)值之間的差別,進(jìn)而衡量網(wǎng)絡(luò)的預(yù)測效果。由表1的結(jié)果可以知道:當(dāng)隱節(jié)點(diǎn)數(shù)目為3的時(shí)候,模型預(yù)測的平均誤差最小,且預(yù)測平均誤差隨隱節(jié)點(diǎn)數(shù)目大體呈上升趨勢,因此本文選擇隱節(jié)點(diǎn)數(shù)目為3個(gè)。
使用上節(jié)確立的BP神經(jīng)網(wǎng)絡(luò)模型,使用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱進(jìn)行建模計(jì)算,并將真實(shí)值的折線圖和神經(jīng)網(wǎng)絡(luò)輸出的預(yù)測值的折線圖放置在一起進(jìn)行比較,得到結(jié)果如圖1:
圖1 改進(jìn)后的BP網(wǎng)絡(luò)預(yù)測效果
在圖1中,黑色的折線表示模型給出的預(yù)測結(jié)果,灰色的折線表示真實(shí)值,預(yù)測天數(shù)為30天,由圖像可知:除了個(gè)別點(diǎn)有比較大的偏差外,預(yù)測值總體上能夠比較好地?cái)M合真實(shí)值,本文所使用的優(yōu)化了隱層節(jié)點(diǎn)數(shù)的模型取得了比較好的預(yù)測效果。
本文嘗試構(gòu)建BP神經(jīng)網(wǎng)絡(luò)對加密貨幣指數(shù)CCi30指數(shù)的收盤價(jià)進(jìn)行預(yù)測,先確定了神經(jīng)網(wǎng)絡(luò)隱含層的層數(shù),然后使用“試湊法”確定了隱結(jié)點(diǎn)數(shù)目,之后使用MATLAB進(jìn)行建模計(jì)算,取得了比較好的預(yù)測效果。本文的不足之處在于僅僅從數(shù)據(jù)易于獲取的角度考慮,選取了CCi30指數(shù)391天的數(shù)據(jù)作為實(shí)證分析的對象,因此內(nèi)容比較單薄、片面;而且本文未對神經(jīng)網(wǎng)絡(luò)的其他參數(shù),比如說:學(xué)習(xí)函數(shù)、訓(xùn)練函數(shù)、學(xué)習(xí)率進(jìn)行優(yōu)化。希望后續(xù)的研究者能夠在這些方面展開研究,以彌補(bǔ)本文的不足。