張德江,程習(xí)武,梁元浩,劉元梓(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
ZHANG De-jiang,CHENG Xi-wu,LIANG Yuan-hao,LIU Yuan-zi(College of Computer Science,Sichuan University,Chengdu 610065)
基于GA-SVM的股指期貨預(yù)測(cè)研究
張德江,程習(xí)武,梁元浩,劉元梓
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
股指期貨交易市場(chǎng)瞬息萬(wàn)變,投資人希望達(dá)到效益最大化,而其首先必須做到的就是對(duì)預(yù)定交易時(shí)刻指數(shù)的準(zhǔn)確預(yù)測(cè)。但是目前大部分股指期貨預(yù)測(cè)存在以下一些不足:一是各項(xiàng)預(yù)測(cè)以股指期貨的技術(shù)指標(biāo)作為基礎(chǔ)數(shù)據(jù),脫離交易本身所產(chǎn)生的交易信息進(jìn)行預(yù)測(cè);二是以反轉(zhuǎn)點(diǎn)等指標(biāo)作為預(yù)測(cè)目的,而不是直接對(duì)指數(shù)進(jìn)行預(yù)測(cè);三是使用默認(rèn)參數(shù)的支持向量機(jī)對(duì)股指期貨指數(shù)進(jìn)行預(yù)測(cè),效果不理想。
針對(duì)以上若干問(wèn)題,本文采用某證券期貨交易公司所提供的2010年4月16日至2014年3月4日的近3000萬(wàn)條滬深300股指期貨成交明細(xì)數(shù)據(jù),在對(duì)大量交易信息進(jìn)行一系列數(shù)據(jù)處理后,使用GA-SVM進(jìn)行回歸預(yù)測(cè)研究。
本實(shí)驗(yàn)的設(shè)計(jì)思路即為針對(duì)前文提出的幾大不足做出改進(jìn),一是輸入數(shù)據(jù)采用交易本身信息,如買(mǎi)賣(mài)價(jià)格,成交價(jià)格等;二是以股指期貨的指數(shù)作為預(yù)測(cè)的目標(biāo);三是對(duì)SVM進(jìn)行參數(shù)優(yōu)化,達(dá)到最優(yōu)預(yù)測(cè)。實(shí)驗(yàn)設(shè)計(jì)思路如圖1所示。
圖1 實(shí)驗(yàn)流程圖
2.1原始數(shù)據(jù)采集
本文所采用的數(shù)據(jù)是由某證券公司提供的2010 年4月16日至2014年3月4日的滬深300股指期貨當(dāng)月合約TICK數(shù)據(jù),通常也被稱作股指期貨當(dāng)月合約成交明細(xì)數(shù)據(jù)。根據(jù)實(shí)驗(yàn)的需求,對(duì)上述的原始數(shù)據(jù)集進(jìn)行了加工提取。選取每天最后一個(gè)TICK數(shù)據(jù),即每天15:15:00的第二個(gè)TICK數(shù)據(jù)作為一天的收盤(pán)情況。從2010年4月16日至2014年3月4日,共取得924條數(shù)據(jù)。如表1所示。
成交價(jià)、當(dāng)前價(jià):表示目前交易成交時(shí)刻的最新價(jià)格(在本數(shù)據(jù)集中,兩者相等)。其中,成交價(jià)即是所謂股指期貨的“指數(shù)”,也是本文預(yù)測(cè)的目標(biāo)。
表1 日數(shù)據(jù)集樣例
表2 交易數(shù)據(jù)
買(mǎi)一量、賣(mài)一量:表示目前交易的掛單情況,單位為手。
買(mǎi)一價(jià)、賣(mài)一價(jià):表示完成對(duì)應(yīng)交易所需要支付的每手單價(jià)。
成交量:表示持續(xù)至當(dāng)前時(shí)刻為止的成交總量。
持倉(cāng)量:表示買(mǎi)賣(mài)雙方未平合約的總量。持倉(cāng)量能夠反映市場(chǎng)上看多看空力量的大小、變化,以及多空力量的更新情況。
2.2輸入樣本選取
在本文實(shí)驗(yàn)數(shù)據(jù)集之中,共有10個(gè)維度的數(shù)據(jù)。其中,成交價(jià)是回歸預(yù)測(cè)的目標(biāo)變量。另外,對(duì)于日期與時(shí)間兩個(gè)維度的數(shù)據(jù),直接認(rèn)定它們與成交價(jià)呈不相關(guān)關(guān)系。當(dāng)前價(jià)與成交價(jià)完全相等,因此這個(gè)維度的信息也應(yīng)該排除。有效變量的維度縮小到6維。令:
X=<買(mǎi)一價(jià);買(mǎi)一量;賣(mài)一價(jià);賣(mài)一量;成交量;持倉(cāng)量>
Y=<成交價(jià)>。
因此回歸模型的基本形式為:
<成交價(jià)>=f(<買(mǎi)一價(jià);買(mǎi)一量;賣(mài)一價(jià);賣(mài)一量;成交量;持倉(cāng)量>)
假設(shè)數(shù)據(jù)集的最小時(shí)間間隔為t,即對(duì)于原始數(shù)據(jù)集,對(duì)于日數(shù)據(jù)集,t的長(zhǎng)度為一天。那么:
對(duì)于模型Yt=f(Xt),顯然只具有數(shù)學(xué)上的意義。由于f的映射過(guò)程需要一定時(shí)間的消耗,所以該模型僅僅有“回歸”的作用,而起不到“預(yù)測(cè)”的效果。
因此,一個(gè)有意義的回歸預(yù)測(cè)模型至少應(yīng)該滿足:
Yt+k=f(Xt)(k>0),即可以通過(guò)t時(shí)刻的X值,給出t+ k時(shí)刻的Y值。
在本文的實(shí)驗(yàn)中取k=1,因此一條基本的有意義的數(shù)據(jù)樣本的格式應(yīng)該滿足:(<成交價(jià)>t+1,<買(mǎi)一價(jià);買(mǎi)一量;賣(mài)一價(jià);賣(mài)一量;成交量;持倉(cāng)量>t),
例如,對(duì)于以下兩條數(shù)據(jù)(如表2)。
可以得到一條有意義的輸入數(shù)據(jù)為:
表3 交易數(shù)據(jù)
依此規(guī)則選取一定數(shù)量的數(shù)據(jù)樣本,就能構(gòu)成一個(gè)預(yù)測(cè)模型的訓(xùn)練集。
2.3數(shù)據(jù)歸一化處理
由于樣本中的各個(gè)維度的數(shù)據(jù)代表著不同的意義,每一維的數(shù)據(jù)帶有的量綱也各不相同,如果直接使用這類數(shù)據(jù),會(huì)導(dǎo)致與因變量在比例上相近的數(shù)據(jù)的影響因子變相加大,回歸預(yù)測(cè)出現(xiàn)偏差甚至錯(cuò)誤。因此,需要對(duì)各維度數(shù)據(jù)進(jìn)行歸一化處理,將其統(tǒng)一到某個(gè)固定區(qū)間,消除量綱帶來(lái)的影響。本文采用最小-最大標(biāo)準(zhǔn)化(Min-Max Normalization)方法進(jìn)行標(biāo)準(zhǔn)化處理,這種標(biāo)準(zhǔn)化通過(guò)數(shù)據(jù)的線性變換,能夠把結(jié)果放縮到[a,b]的范圍。轉(zhuǎn)換公式表示如下:
其中,x是初始輸入值,x*是轉(zhuǎn)換后的值,max、min分別對(duì)應(yīng)輸入樣本中的最大值與最小值。實(shí)驗(yàn)對(duì)自變量X及因變量Y分別進(jìn)行歸一化處理:X的歸一化范圍為[-1,1];Y的歸一化范圍為[0,1]。自變量X歸一化后的部分?jǐn)?shù)據(jù)樣例如表4所示。
2.4主城份分析
主成分分析(Principal Component Analysis,PCA),是一種統(tǒng)計(jì)學(xué)上對(duì)數(shù)據(jù)進(jìn)行降維處理的常用方法。主成分分析通過(guò)將原來(lái)的數(shù)據(jù)向量按照一定計(jì)算規(guī)則重新組合為一組數(shù)量較少,并且相互之間獨(dú)立的幾個(gè)綜合指標(biāo)向量來(lái)替換原來(lái)的指標(biāo)向量,這些綜合指標(biāo)能夠反映原來(lái)數(shù)據(jù)所包含的主要信息。
表4 自變量X的歸一化效果
使用主成分分析對(duì)自變量進(jìn)行降維處理,能夠有效提升支持向量機(jī)的預(yù)測(cè)精度。主成分分析的算法過(guò)程如表5所示。
表5 主成分分析算法流程
此處以表1數(shù)據(jù)為例進(jìn)行主成分分析處理:
(1)求得的協(xié)方差系數(shù)矩陣為:
表6 協(xié)方差系數(shù)矩陣
(2)各個(gè)成分的貢獻(xiàn)率分別為:
成分一 0.510674、成分二 0.262372、成分三0.106219、成分四0.09159、成分五0.028825、成分六0.00032。
(3)如圖2所示,原本6個(gè)維度的數(shù)據(jù)在主成分取得95%的情況下降低到4個(gè)維度。
3.1遺傳算法綜述
遺傳算法(Genetic Algorithms,GA),是源于人們對(duì)生物遺傳行為原理的研究。達(dá)爾文的進(jìn)化論、孟德?tīng)柕倪z傳理論還有魏慈曼的物種選擇學(xué)說(shuō)都對(duì)其產(chǎn)生起到了重要的借鑒意義。在近一百年到兩百年的時(shí)間里,人們將物種進(jìn)化論運(yùn)用到各個(gè)的領(lǐng)域,例如醫(yī)學(xué)、仿生學(xué)、機(jī)械工程、管理學(xué)、計(jì)算機(jī)等。二十世紀(jì)八十年代起,計(jì)算機(jī)領(lǐng)域的快速發(fā)展,多種類生物行為的智能研究如機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等開(kāi)始步入欣欣向榮的發(fā)展時(shí)期,各學(xué)科的交叉應(yīng)用也越來(lái)越頻繁,這恰恰給遺傳算法的研究和應(yīng)用帶來(lái)了新的契機(jī)。1962年,密歇根大學(xué)的John Holland提出利用群體進(jìn)化的思想。他指出“新的種群應(yīng)基于當(dāng)前種群的有效性而產(chǎn)生”,同時(shí)也給出了遺傳算法中常用的一些概念,如使用交叉、復(fù)制、變異、選擇等。此后,J.D.Bagley與1967年在他的博士論文中首次提到“遺傳算法”一詞,該詞的用法也由此沿用至今。
圖2 主成分分析成分圖
3.2尋優(yōu)目標(biāo)確認(rèn)
實(shí)驗(yàn)說(shuō)明,當(dāng)使用默認(rèn)參數(shù)的支持向量機(jī)對(duì)股指期貨指數(shù)進(jìn)行預(yù)測(cè)時(shí),預(yù)測(cè)效果較差。為了獲得更合理的參數(shù),需要對(duì)參數(shù)進(jìn)行尋優(yōu)。參數(shù)尋優(yōu)最為簡(jiǎn)單的方法即是通過(guò)暴力查找的方式,對(duì)參數(shù)的每一個(gè)可能值進(jìn)行嘗試。這種算法的弊端顯而易見(jiàn),一是需要耗費(fèi)大量的尋優(yōu)時(shí)間;二是對(duì)于參數(shù)在取值范圍內(nèi)是連續(xù)值而非離散值的時(shí)候,不能覆蓋所有的參數(shù)取值情況。由于遺傳算法具有動(dòng)態(tài)搜索的特性,能夠克服暴力查找的缺點(diǎn),此處使用遺傳算法對(duì)支持向量機(jī)的參數(shù)進(jìn)行尋優(yōu),構(gòu)建GA-SVM預(yù)測(cè)模型。
對(duì)于RBF核函數(shù)所要尋優(yōu)的參數(shù)有c、g。Poly核函數(shù)的參數(shù)較為復(fù)雜,實(shí)際研究中經(jīng)常令d=3,r=1。剩余需要要尋優(yōu)的參數(shù)同為c、g。
另外,參數(shù)ε對(duì)支持向量的個(gè)數(shù)有影響,支持向量的數(shù)量與預(yù)測(cè)模型有直接關(guān)系,因此,合理的尋優(yōu)辦法應(yīng)該把ε也納入尋優(yōu)范圍。綜上所述,參數(shù)尋優(yōu)的目標(biāo)為參數(shù)對(duì)(c、g、ε)。
3.3結(jié)合參數(shù)尋優(yōu)的預(yù)測(cè)流程
GA-SVM模型的預(yù)測(cè)流程如表7所示。
表7 GA-SVM模型預(yù)測(cè)流程
GA-SVM詳細(xì)流程圖如圖3所示。
圖3 GA-SVM詳細(xì)流程圖
3.4基于 GA-SVM 的參數(shù)尋優(yōu)及預(yù)測(cè)效果結(jié)果為:
訓(xùn)練集MSE=0.000701,r2=0.986797;測(cè)試集MSE= 0.000295,r2=0.924759。
圖4 遺傳算法尋優(yōu)過(guò)程
②Poly核函數(shù)
使用Poly核函數(shù)尋優(yōu)得到的最佳參數(shù)對(duì)(c,g,ε)= (0.4167,0.1404,0.0112),在該參數(shù)條件下的預(yù)測(cè)結(jié)果為:
訓(xùn)練集MSE=0.000908,r2=0.906647;測(cè)試集MSE= 0.000953,r2=0.883146。
對(duì)于使用RBF核函數(shù)和Poly核函數(shù)的GA-SVM,其預(yù)測(cè)性能都達(dá)到了十分優(yōu)秀的水準(zhǔn),足以用于實(shí)際的預(yù)測(cè)。
本次實(shí)驗(yàn)得到的結(jié)果為:
圖5 RBF核函數(shù)預(yù)測(cè)結(jié)果
本實(shí)驗(yàn)使用前述的日數(shù)據(jù)集進(jìn)行研究。將前800個(gè)數(shù)據(jù)作為訓(xùn)練集,后123個(gè)數(shù)據(jù)作為測(cè)試集。
①RBF核函數(shù):
使用遺傳算法的尋優(yōu)過(guò)程如圖4所示。
最終得到的最佳參數(shù)對(duì)(c,g,ε)=(2.7997,0.0673,0.0114),使用該參數(shù)對(duì)重新對(duì)訓(xùn)練集進(jìn)行并進(jìn)行預(yù)測(cè),
其中,步驟2的設(shè)置情況如下:
①遺傳算法:
進(jìn)化代數(shù)=50,種群規(guī)模=20,交叉概率為0.7,變異概率為0.01,參數(shù)ε的范圍設(shè)置為[0,1]。
前文對(duì)于c、g的范圍做過(guò)定性測(cè)試,以之為參考:
對(duì)于RBF核函數(shù),參數(shù)c的范圍設(shè)置為[0,100],參數(shù)g的范圍設(shè)置為[0,100]。
對(duì)于Poly核函數(shù),參數(shù)c的范圍設(shè)置為[0,10],參數(shù)g的范圍設(shè)置為[0,10]。
適應(yīng)度函數(shù)fitness=MSE。
①預(yù)測(cè)精度:從工程角度看,GA-SVM在日數(shù)據(jù)集上的預(yù)測(cè)MSE達(dá)到了10-3的數(shù)量級(jí),這是一個(gè)十分準(zhǔn)確的預(yù)測(cè)結(jié)果。完全可以用來(lái)進(jìn)行實(shí)際操作。
②算法時(shí)間效率:在訓(xùn)練樣本集容量為800,交叉驗(yàn)證折數(shù)為5的情況下,遺傳算法耗費(fèi)的時(shí)間分別為459.2283秒(RBF核)和417.1579秒(Poly核)。
圖5為預(yù)測(cè)效果示意圖,圖中藍(lán)色曲線為實(shí)際走勢(shì),紅色曲線是根據(jù)預(yù)測(cè)算法計(jì)算后的預(yù)測(cè)曲線,從圖中可看出預(yù)測(cè)曲線與實(shí)際走勢(shì)基本一致,由于數(shù)據(jù)是隨機(jī)選取的,所以可以得出結(jié)論,在股指期貨的日數(shù)據(jù)集上,通過(guò)對(duì)原始交易數(shù)據(jù)的選取、歸一化、主成份分析等預(yù)處理手段,采用經(jīng)過(guò)遺傳算法優(yōu)化過(guò)參數(shù)的支持向量機(jī)對(duì)其進(jìn)行預(yù)測(cè),可以得到較好的預(yù)測(cè)效果。
[1]聞杰.滬深300股指期貨對(duì)我國(guó)股票市場(chǎng)的影響分析[J].企業(yè)導(dǎo)報(bào),2014,(11):14-15.
[2]羅文輝.力量天平傾斜 期指金額超現(xiàn)貨.第一財(cái)經(jīng)日?qǐng)?bào),2010.4,20.
[3]陳艷,褚光磊.關(guān)聯(lián)規(guī)則挖掘算法在股票預(yù)測(cè)中的應(yīng)用研究——基于遺傳網(wǎng)絡(luò)規(guī)劃的方法[J].管理現(xiàn)代化,2014,34(3):13-15. DOI:10.3969/j.issn.1003-1154.2014.03.005.
[4]Manish Kumar.Forecasting Stock Index Movement:A Comparison of Support Vector Machines and Random Forest[C].Indian Institute of Capital Markets 9th Capital Markets Conference Paper.
[5]Dai S Y,Li N.Using SVM to Predict Stock Price Changes from Online Financial News[J].Mechatronics&Applied Mechanics,2012, 157-158:1586-1590.
[6]Publishing S R.Stock Market Prediction Using Heat of Related Keywords on Micro Blog[J].Journal of Software Engineering&Applications,2013,(3):37-41.
Quantitative Trading;SVM;Genetic Algorithm;Prediction
Prediction of Stock Index Future s Based on GA-SVM
1007-1423(2016)07-0026-05
10.3969/j.issn.1007-1423.2016.07.006
張德江(1985-),男,新疆烏魯木齊人,在讀碩士,助教,研究方向?yàn)橛?jì)算金融
程習(xí)武(1985-),男,湖北天門(mén)人,在讀碩士,助理工程師,研究方向?yàn)槊嫦蛟O(shè)計(jì)與制造的軟件工程
梁元浩(1988-),男,福建廈門(mén)人,碩士,職員,研究方向?yàn)橛?jì)算金融
劉元梓(1984-),男,重慶人,在讀碩士,助理工程師,研究方向?yàn)樾畔踩?/p>
2016-01-05
2016-02-18
ZHANG De-jiang,CHENG Xi-wu,LIANG Yuan-hao,LIU Yuan-zi
(College of Computer Science,Sichuan University,Chengdu 610065)
近幾年來(lái),跨學(xué)科交叉融合日益發(fā)展,許多非金融業(yè)界的研究者也投入到證券預(yù)測(cè)之中,各種數(shù)學(xué)模型被用來(lái)進(jìn)行投資預(yù)測(cè),其中尤其以機(jī)器學(xué)習(xí)方法應(yīng)用最為廣泛。將對(duì)滬深300的交易信息進(jìn)行數(shù)據(jù)加工,采用GA-SVM對(duì)股指期貨進(jìn)行交易預(yù)測(cè),該方法能夠有效地對(duì)股指期貨日交易進(jìn)行預(yù)測(cè)。
量化交易;支持向量機(jī);遺傳算法;預(yù)測(cè)
In recent years,with the growing of interdisciplinary integration,many non-financial industry researchers also predict into stocks among various mathematical models are used for investment forecasts,which especially the most widely used machine learning methods.Uses CSI 300 index for data processing,the use of GA-SVM prediction model for stock index futures trading can effectively predict the date of the transaction.