【摘要】本文建立基于粒子群優(yōu)化(PSO)的支持向量機(jī)(SVR),實(shí)現(xiàn)對(duì)期貨價(jià)格的有效預(yù)測(cè)。首先選取代表性的技術(shù)指標(biāo)、收盤價(jià)和成交量作為樣本特征集,以下一時(shí)刻的收盤價(jià)作為輸出變量。然后通過粒子群優(yōu)化算法尋找最優(yōu)的懲罰因子和RBF函數(shù)的寬度參數(shù),在此基礎(chǔ)上建立支持向量機(jī)模型,并用樣本集進(jìn)行訓(xùn)練。最終仿真結(jié)果顯示基于粒子群算法的支持向量機(jī)模型具有學(xué)習(xí)精度高、泛化能力較強(qiáng)的性質(zhì),可用于期貨價(jià)格的短期預(yù)測(cè)。
【關(guān)鍵詞】粒子群優(yōu)化算法 支持向量機(jī) 技術(shù)指標(biāo) 價(jià)格預(yù)測(cè)
一、引言
自2000年開始,中國的期貨市場(chǎng)快速騰飛,一方面期貨的交易量在不斷增加:從2000年的5462.07萬手的年成交量到2012年的14.5億萬手;另一方面期貨的品種也在不斷豐富:從商品期貨的橡膠、塑料等到現(xiàn)在關(guān)注度較高的金融期貨如國債期貨、股指期貨等。作為重要的衍生產(chǎn)品,期貨合約交易已經(jīng)成為現(xiàn)今人們套期保值、套利以及為市場(chǎng)價(jià)格發(fā)現(xiàn)的重要渠道。而對(duì)于參與期貨交易的投資者而言,未來價(jià)格的預(yù)測(cè)無疑是構(gòu)建投資策略最關(guān)鍵的依據(jù)。目前常用的預(yù)測(cè)方法有:定性預(yù)測(cè)、時(shí)間序列預(yù)測(cè)、回歸預(yù)測(cè)、馬爾科夫預(yù)測(cè)、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)和支持向量機(jī)預(yù)測(cè)等。由于期貨市場(chǎng)是一個(gè)極度復(fù)雜的非線性系統(tǒng),傳統(tǒng)線性方法的預(yù)測(cè)效果受到比較大的限制。而基于統(tǒng)計(jì)學(xué)習(xí)理論的支持向量機(jī)是一種可以實(shí)現(xiàn)非線性擬合的重要數(shù)學(xué)工具,它具有結(jié)構(gòu)風(fēng)險(xiǎn)最小化、泛化能力較強(qiáng)、對(duì)數(shù)據(jù)維數(shù)限制低以及有效避免局部解等優(yōu)點(diǎn)[1]。本文作者運(yùn)用基于粒子群優(yōu)化方法的支持向量機(jī)對(duì)期貨中的螺紋鋼合約價(jià)格進(jìn)行預(yù)測(cè)。仿真結(jié)果顯示用基于粒子群算法的支持向量機(jī)對(duì)期貨進(jìn)行預(yù)測(cè)學(xué)習(xí)精度較高,誤差較小,而且泛化能力較強(qiáng),具有一定可行性。
二、支持向量機(jī)模型
為使支持向量機(jī)可以實(shí)現(xiàn)函數(shù)擬合,Vapnik等人引入了損失函數(shù)[2],進(jìn)而得到了回歸型的支持向量機(jī),簡(jiǎn)稱SVR。
對(duì)樣本集(xi,yi),xi∈Rn,yi∈R,i=1,…,n。設(shè)回歸函數(shù)為:
求解最優(yōu)面使訓(xùn)練樣本離該最優(yōu)面的誤差最小,即求解下列函數(shù)的最優(yōu)解:
其中C為懲罰因子,C越大表示對(duì)訓(xùn)練誤差的懲罰越重;ξ*i,ξi為松弛變量。ε為回歸函數(shù)的誤差要求,其越小表示回歸函數(shù)的誤差越小。求解這個(gè)最優(yōu)化問題我們同樣引入Lagrange函數(shù):
求解得到:
最后我們?cè)诎焉鲜酱隠函數(shù)表達(dá)式利用最小二乘法得到非線性預(yù)測(cè)的表達(dá)式為:
其中k(x,xi)為核函數(shù),本文選取的是RBF函數(shù):k(x,xi)=exp(-γ||x-xi||2)。在這個(gè)模型中,懲罰因子C和RBF函數(shù)中的寬度參數(shù)γ是需要事先確定的。C選擇過大的話,學(xué)習(xí)精度固然提高,但模型的泛化能力會(huì)惡化;而γ的選擇則涉及向量間聯(lián)系的緊密程度[3]。本文利用粒子群算法對(duì)其進(jìn)行選擇。
三、粒子群優(yōu)化
粒子群優(yōu)化由電氣工程師Kennedy和社會(huì)學(xué)家Eberhart[4]受群鳥覓食的現(xiàn)象啟發(fā)而提出。粒子群里的每個(gè)粒子代表問題的一個(gè)潛在解,適應(yīng)度函數(shù)決定每一個(gè)粒子的適應(yīng)度值,速度決定粒子移動(dòng)的方向以及距離,而且速度是根據(jù)每個(gè)粒子自己以及群內(nèi)其他粒子的移動(dòng)經(jīng)驗(yàn)進(jìn)行修改,最終實(shí)現(xiàn)可解空間內(nèi)的尋優(yōu)[5]。
粒子群算法的基本步驟為:
1.初始化群體、慣性系數(shù)、加速度、最大迭代速度和最小誤差。
2.計(jì)算初始適應(yīng)值并將其作為粒子的初始局部最優(yōu)值。
3.將初始適應(yīng)值中的最大值當(dāng)作全局最優(yōu)值。
4.更新速度。
5.更新粒子位置。
6.比較新粒子適應(yīng)值和個(gè)體極值、群體極值,并且更新個(gè)體極值和群體極值。
7.重復(fù)以上步驟直至終止條件滿足。
8.輸出結(jié)果。
其中,速度和位置的更新公式為:
四、技術(shù)指標(biāo)
投資者為獲取市場(chǎng)某方面信息而在價(jià)格、成交量和持倉量的基礎(chǔ)上建立數(shù)學(xué)模型,通過公式計(jì)算得到反映市場(chǎng)某方面狀況的數(shù)字,這就是指標(biāo)值。指標(biāo)值的種類繁多,大致可以分為大勢(shì)型”、“超買超賣型”、“趨勢(shì)型”、“能量型”、“成交量型”、“均線型”、“圖表型”、“選股型”、“路徑型”、“停損型”等十大類型。這些指標(biāo)值能有效提煉出反映市場(chǎng)情況的各種信息,作為預(yù)測(cè)模型中的解釋變量具有一定的合適性。在本文中,MA、MACD、EXPMA、OBJ和VROC這五個(gè)指標(biāo)被包括進(jìn)支持向量機(jī)的輸入變量中。以下對(duì)這五個(gè)指標(biāo)作簡(jiǎn)要的介紹:
(一)MA(移動(dòng)平均線)
由投資專家Joseph E.Granbille提出,它幫助交易者確認(rèn)現(xiàn)有趨勢(shì)以及判斷未來即將出現(xiàn)的趨勢(shì)。計(jì)算公式為:
其中:p為滯后k期的價(jià)格;n為滯后期數(shù);t為時(shí)間。
(二)MACD(指數(shù)平滑異同平均線)和EXPMA(指數(shù)移動(dòng)平均)
當(dāng)MACD由負(fù)數(shù)轉(zhuǎn)向正數(shù),是買的信號(hào)。當(dāng)MACD由正數(shù)轉(zhuǎn)向負(fù)數(shù),是賣的信號(hào)。計(jì)算公式為[6]:
而EXPMA是為了解決普通移動(dòng)平均線指標(biāo)的滯后性問題而開發(fā)出的改進(jìn)指標(biāo)。根據(jù)Matlab中demo對(duì)金融工具箱的說明,MACD和EXPMA(9)組合使用可幫助判斷買入或賣出信號(hào)。
(三)OBV(能量潮)
能量潮是將成交量數(shù)量化,從價(jià)格的變動(dòng)及成交量的增減,推斷市場(chǎng)的氣氛。計(jì)算公式為:
(四)VROC(量變動(dòng)速率)
以當(dāng)期成交量與N期前的成交量作比較,通過計(jì)算成交量的變動(dòng)幅度來分析成交量的發(fā)展趨勢(shì)及其未來是否有轉(zhuǎn)勢(shì)的傾向。計(jì)算公式為:
五、實(shí)證研究
出于隔夜風(fēng)險(xiǎn)的考慮,目前很多投資者在期貨投資中都選擇進(jìn)行日內(nèi)交易,而且現(xiàn)在高頻數(shù)據(jù)也容易獲得,所以本文將采用以15分鐘為間隔的高頻數(shù)據(jù)。原始數(shù)據(jù)集為2013.7.16 11:00到2013.8.13 10:51以15分鐘為間隔的螺紋鋼合約的開盤價(jià)、收盤價(jià)、最高價(jià)、最低價(jià)和成交量的數(shù)據(jù)共300個(gè)(數(shù)據(jù)源于文華財(cái)經(jīng)贏順軟件),將數(shù)據(jù)按順序1—300編號(hào)。根據(jù)指標(biāo)公式計(jì)算相應(yīng)各時(shí)間點(diǎn)的MA(4)、MA(10)、MACD、EXPMA(9)OBV和VROC(4)。由于在數(shù)據(jù)集范圍內(nèi),部分1—35之間的數(shù)據(jù)無法對(duì)應(yīng)相應(yīng)的指標(biāo)數(shù)字。因此本文取第41—260共220個(gè)收盤價(jià)作為訓(xùn)練目標(biāo)集合,取第261—300共40個(gè)收盤價(jià)作為測(cè)試目標(biāo)集合。另外,設(shè)定輸入向量為:滯后兩期的收盤價(jià)以及成交量、滯后一期的五個(gè)指標(biāo)的數(shù)值,具體見表一。因此在本模型中輸入向量的維數(shù)是10,輸出向量維數(shù)為1。以下對(duì)模型步驟作大概的介紹:為了去除不同量綱的影響,需要先對(duì)數(shù)據(jù)進(jìn)行歸一化的處理,在這里我們采用的是matalab里的premnmx函數(shù)。然后根據(jù)粒子群算法尋找最優(yōu)的懲罰因子C以及RBF參數(shù),在本粒子群算法中,各參數(shù)初始值如表二所示,訓(xùn)練情況如圖一所示:
表一 支持向量機(jī)的輸入和輸出變量
圖一 粒子群算法的訓(xùn)練情況
用粒子群算法中輸出的最優(yōu)值結(jié)果作為參數(shù)建立支持向量機(jī)模型并以訓(xùn)練樣本集合為輸入變量,訓(xùn)練目標(biāo)集合為輸出向量對(duì)支持向量機(jī)模型進(jìn)行訓(xùn)練。用訓(xùn)練后的支持向量機(jī),對(duì)訓(xùn)練樣本進(jìn)行模擬。在這里作者應(yīng)用了由臺(tái)灣大學(xué)林智仁教授開發(fā)的支持向量機(jī)工具包libsvm里的svmtrain和svmpredict來對(duì)支持向量機(jī)進(jìn)行模擬和預(yù)測(cè)。模擬輸出值與真實(shí)值之間的對(duì)比效果如圖二所示,可見支持向量機(jī)的擬合效果較好。為了研究模型的泛化能力,將40個(gè)測(cè)試樣本輸入到已經(jīng)過訓(xùn)練的支持向量機(jī)模型中,并且比較新樣本條件下支持向量機(jī)的預(yù)測(cè)能力和誤差。測(cè)試樣本的模擬輸出值和真實(shí)值的對(duì)比如圖三所示,前20個(gè)輸出值和真實(shí)值的差值如表三所示,較小的差值說明本模型的預(yù)測(cè)能力比較強(qiáng)。
六、結(jié)果分析
本文以五種技術(shù)指標(biāo)和前兩期的收盤價(jià)、成交量為輸入變量,利用基于粒子群優(yōu)化算法的支持向量機(jī)對(duì)螺紋鋼期貨合約的收盤價(jià)格進(jìn)行了預(yù)測(cè)。仿真結(jié)果顯示粒子群算法在43次迭代的時(shí)候收斂,有效地獲取最優(yōu)參數(shù)C和γ。所建立的支持向量機(jī)中訓(xùn)練樣本的模擬值和真實(shí)值的差別較小,說明模型的學(xué)習(xí)精度較高。另外測(cè)試樣本的模擬值和真實(shí)值的差值在短期內(nèi)較小,體現(xiàn)出模型具有一定的泛化能力,可有效地用于期貨價(jià)格的短期預(yù)測(cè)。
參考文獻(xiàn)
[1]李云飛,惠曉峰.基于支持向量機(jī)的股票投資價(jià)值分類研究[J].中國軟科學(xué),2008,1.
[2]Vapnik V N.The nature of statistical learning theory [M]. Macmillan,1994.
[3]熊偉麗,徐保國.粒子群算法在支持向量機(jī)參數(shù)選擇優(yōu)化中的應(yīng)用.2007中國控制與決策學(xué)術(shù)年會(huì)論文集[C],2007.
[4]Kennedy J,Eberhart R C.Particle swarm optimization[J].Proc IEEE Int’1 Conf on Neural Networks.Piscaraway:IEEE Service Center,1995.
[5]史峰,王輝,郁磊,胡斐.MATLAB智能算法30個(gè)案例分析[M].北京航空航天大學(xué)出版社,2011.
[6]張玉川,張作泉.支持向量機(jī)在股票價(jià)格預(yù)測(cè)中的應(yīng)用[J].北京交通大學(xué)學(xué)報(bào),2007,12.
作者簡(jiǎn)介:李嶠志(1992-),男,漢族,廣東廣州人,學(xué)士,研究方向:金融工程及金融數(shù)學(xué)。