黃山 姜淳
摘? 要:隨機(jī)信號(hào)預(yù)測(cè)在金融行業(yè)有著重要應(yīng)用。文章基于Back Propagation Network的隨機(jī)信號(hào)預(yù)測(cè)方法,利用三種國(guó)際貨幣匯率價(jià)格的歷史數(shù)據(jù)作為參考,對(duì)未來(lái)匯率價(jià)格進(jìn)行短期預(yù)測(cè),與實(shí)際價(jià)格進(jìn)行比較分析,并得出結(jié)論。有助于對(duì)外匯市場(chǎng)的發(fā)展方向和趨勢(shì)分析,無(wú)論是對(duì)監(jiān)管層進(jìn)行決策還是對(duì)投資者提供投資選擇,都將會(huì)具有非常重要的現(xiàn)實(shí)意義。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);匯率;預(yù)測(cè);Matlab
中圖分類(lèi)號(hào):TP183 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2019)32-0001-05
Abstract: Random signal prediction has important applications in the financial industry. Based on the random signal prediction method of Back Propagation Network and using the historical data of the exchange rates of three international currencies as a reference, this paper makes a short-term prediction of the future exchange rate prices, compares them with the actual prices, and draws a conclusion. It is helpful to analyze the development direction and trend of the foreign exchange market and has a very important practical significance for making decisions on the regulatory level or to providing investment choices for investors.
Keywords: BP neural network; exchange rate; forecast; Matlab
1 概述
當(dāng)前,隨著我國(guó)資本市場(chǎng)的開(kāi)放度呈現(xiàn)不斷提高的趨勢(shì),在這樣一個(gè)形勢(shì)下,市場(chǎng)建設(shè)作用愈加明顯,國(guó)家開(kāi)放程度越來(lái)越高,人民幣匯率將更加向市場(chǎng)決定的方向不斷改革邁進(jìn)。對(duì)匯率價(jià)格的波動(dòng)預(yù)測(cè),有助于對(duì)外匯市場(chǎng)的發(fā)展方向和趨勢(shì)分析,無(wú)論是對(duì)監(jiān)管層進(jìn)行決策還是對(duì)投資者提供投資選擇,都將會(huì)具有非常重要的現(xiàn)實(shí)意義。
匯率價(jià)格的波動(dòng)是一種非線(xiàn)性動(dòng)力學(xué)系統(tǒng),投資商業(yè)行為和突發(fā)事件的影響,對(duì)匯率價(jià)格的預(yù)測(cè)也增加了難度。BP神經(jīng)網(wǎng)絡(luò)是一種復(fù)雜的智能信息處理技術(shù),它的非線(xiàn)性泛化能力非常強(qiáng)大,也有著良好的自組織性、適應(yīng)性以及學(xué)習(xí)能力和抗干擾能力,處理非線(xiàn)性復(fù)雜問(wèn)題非常擅長(zhǎng),并且它能發(fā)揮訓(xùn)練速度快的優(yōu)勢(shì),能自動(dòng)從歷史數(shù)據(jù)中提取有關(guān)活動(dòng)的信息,可以克服傳統(tǒng)定量預(yù)測(cè)方法的許多局限和困難,同時(shí)能避免人為的影響,因而為匯率價(jià)格的建模和預(yù)測(cè)提供很好的方法,預(yù)測(cè)準(zhǔn)確率比傳統(tǒng)統(tǒng)計(jì)方法高。因此眾多學(xué)者采用神經(jīng)網(wǎng)絡(luò)方法來(lái)對(duì)匯率波動(dòng)進(jìn)行研究分析,徐緣圓通過(guò)BP網(wǎng)絡(luò)利用MATLAB軟件對(duì)人民幣兌美元的匯率中間價(jià)進(jìn)行預(yù)測(cè)[1];王杰、毛宇光研究了神經(jīng)網(wǎng)絡(luò)進(jìn)行匯率預(yù)測(cè)的步驟,并依據(jù)不同的指標(biāo)分析結(jié)果[2];王芮瑩以人民幣兌美元匯率歷史數(shù)據(jù)作為樣本,采用BP網(wǎng)絡(luò)預(yù)測(cè)未來(lái)人民幣兌美元匯率將緩慢增長(zhǎng)[3];鄧玲燕、劉立平基于BP網(wǎng)絡(luò)對(duì)人民幣匯率進(jìn)行了準(zhǔn)確預(yù)測(cè),擬合結(jié)果與實(shí)際數(shù)據(jù)精確度達(dá)到99%[4];朱新玲、黎鵬基于BP網(wǎng)絡(luò)擬合了人民幣對(duì)美元名義匯率序列,并展開(kāi)模擬預(yù)測(cè)[5];馮文芳提出BP網(wǎng)絡(luò)較傳統(tǒng)線(xiàn)性化變量預(yù)測(cè)方法更具優(yōu)勢(shì),并對(duì)人民幣兌美元匯率進(jìn)行趨勢(shì)分析[6];任金波、張文潔對(duì)人民幣兌美元匯率進(jìn)行了短、中、長(zhǎng)期的預(yù)測(cè),得出短、中期預(yù)測(cè)效果更加精準(zhǔn)的結(jié)果[7];占祖桂運(yùn)用BP網(wǎng)絡(luò)準(zhǔn)確擬合了香港離岸人民幣匯率的過(guò)去值,并預(yù)測(cè)了未來(lái)趨勢(shì)[8];陳靜、李星野對(duì)美元兌歐元匯率進(jìn)行趨勢(shì)與波動(dòng)分析并作出區(qū)間預(yù)測(cè),均得出較好的預(yù)測(cè)結(jié)果,但都只對(duì)某一種貨幣對(duì)匯率情況進(jìn)行了分析[9]。有些學(xué)者采用BP網(wǎng)絡(luò)結(jié)合其他模型的方法進(jìn)行了研究分析,衡亞亞、沐年國(guó)結(jié)合小波分析、BP-GARCH模型成功進(jìn)行了預(yù)測(cè)[10];曾靜把小波分析、AR模型、BP網(wǎng)絡(luò)結(jié)合對(duì)匯率進(jìn)行了預(yù)測(cè)[11];謝赤、歐陽(yáng)亮討論了三種神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的特點(diǎn)以及局限性,并用于匯率預(yù)測(cè)比較分析[12];王曉輝、張衛(wèi)國(guó)、劉玉芳提出一種ICA與BP網(wǎng)絡(luò)相融合的多維時(shí)間序列模型,實(shí)現(xiàn)融合預(yù)測(cè)[13],驗(yàn)證組合模型預(yù)測(cè)效果更好;廖薇結(jié)合神經(jīng)網(wǎng)絡(luò)和遺傳規(guī)劃對(duì)人民幣匯率進(jìn)行了預(yù)測(cè)分析[14];魚(yú)丹基于遺傳算法與BP神經(jīng)網(wǎng)絡(luò)進(jìn)行匯率預(yù)測(cè)[15];歐陽(yáng)亮提出預(yù)測(cè)匯率的小波分析與神經(jīng)網(wǎng)絡(luò)結(jié)合的組合方法[16],并證明模型存在的有效性;朱家明、胡玲燕采用ARIMA和BP網(wǎng)絡(luò)方法對(duì)人民幣匯率進(jìn)行預(yù)測(cè)分析[17],得出短期預(yù)測(cè)效果更佳的結(jié)果;惠曉峰、胡運(yùn)權(quán)、胡偉結(jié)合GA-BP網(wǎng)絡(luò)與遺傳算法對(duì)人民幣兌美元匯率進(jìn)行預(yù)測(cè)[18];徐卓順、趙紅強(qiáng)將小波-ARMA-BP網(wǎng)絡(luò)模型混合起來(lái)進(jìn)行預(yù)測(cè)[19];王曉琳利用遺傳算法對(duì)BP網(wǎng)絡(luò)進(jìn)行優(yōu)化,并進(jìn)行了驗(yàn)證研究[20],證明遺傳算法與BP神經(jīng)網(wǎng)絡(luò)的結(jié)合模型在匯率預(yù)測(cè)上比單一模型更加精確,但缺少對(duì)不同貨幣對(duì)匯率情況的比較。
本文重點(diǎn)針對(duì)匯率分析研究的復(fù)雜性,基于matlab神經(jīng)網(wǎng)絡(luò)工具箱,采用BP神經(jīng)網(wǎng)絡(luò)方法,依據(jù)歐元兌美元、美元兌人民幣、美元兌日元三對(duì)主流國(guó)際貨幣匯率價(jià)格的同一時(shí)期歷史數(shù)據(jù),對(duì)匯率數(shù)據(jù)進(jìn)行科學(xué)的預(yù)處理,建立合適模型對(duì)三種貨幣對(duì)匯率價(jià)格進(jìn)行短期預(yù)測(cè),取得了較好的結(jié)果。
2 BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)
本文建模分析的總體流程如上圖所示,具體有如下步驟:
(1)收集匯率價(jià)格歷史數(shù)據(jù),提取特征值,對(duì)特征值進(jìn)行歸一化處理。
(2)對(duì)樣本集進(jìn)行分類(lèi),一部分作為訓(xùn)練樣本,一部分作為測(cè)試樣本。
(3)用訓(xùn)練樣本訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),得出輸出層的權(quán)值,反復(fù)學(xué)習(xí)和訓(xùn)練達(dá)到誤差要求停止。
(4)通過(guò)訓(xùn)練獲得的參數(shù)來(lái)創(chuàng)建預(yù)測(cè)模型,預(yù)測(cè)測(cè)試樣本數(shù)據(jù)
(5)觀察并分析預(yù)測(cè)仿真結(jié)果,調(diào)整網(wǎng)絡(luò)參數(shù),重新進(jìn)行訓(xùn)練,直至達(dá)到最優(yōu)結(jié)果為止。
3 應(yīng)用案例和實(shí)現(xiàn)
3.1 樣本數(shù)據(jù)
本文選用的是美元兌人民幣匯率、美元兌日元匯率、歐元兌美元匯率價(jià)格的歷史數(shù)據(jù),依據(jù)匯率價(jià)格波動(dòng)隨時(shí)間變化的特性,采取多步預(yù)測(cè)的方法,把前6天的開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)、最低價(jià)作為輸入信號(hào),一共24個(gè)信號(hào),第7天的收盤(pán)價(jià)作為輸出信號(hào)。
樣本訓(xùn)練的數(shù)據(jù)應(yīng)該盡可能全面,訓(xùn)練效果也就會(huì)越好,同時(shí)還可以避免出現(xiàn)過(guò)度訓(xùn)練。所以我們?cè)谶x擇合適的訓(xùn)練樣本時(shí),應(yīng)注意到各種模式間可能存在的平衡,盡可能的選擇更加全面的輸入模型。
3.2 數(shù)據(jù)的預(yù)處理和后處理
為了給數(shù)據(jù)處理提供便利,保證程序運(yùn)行時(shí)加快收斂,提高程序運(yùn)行效率,有時(shí)需要對(duì)樣本數(shù)據(jù)進(jìn)行必要的預(yù)處理。首先要進(jìn)行的就是歸一化,通過(guò)歸一化處理未來(lái)需要研究分析的數(shù)據(jù),使其控制在我們研究所需要的確定范圍內(nèi)。本文采取的matlab里面的mapminmax方法,激活函數(shù)為tan-sigmoid函數(shù),對(duì)數(shù)據(jù)進(jìn)行歸一化處理,處理后數(shù)據(jù)范圍在-1至1之間。歸一化公式為:
pn=2*(pd-minpd)/(maxpd-minpd)-1?(1)
其中,pd為原始數(shù)據(jù),minpd和maxpd分別為pd的最小值和最大值,pn為歸一化后的數(shù)據(jù)。
MATLAB中調(diào)用程序?yàn)閇pn,st1]=mapminmax(pd),st1為歸一化所使用的參數(shù)
3.3 建立BP網(wǎng)絡(luò)并對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練
網(wǎng)絡(luò)層數(shù):理論上已經(jīng)證明,具有一個(gè)隱含層的三層BP網(wǎng)絡(luò)結(jié)構(gòu),能夠逼近任何連續(xù)函數(shù),因此隱含層數(shù)選擇1個(gè)足矣。
前6天的開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)、最低價(jià)決定輸入層神經(jīng)元個(gè)數(shù)為24,第7天的收盤(pán)價(jià)確定輸出層神經(jīng)元個(gè)數(shù)為 1。通過(guò)經(jīng)驗(yàn)確定初始隱含層神經(jīng)元個(gè)數(shù)為10。訓(xùn)練次數(shù)1000,學(xué)習(xí)率為0.01,目標(biāo)誤差為0.00000001。采用newff函數(shù)來(lái)生成BP網(wǎng)絡(luò):net=newff(px,py,15)。其中,px代表訓(xùn)練樣本輸入,py代表訓(xùn)練樣本輸出,15為隱含層數(shù)。
Matlab中BP網(wǎng)絡(luò)的訓(xùn)練我們通過(guò)train函數(shù)來(lái)進(jìn)行,仿真用sim函數(shù)來(lái)完成,程序如下:net=train(net,px,py);s=sim(net,px);
訓(xùn)練算法選擇trainlm,速度快,并且將輸入60%作為訓(xùn)練,20%作為檢驗(yàn),20%作為驗(yàn)證,采用提前終止策略,能夠防止過(guò)度擬合存在。
3.4 預(yù)測(cè)
對(duì)訓(xùn)練樣本進(jìn)行網(wǎng)絡(luò)訓(xùn)練,并對(duì)測(cè)試的輸出結(jié)果進(jìn)行反歸一化,并與目標(biāo)輸出結(jié)果進(jìn)行比較。不斷改變隱含層神經(jīng)元個(gè)數(shù),從10一直到30,最終選擇最優(yōu)隱含層神經(jīng)元個(gè)數(shù)為15,把此時(shí)的神經(jīng)網(wǎng)絡(luò)參數(shù)作為初始設(shè)置,完成對(duì)美元兌人民幣匯率、美元兌日元匯率、歐元兌美元匯率價(jià)格的預(yù)測(cè)。
4 仿真實(shí)驗(yàn)及結(jié)果分析
4.1 歐元兌美元匯率預(yù)測(cè)
選取2017年1月2日至2018年12月31日的匯率價(jià)格數(shù)據(jù),一共521天,選取了前面450天的數(shù)據(jù)作為訓(xùn)練樣本,第7天到第456天的收盤(pán)價(jià)作為訓(xùn)練目標(biāo)輸出,第451天到500天的數(shù)據(jù)作為測(cè)試輸入,第457到506天的收盤(pán)價(jià)作為測(cè)試目標(biāo)輸出。
4.2 美元兌人民幣匯率預(yù)測(cè)
選取了2018年1月1日到2019年3月29日共359天的數(shù)據(jù),選取了前面303天的數(shù)據(jù)作為訓(xùn)練樣本,第7天到第309天的收盤(pán)價(jià)作為訓(xùn)練目標(biāo)輸出,第304天到353天的數(shù)據(jù)作為測(cè)試輸入,第310天到359天的收盤(pán)價(jià)作為測(cè)試目標(biāo)輸出。
4.3 美元兌日元匯率預(yù)測(cè)
選取2018年1月1日至2019年3月29日美元兌日元的匯率價(jià)格數(shù)據(jù),一共有359天,選取了前面303天的數(shù)據(jù)作為訓(xùn)練樣本,第7天到第309天的收盤(pán)價(jià)作為訓(xùn)練目標(biāo)輸出,第304天到353天的數(shù)據(jù)作為測(cè)試輸入,第310天到359天的收盤(pán)價(jià)作為測(cè)試目標(biāo)輸出。
通過(guò)以上圖片可以看出,三種貨幣對(duì)匯率價(jià)格預(yù)測(cè)趨勢(shì)與匯率真實(shí)價(jià)格趨勢(shì)基本相同,其中歐元兌美元的誤差基本在0.01以?xún)?nèi),相對(duì)誤差在0.01以?xún)?nèi);美元兌人民幣的誤差在0.04以?xún)?nèi),相對(duì)誤差在6*10^(-3)以?xún)?nèi);美元兌日元的誤差在0.96以?xún)?nèi),相對(duì)誤差基本在8*10^(-3)以?xún)?nèi)。本文的實(shí)驗(yàn)結(jié)果表明,通過(guò)BP神經(jīng)網(wǎng)絡(luò)方法對(duì)匯率波動(dòng)的趨勢(shì)預(yù)測(cè)精準(zhǔn),對(duì)匯率價(jià)格的預(yù)測(cè)也有很好的精度,對(duì)預(yù)測(cè)匯率價(jià)格有很強(qiáng)的適用性。
5 結(jié)束語(yǔ)
匯率系統(tǒng)是一個(gè)非常復(fù)雜的非線(xiàn)性系統(tǒng),本文成功收集了三種貨幣對(duì)匯率數(shù)據(jù)并進(jìn)行了科學(xué)的預(yù)處理,基于BP神經(jīng)網(wǎng)絡(luò)算法試驗(yàn)選擇合適的隱含層數(shù),合理展開(kāi)訓(xùn)練,成功對(duì)同一時(shí)期三種貨幣對(duì)匯率的短期預(yù)測(cè),預(yù)測(cè)精度更高。但這對(duì)匯率的預(yù)測(cè)研究還遠(yuǎn)遠(yuǎn)不夠,后續(xù)想要更加精準(zhǔn)的預(yù)測(cè)匯率趨勢(shì),還要展開(kāi)大量深入的研究,一方面是要提取更加合理、有效的信息作為樣本輸入,另一方面在算法上還要爭(zhēng)取結(jié)合其他模型的優(yōu)勢(shì)進(jìn)行融合預(yù)測(cè),進(jìn)一步提高中、長(zhǎng)期預(yù)測(cè)的準(zhǔn)確度。
參考文獻(xiàn):
[1]徐緣圓.BP神經(jīng)網(wǎng)絡(luò)在匯率預(yù)測(cè)中的應(yīng)用[J].時(shí)代金融(下旬),2013(1):147-148.
[2]王杰,毛宇光.基于神經(jīng)網(wǎng)絡(luò)的匯率預(yù)測(cè)[J].計(jì)算機(jī)與現(xiàn)代化,2006(2):105-108.
[3]王芮瑩.基于BP神經(jīng)網(wǎng)絡(luò)的人民幣匯率預(yù)測(cè)分析[J].經(jīng)營(yíng)者,2016(10):107-108.
[4]鄧玲燕,劉立平.“新匯改”后人民幣匯率預(yù)測(cè)[J].內(nèi)江師范學(xué)院學(xué)報(bào),2019,34(6):73-80.
[5]朱新玲,黎鵬.基于BP神經(jīng)網(wǎng)絡(luò)的人民幣匯率擬合與預(yù)測(cè)研究[J].中南民族大學(xué)學(xué)報(bào)(自然科版),2010(3):113-115.
[6]馮文芳.基于BP神經(jīng)網(wǎng)絡(luò)的人民幣兌美元匯率趨勢(shì)分析[J].經(jīng)濟(jì)縱橫,2014(1):46-47.
[7]任金波,張文潔.基于BP神經(jīng)網(wǎng)絡(luò)的匯率預(yù)測(cè)[J].消費(fèi)導(dǎo)刊,2018(3):167,274.
[8]占祖桂.基于BP神經(jīng)網(wǎng)絡(luò)的香港離岸人民幣匯率預(yù)測(cè)[J].吉林金融研究,2018(8):44-46.
[9]陳靜,李星野.美元/歐元匯率的組合模型區(qū)間預(yù)測(cè)[J].科技和產(chǎn)業(yè),2017,17(11):141-147.
[10]衡亞亞,沐年國(guó).基于小波分析與BP-GARCH模型的人民幣匯率預(yù)測(cè)研究[J].應(yīng)用技術(shù)與研究,2018,17(12):146-150.
[11]曾靜.基于小波分析的匯率預(yù)測(cè)模型研究[D].華中科技大學(xué),2009:1-46.
[12]謝赤,歐陽(yáng)亮.匯率預(yù)測(cè)的神經(jīng)網(wǎng)絡(luò)方法及其比較[J].財(cái)經(jīng)科學(xué),2008(5):47-53.
[13]王曉輝,張衛(wèi)國(guó),劉玉芳.融合ICA的BP網(wǎng)絡(luò)在人民幣匯率預(yù)測(cè)中的應(yīng)用[J].系統(tǒng)工程學(xué)報(bào),2014,29(3):344-352.
[14]廖薇.基于神經(jīng)網(wǎng)絡(luò)和遺傳規(guī)劃的匯率預(yù)測(cè)技術(shù)研究[D].華東師范大學(xué),2010:1-135.
[15]魚(yú)丹.基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)在匯率預(yù)測(cè)中的應(yīng)用[J].科技創(chuàng)新與應(yīng)用,2019(3):100-101.
[16]歐陽(yáng)亮.基于小波分析與神經(jīng)網(wǎng)絡(luò)的匯率組合預(yù)測(cè)研究[D].湖南大學(xué),2008:1-61.
[17]朱家明,胡玲燕.基于ARIMA和BP神經(jīng)網(wǎng)絡(luò)對(duì)人民幣匯率預(yù)測(cè)的比較分析——以美元人民幣匯率為例[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,33(5):207-212.
[18]惠曉峰,胡運(yùn)權(quán),胡偉.基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)在匯率預(yù)測(cè)中的應(yīng)用研究[J].數(shù)量經(jīng)濟(jì)技術(shù)經(jīng)濟(jì)研究,2002,19(2):80-83.
[19]徐卓順,趙紅強(qiáng).人民幣兌美元匯率預(yù)測(cè)的單一和混合模型比較分析[J].商業(yè)時(shí)代,2014(14):73-75.
[20]王曉琳.遺傳算法與神經(jīng)網(wǎng)絡(luò)在匯率預(yù)測(cè)中的應(yīng)用[D].青島大學(xué),2006.
作者簡(jiǎn)介:黃山(1989-),男,在職碩士研究生,研究方向:通信與信息系統(tǒng);姜淳(1965-),男,博士,教授,博士生導(dǎo)師,研究方向:通信與信息系統(tǒng)。