劉裕國,王 浩,姚宏亮,李俊照
合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,合肥 230009
水平窗口能量計(jì)算的股市趨勢預(yù)測算法
劉裕國,王 浩,姚宏亮,李俊照
合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,合肥 230009
水平趨勢持續(xù)時(shí)間短,方向變化的不確定性大,水平狀態(tài)下趨勢預(yù)測成為股市趨勢預(yù)測的難點(diǎn)。基于水平窗口的能量計(jì)算,提出一種水平窗口趨勢預(yù)測的BP神經(jīng)網(wǎng)絡(luò)算法(WE-BPNN)。算法首先給出短線趨勢劃分標(biāo)準(zhǔn),在此基礎(chǔ)上引入水平窗口定義;然后,通過對(duì)K線組合能量和均線組合能量進(jìn)行量化計(jì)算,融合這兩種能量得到窗口能量;最后,將窗口能量引入到BP神經(jīng)網(wǎng)絡(luò)預(yù)測窗口方向。由于能量對(duì)于趨勢的作用具有滯后性,存在能量蓄而不發(fā)的情況,會(huì)影響到趨勢判斷的準(zhǔn)確性,因而在WE-BPNN算法的基礎(chǔ)上給出引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)(EF-BPNN)算法,動(dòng)態(tài)調(diào)整窗口能量因子對(duì)于趨勢預(yù)測的影響權(quán)重。在上證數(shù)據(jù)上的實(shí)驗(yàn)結(jié)果表明,EF-BPNN算法具有更好的性能。
能量窗口;K線特征;BP神經(jīng)網(wǎng)絡(luò);水平趨勢
股票市場高風(fēng)險(xiǎn)、高收益,吸引著廣大投資者參與。然而,股市是不確性的動(dòng)態(tài)系統(tǒng),且受到多種要素共同作用,因而股市態(tài)勢的有效預(yù)測是一個(gè)公開的難題。
當(dāng)前,研究者主要從中長線趨勢角度研究股市的態(tài)勢變化。如:韓豫峰等人研究得出中國股市趨勢存在短期趨勢,而且就如同美國等發(fā)達(dá)國家成熟的股市一樣明顯,能從價(jià)格趨勢中能獲得顯著收益[1];一般在較平穩(wěn)的市場趨勢中,技術(shù)分析的作用較為顯著[2]。WU等人提出結(jié)合指標(biāo)的趨勢投資決策模型,投資收益要優(yōu)于其他的投資策略,但劃分的趨勢主要為中長線趨勢,回避了短期趨勢轉(zhuǎn)折點(diǎn)的預(yù)測[3]。然而,短線趨勢的不確定性更強(qiáng),中長線趨勢預(yù)測方法難以用于短線趨勢預(yù)期。也有研究者對(duì)于股市短線趨勢預(yù)測問題進(jìn)行了研究,如:Zhang提出一種基于模糊頻繁模式樹搜索方法預(yù)測短期趨勢[4],但趨勢變化的內(nèi)在原因并沒有分析,且特定的短線場景仍難以處理。
股市的K線特征,可以靈敏地反映股市的短線態(tài)勢特性。關(guān)于股市K線特征的主要工作有:Quan根據(jù)歷史上出現(xiàn)相類似的K線特征后次日出現(xiàn)漲跌情況,來預(yù)測股價(jià)走勢[5];Hércules等人通過統(tǒng)計(jì)分析驗(yàn)證了常見K線組合對(duì)于預(yù)測的有效性,但效果仍然欠佳[6];Lee等人設(shè)計(jì)基于K線組合模式和規(guī)則的專家系統(tǒng),以預(yù)測未來五種模式:下跌、上升、中性、走勢延續(xù)和趨勢反轉(zhuǎn)形態(tài)[7]。然而,當(dāng)前的研究工作沒有對(duì)K線進(jìn)行細(xì)致地量化,沒有分析K線的影響力,導(dǎo)致基于K線的股市預(yù)測算法效果不理想。
在短線趨勢預(yù)測中,水平趨勢持續(xù)時(shí)間短,方向變化的不確定性大,因而水平趨勢方向預(yù)測成為股市趨勢預(yù)測的難點(diǎn)。本文針對(duì)短線趨勢,研究水平窗口的趨勢變化問題。首先給出短線趨勢劃分方法和水平窗口生成方法;然后計(jì)算水平窗口中K線特征的能量,以及水平窗口中均線組合特征的能量;進(jìn)而,將水平窗口中的K線能量和均線組合能量進(jìn)行融合,得到水平窗口能量。最后,給出利用BP神經(jīng)網(wǎng)絡(luò)[8-10]進(jìn)行水平窗口趨勢方向預(yù)測的WE-BPNN算法。由于窗口能量存在蓄而不發(fā)的現(xiàn)象,會(huì)導(dǎo)致算法的誤判,因而在WE-BPNN算法的基礎(chǔ)上提出引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)算法(BP Neural Networks with Energy Factors,EF-BPNN),EF-BPNN算法動(dòng)態(tài)調(diào)整窗口能量因子對(duì)于趨勢預(yù)測的影響權(quán)重,以修正預(yù)測結(jié)果。在上證數(shù)據(jù)上的實(shí)驗(yàn)結(jié)果表明,EF-BPNN算法具有更好的性能。
在股市中,趨勢即一段具有共同價(jià)格波動(dòng)特征的連續(xù)K線區(qū)間,趨勢可以理解為是一種股市價(jià)格波動(dòng)的慣性力,分為上漲趨勢,下跌趨勢和水平趨勢。短期均線的斜率反映短期趨勢,中長期均線的斜率反映中長線趨勢。一般是短期均線先發(fā)生改變,進(jìn)而帶動(dòng)長期均線轉(zhuǎn)向。均線斜率的計(jì)算公式如下:
其中,MAni表示第i天的n日收盤價(jià)均價(jià)(即n日均線值,n一般取5、10、20、30或60),qsni表示第 i天的 n日均線(MAn)的斜率,endPi為第i個(gè)交易日的收盤價(jià);m為計(jì)算均線斜率所取的兩點(diǎn)間距離。
基于短期均線斜率qs5和qs10來劃分短期趨勢劃分,具體劃分方法如下:
在公式(3)中,上漲趨勢記為1,下跌趨勢記為-1,水平趨勢記為0。
(1)短期水平趨勢與水平窗口
上證綜指自2004年10月1日至2010年2月8日,出現(xiàn)151次短線趨勢轉(zhuǎn)換,其中有146次水平趨勢轉(zhuǎn)成下跌或上漲趨勢,僅有5次上漲趨勢和下跌趨勢之間直接轉(zhuǎn)換,說明絕大部分的趨勢變換都會(huì)經(jīng)過這樣一個(gè)水平趨勢過程。同時(shí),上漲或下跌趨勢持續(xù)性強(qiáng),一旦形成會(huì)較長時(shí)間持續(xù)原有的趨勢;而水平趨勢的持續(xù)性弱,且后市態(tài)勢可能變換的不確定性就很大,有三種趨勢方向:向上、水平、向下。
根據(jù)道氏理論思想,股票的變化表現(xiàn)為三種趨勢:主要趨勢、中期趨勢及短期趨勢。趨勢主要由新形成的底部和頂部的價(jià)格進(jìn)行判斷,就主要趨勢中的上漲趨勢是底部逐漸抬高、頂部逐漸抬高的價(jià)格運(yùn)行過程[11]。給出短線水平趨勢和水平窗口定義。
定義1短期水平趨勢:趨勢內(nèi)收盤價(jià)相對(duì)N日前收盤價(jià)的漲跌幅總在一定的范圍內(nèi)。當(dāng)前交易日往前k個(gè)交易日前收盤價(jià)在當(dāng)前收盤價(jià)1%左右時(shí)(5≤k≤10),稱這k個(gè)交易日為一個(gè)水平趨勢中的窗口。在上漲趨勢或下跌趨勢中,會(huì)存在2~4日的水平震蕩,之后繼續(xù)持續(xù)原有趨勢,稱之為上漲或下跌趨勢的一部分。
定義2水平窗口:最近一個(gè)交易日處于短期水平趨勢之中,并且之前m個(gè)交易日內(nèi)所有收盤價(jià)均在最近一個(gè)交易日收盤價(jià)一定范圍內(nèi)。
圖1為水平窗口的選取示例,橫坐標(biāo)為日期(分析周期為交易日),縱坐標(biāo)為價(jià)格。其中K線(Candlestick)又稱蠟燭線,它是以每個(gè)分析周期的開盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)繪制而成[12]。
(2)水平窗口的生成
水平窗口生成的過程如下:
步驟1輸入一段股指走勢。
步驟2從前往后遍歷,若當(dāng)前收盤價(jià)和5日或6日前收盤價(jià)在1%范圍內(nèi),生成窗口,記錄窗口最后一個(gè)交易日ID,和窗口長度(窗口內(nèi)交易日數(shù)),轉(zhuǎn)步驟3;否則繼續(xù)往后遍歷。
步驟3窗口延伸,從當(dāng)前窗口最左側(cè)開始往前遍歷,若收盤價(jià)在窗口范圍內(nèi)波動(dòng)并且當(dāng)前窗口長度小于窗口最大長度,則添加這個(gè)交易日到窗口內(nèi),即增加窗口長度,轉(zhuǎn)步驟3;否則窗口生成結(jié)束,轉(zhuǎn)步驟4。
圖1 水平窗口
步驟4記錄窗口信息,往后推3個(gè)交易日,轉(zhuǎn)步驟2,直到股指走勢遍歷完畢。
(3)水平窗口活躍度AC
窗口的活躍性主要體現(xiàn)在近期成交量變化率:
其中,dealN(i)為第i個(gè)交易日的成交量,AC具體的離散化值如表1所示。
表1 窗口活躍度離散化
由于窗口是由K線組成,窗口內(nèi)不同K線及K線組合表達(dá)了窗口的能量狀態(tài)。因而,在計(jì)算窗口能量之前,先要計(jì)算典型的K線能量,以下K線組合圖的坐標(biāo)和圖1相同。
(1)連續(xù)小陰小陽特征。小陰小陽上漲下跌蓄勢,不出現(xiàn)明顯的改變?cè)瓉泶筅厔莸嫩E象,是對(duì)前面的上漲或下跌趨勢的一個(gè)休整,之后繼續(xù)之前的運(yùn)行方向,如圖2和圖3所示。連續(xù)的小陰小陽是指在5個(gè)交易日漲跌幅絕對(duì)值都在2%以內(nèi),并且10日均線和20日均線方向相同并有一定斜率;在這些約束下,連續(xù)小陰小陽的能量離散結(jié)果,如表2所示。
圖2 小陰小陽上漲蓄勢
圖3 小陰小陽下跌蓄勢
表2 連續(xù)小陰小陽能量
(2)大陰量特征。放大陰量,窗口內(nèi)陰線最大成交量大于陽線最大成交量的1.2倍,并且收盤價(jià)在60日均線上方;滿足這兩個(gè)約束條件時(shí),大陰量特征的能量為-1。
(3)放量價(jià)平特征。陰/陽線放量:一種蓄勢,價(jià)格發(fā)生明顯改變之前,放量的一方能量已明顯聚集,縮量的一方已明顯處于劣勢。K線放量是指近4交易日內(nèi)2個(gè)陽線2個(gè)陰線,且一種平均量能高于另一種的1.08倍,30日均線方向與量能大的K線的方向相一致,且有一定斜率,且后2個(gè)交易日必須出現(xiàn)量能大的那一種K線;在這些約束下,放量價(jià)平的能量離散結(jié)果,如表3所示。
表3 放量價(jià)平能量
(4)抱線特征。近五個(gè)交易日,放量抱線并且不與當(dāng)前趨勢相反,如圖4和圖5所示,放量抱線是指后一個(gè)K線實(shí)體完全包括了前一個(gè)或多個(gè)K線的所有價(jià)格區(qū)間。并且20日均線方向必須與后一種K線的方向一致或走平,且有一定斜率,并且后一種K線必須放量;在這些約束下,抱線的能量離散結(jié)果,如表4所示。
圖4 陽抱線
圖5 陰抱線
表4 抱線能量
(5)K線吞沒特征。K線吞沒,一種K線吞沒另一種K線:近兩個(gè)交易日收盤在大陰(或2連陰,跌幅〈-2%)前一個(gè)交易日收盤價(jià)之上,且近日陽線成交量高于陰線成交量,如圖6所示;近兩個(gè)交易日收盤在大陽(或2連陽,漲幅>2%)前一個(gè)交易日收盤價(jià)之下,且近日陰線成交量高于陽線成交量,如圖7所示;在這些約束下,抱線的能量離散結(jié)果,如表5所示。
圖6 陽吞陰
圖7 陰吞陽
表5 K線吞沒能量
(6)放量大陰特征。放量K線,最后一個(gè)交易日大陰/陽放量(為近四天成交量最大),且60日均價(jià)在收盤價(jià)上/下方;在這些約束下,抱線的能量離散結(jié)果,如表6所示。
表6 放量K線能量
均線方向和不同均線間的位置關(guān)系,對(duì)于股票趨勢的變化具有重要影響。同時(shí)均線組合也有能量性,均線組合能量大小決定了對(duì)于股票趨勢變化的影響程度。
均線方向、均線斜率、股票收盤價(jià)與均線間距離、均線間的位置關(guān)系等,是均線組合能量的主要要素。一般來說,均線斜率越大,當(dāng)前收盤價(jià)離均線斜率越近,均線組合能量越大;當(dāng)均線斜率絕對(duì)值較小或收盤價(jià)離均線較遠(yuǎn)時(shí),均線組合能量不明顯。根據(jù)2.1節(jié)中的均線斜率并結(jié)合均線相對(duì)收盤價(jià)位置(relative position)MA5,rp、MA10,rp、MA20,rp、MA30,rp、MA60,rp,計(jì)算均線組合能量。
其中,MA5i為第i交易日(包含當(dāng)天)前5交易日收盤價(jià)均值,endPi為第i交易日收盤價(jià),MA10,rp、MA20,rp等以此類推。
QS_energy均線組合能量計(jì)算公式:
以上計(jì)算優(yōu)先考慮短期均線,如果均不在以上6種情況內(nèi),再考慮多頭排列與空頭排列兩種較為平緩的均線組合能量。
多頭排列:即短期均線在長期均線上方依次排列,且方向均向上。當(dāng) qs20>30;qs30>0;qs60>0;MA20,rp>MA30,rp;MA30,rp>MA60,rp;MA30,rp>-70時(shí),QS_energy=0.6。
空頭排列:即短期均線在長期均線下方依次排列,且方向均向下。當(dāng)qs20<0;qs30<-30;qs60<0;MA20,rp<MA30,rp;MA30,rp<MA60,rp;MA30,rp<70時(shí),QS_energy=-0.6。
(1)窗口能量計(jì)算
定義3窗口能量,為窗口一段時(shí)間內(nèi)向上向下的運(yùn)動(dòng)的內(nèi)在動(dòng)能,窗口能量為窗口內(nèi)K線組合能量和均線組合能量的和,體現(xiàn)在近期價(jià)格漲跌的內(nèi)因上。記為WE(Window Energy)。
其中,k值根據(jù)訓(xùn)練案例中在K_energy和QS_energy均不為0的情況下的案例進(jìn)行學(xué)習(xí),保證在僅考慮WE一個(gè)因素時(shí)能達(dá)到全局最優(yōu)。
(2)基于窗口能量的BP神經(jīng)網(wǎng)絡(luò)算法
基于窗口能量的BP神經(jīng)網(wǎng)絡(luò)(BP Neural Networks with Window Energy,WE-BPNN)算法的基本思想是:先對(duì)水平窗口內(nèi)的K線組合能量進(jìn)行計(jì)算,然后計(jì)算水平窗口位置的均線組合能量,進(jìn)而將兩種能量融合為窗口能量,并結(jié)合窗口活躍度AC和均線斜率qs10、qs20、qs30和均線對(duì)收盤價(jià)的相對(duì)位置 MA10,rp、MA20,rp、MA30,rp離散化后的數(shù)值作為BP網(wǎng)絡(luò)的輸入。
算法過程可以描述為:
步驟1輸入一段股指走勢,包括4價(jià)2量以及均線數(shù)據(jù)。
步驟2按照2.1節(jié)中方法計(jì)算均線斜率qs5、qs10、qs20、qs30、qs60和3.2節(jié)中方法計(jì)算均線相對(duì)收盤價(jià)位置 MA5,rp、MA10,rp、MA20,rp、MA30,rp、MA60,rp,公式(2)中的 m 分別取值為1,2,2,3,5并根據(jù)公式(3)劃分短期趨勢并平滑。
步驟3并按2.2節(jié)中步驟生成水平窗口,并記錄短期5日內(nèi)趨勢選擇T。
步驟4遍歷水平窗口內(nèi)的K線特征,得出窗口的K線能量值K_energy。
步驟5根據(jù)3.2節(jié)中均線組合能量計(jì)算模型計(jì)算水平窗口近期交易日的均線組合能量。
步驟6通過3.3節(jié)中方法確定公式(7)中最優(yōu)k值,并根據(jù)公式(7)計(jì)算窗口能量WE。
步驟7對(duì)步驟2計(jì)算qs10、qs20、qs30和 MA10,rp、MA20,rp、MA30,rp數(shù)值離散化處理,并計(jì)算當(dāng)前窗口的活躍性指標(biāo)AC并進(jìn)行數(shù)值離散化。
步驟8將步驟6、步驟7計(jì)算得到的訓(xùn)練樣本數(shù)據(jù)的 qs10、qs20、qs30、MA10,rp、MA20,rp、MA30,rp、AC 、WE值和T分別作為BP神經(jīng)網(wǎng)絡(luò)的輸入和輸出進(jìn)行學(xué)習(xí),根據(jù)誤差對(duì)比確定合適的隱節(jié)點(diǎn)個(gè)數(shù)。
步驟9將測試樣本數(shù)據(jù)代入模型,輸出在WE-BPNN算法下水平窗口下短期走勢的預(yù)測值。
由于能量對(duì)于趨勢的作用具有滯后性,存在能量蓄而不發(fā)的情況,會(huì)影響到趨勢判斷的準(zhǔn)確性,因而在WE-BPNN算法的基礎(chǔ)上引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)(BP Neural Networks with Energy Factors,EFBPNN)算法,動(dòng)態(tài)調(diào)整窗口能量對(duì)于趨勢預(yù)測的影響權(quán)重,動(dòng)態(tài)調(diào)整窗口能量對(duì)于趨勢預(yù)測算法的誤差函數(shù)的懲罰項(xiàng)。
目前處在水平位置,上漲能量積累夠了,不上漲保持水平趨勢;或者下跌能量積累夠了,不下跌保持水平趨勢,在實(shí)際中,這種情況出現(xiàn)的頻率是很高的,一般的BP算法學(xué)習(xí)這類案例之后會(huì)使降低對(duì)窗口能量的靈敏度,會(huì)嚴(yán)重影響算法的準(zhǔn)確率。上漲蓄勢,卻下跌。現(xiàn)實(shí)中會(huì)存在這種情況,一般是極端情況,發(fā)生的頻率很低,不會(huì)影響到算法的總體效果。
輸出層實(shí)際值Tk有三種取值:1、0、-1,預(yù)測值Ok為連續(xù)值。由于數(shù)據(jù)的對(duì)稱性,首先需要確定一個(gè)閥值m,并根據(jù) -m和m將Ok劃分成三部分;實(shí)驗(yàn)從0.1到0.9之間每隔0.05取17個(gè)值進(jìn)行模擬,實(shí)驗(yàn)表明m=0.5時(shí)預(yù)測值的劃分與實(shí)際值吻合度最高,達(dá)到74%。因而,映射關(guān)系函數(shù)可表示為:
對(duì)窗口能量WE(Window Energy)進(jìn)行符號(hào)化離散處理:
對(duì)于能量蓄勢卻趨勢滯后的這類情況,取一個(gè)較小的能量調(diào)節(jié)因子;當(dāng)預(yù)測趨勢與實(shí)際趨勢一致時(shí),取一個(gè)中等的值;另外當(dāng)預(yù)測趨勢與實(shí)際趨勢不一致時(shí),能量調(diào)節(jié)因子取一個(gè)較大值。則代價(jià)函數(shù)取為:
能量調(diào)節(jié)因子 fmain()k取值條件為:
其中a>b>c。
然后通過用新的代價(jià)函數(shù)E′l分別對(duì)輸出層結(jié)點(diǎn)權(quán)值和隱層結(jié)點(diǎn)權(quán)值求導(dǎo)來修正權(quán)值,用代價(jià)函數(shù)對(duì)輸出層結(jié)點(diǎn)閾值和隱層結(jié)點(diǎn)閾值求導(dǎo)來修正閾值。
另外對(duì)于連續(xù)時(shí)間段內(nèi)相鄰水平窗口相對(duì)能量不斷增大但卻仍未選擇趨勢方向的情況下,在對(duì)窗口能量符號(hào)化的同時(shí),對(duì)算法輸出值增加一個(gè)能量蓄勢的修正值xz。
算法主要思想是:在WE-BPNN算法的基礎(chǔ)上引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)(EF-BPNN)算法,動(dòng)態(tài)調(diào)整窗口能量對(duì)于趨勢預(yù)測的影響權(quán)重。
引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)算法(EF-BPNN)算法描述如下:
步驟1輸入一段股指走勢,包括4價(jià)2量以及均線數(shù)據(jù)。
步驟2按照2.1節(jié)中方法計(jì)算均線斜率qs5、qs10、qs20、qs30、qs60和3.2節(jié)中方法計(jì)算均線相對(duì)收盤價(jià)位置 MA5,rp、MA10,rp、MA20,rp、MA30,rp、MA60,rp,公式(2)中的 m 分別取值為1,2,2,3,5.并根據(jù)公式(3)劃分短期趨勢并平滑。
步驟3并按2.2節(jié)中步驟生成水平窗口,并記錄短期5日內(nèi)趨勢選擇T。
步驟4遍歷水平窗口內(nèi)的K線特征,得出窗口的K線能量值K_energy。
步驟5根據(jù)3.2節(jié)中均線組合能量計(jì)算模型計(jì)算水平窗口近期交易日的均線組合能量。
步驟6通過3.3節(jié)中方法確定公式(7)中最優(yōu)k值,并根據(jù)公式(7)計(jì)算窗口能量WE。
步驟7對(duì)步驟2計(jì)算qs10、qs20、qs30和 MA10,rp、MA20,rp、MA30,rp數(shù)值離散化處理,并計(jì)算當(dāng)前窗口的活躍性指標(biāo)AC并進(jìn)行數(shù)值離散化。
步驟8將步驟6、步驟7計(jì)算得到的訓(xùn)練樣本數(shù)據(jù)的 qs10、qs20、qs30、MA10,rp、MA20,rp、MA30,rp、AC、WE值和T分別作為BP神經(jīng)網(wǎng)絡(luò)的輸入和輸出進(jìn)行學(xué)習(xí),根據(jù)誤差對(duì)比確定合適的隱節(jié)點(diǎn)個(gè)數(shù)bn;再把實(shí)驗(yàn)數(shù)據(jù)作為引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)的輸入和輸出進(jìn)行學(xué)習(xí),隱節(jié)點(diǎn)個(gè)數(shù)取bn,根據(jù)誤差對(duì)比確定最優(yōu)的能量調(diào)節(jié)因子中a、b、c的值。
步驟9將測試樣本數(shù)據(jù)代入模型,并對(duì)能量蓄勢但趨勢未變的情況下修正網(wǎng)絡(luò)的輸出值。輸出在EFBPNN算法下水平窗口下短期走勢的預(yù)測值。
取上證指數(shù)2004年10月9日到2010年11月18日,1 000個(gè)交易日中出現(xiàn)的水平窗口共120個(gè),作為學(xué)習(xí)樣本;2010年11月19日到2010年2月5日間300個(gè)交易日中出現(xiàn)的水平窗口共36個(gè),作為測試樣本。
為消除輸入數(shù)據(jù)間數(shù)量級(jí)的差別,避免出現(xiàn)因變量數(shù)量級(jí)差別較大而造成模型預(yù)測誤差較大的現(xiàn)象,對(duì)輸入向量利用線性函數(shù)轉(zhuǎn)化法進(jìn)行了歸一化處理。
主要選取均方誤差(MSE)、平均絕對(duì)誤差(MAE)和命中率(Hit_rate)對(duì)神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果進(jìn)行度量。如公式(11)~(13)所示。
均方誤差MSE:
平均絕對(duì)誤差MAE:
n表示預(yù)測集的樣本個(gè)數(shù),y是實(shí)際值,y′是預(yù)測值,MSE,MAE用來表示預(yù)測值偏離實(shí)際值的大小,值越小則偏離度越小,表明預(yù)測結(jié)果的精確度越高,Hit_rate用來表示趨勢預(yù)測的正確率,值越大表明預(yù)測結(jié)果對(duì)于趨勢的預(yù)測準(zhǔn)確度越高。
命中率Hit_rate:
經(jīng)過大量實(shí)驗(yàn)驗(yàn)證,隱層為5個(gè)預(yù)測誤差最小,故采取8-5-1網(wǎng)絡(luò)結(jié)構(gòu),并在此基礎(chǔ)上,能量調(diào)節(jié)因子a=2,b=1,c=0.2的組合預(yù)測效果誤差更小。神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速率η為0.05,最大迭代次數(shù)1 000,控制精度0.001。以下結(jié)果在此參數(shù)下訓(xùn)練得出。
為體現(xiàn)窗口能量的有效性,添加兩組實(shí)驗(yàn),一組不考慮K線能量和均線組合能量,僅通過窗口所在的均線和量能情況通過BP神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)預(yù)測,記為BPNN算法;另一組未考慮均線組合能量的實(shí)驗(yàn),把K線能量代替窗口能量作為WE-BPNN算法的輸入,稱之為基于K線能量的BP神經(jīng)網(wǎng)絡(luò)算法(KE-BPNN)。
圖8至圖11分別為BPNN、KE-BPNN、WE-BPNN、EF-BPNN算法的預(yù)測結(jié)果,從這些圖中可以看出以上算法預(yù)測值與實(shí)際值不吻合的預(yù)測點(diǎn)依次有22、17、13、9個(gè)。具體實(shí)驗(yàn)結(jié)果對(duì)比如表7。
圖8 BPNN算法的預(yù)測結(jié)果
圖9 KE-BPNN算法的預(yù)測結(jié)果
圖10WE-BPNN算法的預(yù)測結(jié)果
圖11 EF-BPNN算法的預(yù)測結(jié)果
表7 實(shí)驗(yàn)算法對(duì)比表
通過表7可知,相對(duì)于BPNN算法,KE-BPNN算法的命中率高且誤差要小,說明了引入K線能量的有效性。同時(shí),從命中率和誤差角度,WE-BPNN算法性能優(yōu)于KE-BPNN算法,說明進(jìn)一步引入窗口能量能顯著提升算法性能。EF-BPNN算法性能優(yōu)于WE-BPNN算法,表明能量調(diào)節(jié)因子的引入,能提升算法效果。
從圖12中可以看出本文的短線趨勢劃分相對(duì)實(shí)際走勢模擬得很好,從而也進(jìn)一步說明了短線趨勢預(yù)測的重要性。本文的測試區(qū)間內(nèi)的25個(gè)窗口轉(zhuǎn)上漲或下跌趨勢中,20個(gè)窗口的預(yù)測趨勢與未來5日趨勢相符,命中率80%;11個(gè)窗口繼續(xù)水平震蕩趨勢中,7個(gè)窗口的預(yù)測趨勢與未來5日趨勢相符,命中率64%;綜合命中率為75%,可以說明本文的EF-BPNN算法預(yù)測效果很好,尤其對(duì)于水平窗口轉(zhuǎn)為上漲或下跌趨勢的預(yù)測。
圖12 EF-BPNN算法預(yù)測趨勢圖
本文將EF-BPNN算法與股票狀態(tài)演示圖算法[14]做對(duì)比實(shí)驗(yàn),針對(duì)相同的分析區(qū)間,找出上證綜合指數(shù)在2010年1月4日至2011年9月30日區(qū)間中的所有水平窗口,使用EF-BPNN算法進(jìn)行模擬,共有23組水平窗口做出趨勢轉(zhuǎn)折判斷。EF-BPNN趨勢預(yù)測的算法結(jié)果如圖13所示。表8左半部分為股票狀態(tài)演示圖算法在同一測試區(qū)間內(nèi)的所有預(yù)測結(jié)果,右半部分為EFBPNN算法預(yù)測結(jié)果;其中,上漲趨勢記為1,下跌趨勢記為-1。
圖13 EF-BPNN算法趨勢預(yù)測圖
由表8可知股票狀態(tài)演示圖算法中的綜合識(shí)別效果一共發(fā)現(xiàn)12個(gè)趨勢轉(zhuǎn)折點(diǎn),預(yù)測正確10個(gè),命中率在83.3%。EF_BPNN算法一共發(fā)現(xiàn)了23個(gè)趨勢轉(zhuǎn)折點(diǎn),覆蓋對(duì)比算法的所有轉(zhuǎn)折點(diǎn);對(duì)于共同發(fā)現(xiàn)的趨勢轉(zhuǎn)折點(diǎn),EF-BPNN算法預(yù)測準(zhǔn)確率與對(duì)比算法相同,也為83.3%。然而,EF-BPNN算法所發(fā)現(xiàn)的總量為23個(gè),比對(duì)比算法多出近一倍,23個(gè)的預(yù)測綜合命中率為82.6%。本文算法比對(duì)比算法能找到更多,且總體準(zhǔn)確率基本不降低,從而體現(xiàn)EF-BPNN算法更為適用短期趨勢預(yù)測。同時(shí),論文的相關(guān)工作已應(yīng)用于宏大數(shù)據(jù)網(wǎng)(www.ihdsj.com)的股市智能預(yù)警系統(tǒng)中。
基于股市中趨勢轉(zhuǎn)化存在漸變性,提出基于短期均線斜率劃分當(dāng)前短期趨勢的方法,基于對(duì)水平趨勢情況下的短期趨勢方向預(yù)測的問題,量化分析K線組合能量和均線組合能量,提出一種水平窗口趨勢預(yù)測的BP神經(jīng)網(wǎng)絡(luò)算法(WE-BPNN)。針對(duì)能量對(duì)于趨勢的作用具有滯后性,在WE-BPNN算法的基礎(chǔ)上給出引入能量調(diào)節(jié)因子的BP神經(jīng)網(wǎng)絡(luò)(EF-BPNN)算法,動(dòng)態(tài)調(diào)整窗口能量因子對(duì)于趨勢預(yù)測的影響權(quán)重。
表8 算法預(yù)測對(duì)比結(jié)果
[1]韓豫峰,汪雄劍,周國富,等.中國股票市場是否存在趨勢?[J].金融研究,2014:152-163.
[2]李莎,李紅剛.股票市場中技術(shù)分析有效性的實(shí)證研究[J].北京師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009(2):212-214.
[3]Wu C M,Chou S C,Liaw H T.A trend based investment decision approach using clustering and heuristic algorithm[J].Science China Information Sciences,2014,57(9):1-14.
[4]Zhang D,Wu B,Hua X,et al.Forecasting short-term trends of stock markets based on fuzzy frequent pattern tree[M]//Advanced data mining and applications.Berlin Heidelberg:Springer,2010:611-617.
[5]Quan Z Y.Stock prediction by searching similar candlestick charts[C]//IEEE International Conference on Data Engineering Workshops,2013:322-325.
[6]Prado H A D,F(xiàn)erneda E,Morais L C R,et al.On the effectiveness of candlestick chart analysis for the brazilian stock market[J].Procedia Computer Science,2013,22:1136-1145.
[7]Lee K H,Jo G S.Expert system for predicting stock market timing using a candlestick chart[J].Expert Systems with Applications,1999,16(4):357-364.
[8]趙建,鄔永革.基于神經(jīng)網(wǎng)絡(luò)的股市預(yù)測[J].計(jì)算機(jī)研究與發(fā)展,1996,33(9):692-697.
[9]姜靜清,梁艷春,孫延風(fēng),等.引入收益因素的RBF神經(jīng)網(wǎng)絡(luò)及其應(yīng)用[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2002,20(3):68-72.
[10]曾明,魏衍.一種BP神經(jīng)網(wǎng)絡(luò)改進(jìn)算法的研究及應(yīng)用[J].微計(jì)算機(jī)信息,2009(18):193-195.
[11]Rhea R.The dow theory:An explanation of its development and an attempt to define its usefulness as an aid in speculation[M].[S.l.]:Fraser Publishing Company,1993.
[12]Lee C H L,Liaw Y C,Hsu L.Investment decision making by using fuzzy candlestick pattern and genetic algorithm[C]//2011 IEEE International Conference on Fuzzy Systems(FUZZ),2011:2696-2701.
[13]王浩,李國歡,姚宏亮,等.基于影響力計(jì)算模型的股票網(wǎng)絡(luò)社團(tuán)劃分方法[J].計(jì)算機(jī)研究與發(fā)展,2014,51(10):2137-2147.
[14]胡珉,孫瑜峰.基于狀態(tài)演化的股市變化趨勢可視化預(yù)測方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2014,26(2):302-313.
LIU Yuguo,WANG Hao,YAO Hongliang,LI Junzhao
School of Computer and Information,Hefei University of Technology,Hefei 230009,China
Stock market trend prediction algorithm based on energy calculation of horizontal window.Computer Engineering and Applications,2017,53(21):225-232.
Horizontal trend lasts for a short time,and the uncertainty of its direction changes is huge,so it becomes hard to forecast the direction of horizontal condition’s trend in Stock Market trend prediction.Based on the energy calculation of Horizontal window,BP neural network algorithm(WE-BPNN)is presented for predicting Horizontal window trend.Firstly,the division standard for short-term trend is given,on the basis of which this paper comes up with definitions of horizontal window.Then,by calculating the energy of K-line combination and moving average combination,two types of energy are merged into window energy.At last,leading the window energy into the direction of BP neural network to predict window trend.Because of hysteresis of energy’s influences on the trend,there is a case that energy accumulated while trend not changes,it will affect the accuracy of the trend prediction.Thus,basing on WE-BPNN neural network algorithm energy regulator is led into BP neural network algorithm(EF-BPNN),weights of window energy are dynamically adjusted for the trend prediction.On the Shanghai Stock’s data,the experimental results show that EF-BPNN algorithm has better performance.
energy window;K-line features;BP neural network;horizontal trend
A
TP399
10.3778/j.issn.1002-8331.1605-0258
國家自然科學(xué)基金(No.61175051,No.61175033);國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(973計(jì)劃)(No.2013CB329604)。
劉裕國(1992—),男,碩士,主要研究方向?yàn)槿斯ぶ悄芘c知識(shí)工程;王浩(1962—),男,博士,教授,計(jì)算機(jī)學(xué)會(huì)高級(jí)會(huì)員,主要研究方向?yàn)槿斯ぶ悄埽灰炅粒?972—),男,博士,副教授,計(jì)算機(jī)學(xué)會(huì)會(huì)員,主要研究方向?yàn)槿斯ぶ悄芎椭R(shí)工程,E-mail:dmicyhl@163.com;李俊照(1975—),男,博士,講師,主要研究方向?yàn)闄C(jī)器學(xué)習(xí)與人工智能。
2016-05-18
2016-07-05
1002-8331(2017)21-0225-08
CNKI網(wǎng)絡(luò)優(yōu)先出版:2016-12-14,http://www.cnki.net/kcms/detail/11.2127.TP.20161214.1122.004.html