摘 要:本文提出了一種基于遺傳算法和支持向量機的股市預測混合機器學習系統。將技術分析領域的各種指標作為輸入特征,同時把不同公司股票價格之間的相關性進行計算,利用高相關性股票的技術指標,更好地進行股票走勢預測。文中,利用遺傳算法從所有技術指標中選出信息量最大的一組作為輸入特征。結果表明,在股票走勢預測方面,混合遺傳算法和支持向量機的模型優于獨立支持向量機模型的表現。
關鍵詞:遺傳算法;支持向量機;股市預測
一、緒論
股票市場預測是金融時間序列預測中的一項具有挑戰性的任務。這主要是因為市場運行中存在不確定性。股票市場中的許多因素相互作用,包括政治事件、市場經濟狀況和交易者期望。因此,預測市場價格變動是相當困難的。根據學術調查,市場價格的變動隨機性愈發提高,它們的行為是高度非線性的,動態的。投資者要做決策就是根據股票的預期方向,與價值相比,預測方向可以產生更高的利潤。
過去十年,許多人工智能和機器學習技術被用來預測股市。神經網絡是目前應用最廣泛的技術,神經網絡被用于股市趨勢預測,概率神經網絡被用于將其建模為一個股票市場漲跌分類問題。近年來,支持向量機在股市預測中的應用取得了顯著的進展。Tay&Cao首次將支持向量機用于金融時間序列預測。Kim提出了一種算法,通過將技術分析指標作為SVM的輸入來預測股市的走向。研究比較了支持向量機和BP神經網絡。實驗結果表明,支持向量機的性能往往優于BPN。
二、支持向量機
支持向量機(SVM)是由Vapnik提出的。支持向量機是一種最大的邊緣分類器,試圖找到最優超平面來分離不同類,將最接近最優超平面的訓練實例稱為支持向量。如果數據是線性可分的,則在兩個類的情況下,超平面可以表示為以下等式:
其中,y為結果,xi為屬性值,wi為權值。在支持向量方面,最優超平面可以表示為以下方程:
其中,y是訓練示例x(i)的類值,向量x表示測試示例,向量x(i)是支持向量,·表示點積。在這個方程中,b和αi是決定超平面的參數,找到支持向量并確定參數b和αi相當于求解線性約束二次型編程問題。
如果數據不是線性可分的,在這種情況下,支持向量機將輸入轉換成高維特征空間。這是通過使用內核函數來完成的,如下所示:
支持向量機的一個獨特的特點是能夠抵抗過擬合問題。這是因為許多傳統的神經網絡模型都實現了經驗風險最小化原則,而支持向量機則實現了結構風險最小化原則。前者試圖將錯誤分類或對正確解的偏離最小化訓練數據,但后者搜索以最小化泛化誤差的上界。
三、股票方向預測問題
將股票漲跌預測建模為二分類問題。這些方向在數據中歸為“0”和“1”類。“0”類表示當日價格低于前一日,即股價下跌;“1”類表示當日價格高于前一日,即股價上漲。我們選擇了中國股市作為研究對象。在過去,該領域的大部分工作都集中在美國和韓國的股票市場上,很少有使用機器學習技術來預測股票。文中選擇了3只股票:平安銀行(000001)、中信證券(600030)、中證500(000905)作為我們的實驗對象。
提出模型:
A.股票相關性
研究表明,股票價格不會孤立地變動。某些股票的價格之間存在統計上的顯著相關性,因此,一種股票的價格變動通常可以用來預測其他股票的變動。
讓我們希望找到相關性的兩個股票用S和T表示。這些股票之間的相關性由下式給出:
式中,S(i)和T(i)是第i天股票的收盤價,SA和TA是股票的平均價格,σS和σT是標準差,n是相關性的天數。
B.輸入特征值
利用數學統計得到股票技術指標,可以為研究者提供有關市場趨勢的線索。文中使35個這樣的技術指標作為模型的輸入特征值,其中部分技術指標如表一中所示:
C.遺傳算法
如上所述,我們獲得了一組候選特征輸入。遺傳算法現在被用來從這些特征中選擇一組顯著特征。所選特征用作支持向量機的輸入。這里的目的是獲得能產生最佳結果的特征的最佳子集。GA中的各個步驟描述如下:
(1)初始化:我們用二元向量表示一條染色體,其中染色體的每一部分都告訴我們是否選擇了相應的輸入特征。
(2)適應度評估:以下適應度函數用于評估染色體i的適應度:
其中,A(i)是由支持向量機獲得的分類精度,輸入特征集由染色體i描述,AR是隨機精度,研究中設為0.5。
(3)選擇:輪盤選擇用于父選擇。因此,具有高適應度得分的染色體更常被選擇。
(4)繁殖:進行交叉和變異以產生新一代。
(5)停止條件:當遺傳算法在規定的迭代次數內找不到更優解時停止。
四、實驗結果
如前所述,我們用平安銀行、中信證券、中證500作為我們的實驗對象三只股票。本研究使用的數據來自國泰安數據庫。實證分析對象各使用800組數據,70%的數據用于機器學習,30%用于測試模型。
預測性能是用準確率來衡量的,準確率是模型對股票漲跌方向預測正確的百分比。我們將方法的結果與獨立支持向量機的結果進行了比較,該支持向量機以目標公司的35個特征作為輸入。明顯可見,GA-SVM混合模型在預測股票漲跌方向明顯優于獨立的SVM。例如,對于平安銀行(000001),我們的GA-SVM的命中率為61.7328%,而SVM的命中率為48.0903%,三只股票的命中率見表2。
表2 股票漲跌方向預測準確率
結束語:
本文提出了一種混合遺傳算法和支持向量機模型來預測股票價格的漲跌走勢。從待預測的股票以及與該股票高度相關的股票中獲得的一組技術指標被用作輸入特征以提高預測準確率。結果表明,相關技術指標和遺傳算法對提高支持向量機分類預測的準確率有顯著作用。
與此同時,在股票的預測分析方面還有很多工作要做。如果把影響股票市場的各種政治、經濟因素和投資者的情緒也考慮進去,可以取得更好的擇時效果。此外,將特定于市場的領域知識納入系統可能有助于模型獲得更好的預測表現。
參考文獻:
[1] Chen,A.S. Leung, M.T. and Daouk, H. Application of Neural Networks to an Emerging Financial Market: Forecasting and Trading the Taiwan Stock Index. Computers and Operations Research 30, 2003, 901-923.
[2] W. Kreesuradej, D. Wunsch, and M. Lane, Time-delay neural network for small time series data sets, in World Cong. Neural Networks, San Diego, CA, June 1994
[3] H. Tan, D. Prokhorov, and D. Wunsch, Probabilistic and time-delay neural-network techniques for conservative short-term stock trend prediction, in Proc. World Congr. Neural Networks, Washington,D.C., July 1995.
[4]丁鵬.量化投資——策略與技術[M].北京:電子工業出版社,2012.
[5]劉小茂,田立.現代金融風險的度量方法[J].統計與決策,2007(01):4-6.
[6]方匡南,紀宏,路遜. 股票技術指標相似性與有效性研究[J].統計與信息論壇,2009,24(9):26-30.
作者簡介:陳皓(1995-),男,漢族,首都經濟貿易大學信息學院,本科。研究方向:量化擇時。