黃山 姜淳



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