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