覃雄派,陳躍國,王邦國
(1.中國人民大學 信息學院, 北京 100872; 2.教育部數據工程與知識工程重點實驗室(中國人民大學), 北京 100872) (*通信作者電子郵箱chenyueguo@ruc.edu.cn)
大數據分析的應用案例
——投資模型的穩健性
覃雄派1,2,陳躍國1,2*,王邦國1,2
(1.中國人民大學 信息學院, 北京 100872; 2.教育部數據工程與知識工程重點實驗室(中國人民大學), 北京 100872) (*通信作者電子郵箱chenyueguo@ruc.edu.cn)
交易模型的穩健性,指的是該模型的利潤率曲線的波動性較小,沒有大起大落。針對一個基于支持向量回歸(SVR)技術的算法交易模型的穩健性問題,提出了使用若干導出指標訓練統一的交易模型的策略,以及投資組合多樣化的方法。首先,介紹基于支持向量回歸技術的算法交易模型;然后,基于常用指標,構造了若干導出指標,用于股票價格的短期預測。這些指標,刻畫了近期價格運動的典型模式、超買/超賣市場狀態,以及背離市場狀態。對這些指標進行了規范化,用于訓練交易模型,使得模型可以泛化到不同的股票;最后,設計了投資組合多樣化方法。在投資組合里,各個股票之間的相關性,有時會導致較大的投資損失;因為具有較強相關關系的股票,其價格朝相同方向變化。如果交易模型預測的價格走勢不正確,引起止損操作,那么這些具有較強相關關系的股票,將引發雪崩式的止損,于是導致損失加劇。把股票根據相似性聚類到不同類別,通過從不同聚類類別中選擇若干股票來構成多樣化的投資組合,其中,股票的相似性,通過交易模型在不同股票上近期的利潤曲線的相似度進行計算。在900只股票10年的價格大數據上進行了實驗,實驗結果顯示,交易模型能夠獲得超過定期存款的超額利潤率,年化利潤率為8.06%。交易模型的最大回撤由13.23%降為5.32%,夏普指數由81.23%提高到88.79%,交易模型的利潤率曲線波動性降低,說明交易模型的穩健性獲得了提高。
算法交易;支持向量回歸;穩健性;投資組合多樣化;大數據
算法交易,是使用復雜的計算機程序(軟件),實現交易過程的自動化。這些程序使用機器學習或者數據挖掘算法,分析大量的數據,進而決定是否進行交易,包括買進還是賣出,什么時候進行交易,以及訂單的大小等。
算法交易具有若干優勢。包括:1)交易模型體現出很強的一致性。2)交易模型可以同時處理多個金融資產(股票、期貨等)。3)交易模型進行數據分析和執行訂單的速度,比人更快。其中,最主要的優勢是交易模型不像人類投資者那樣具有情感,它僅僅依賴于數據分析結果,進行交易決策,于是,它能夠保持一致的交易決策和行為。相反,由于人類投資者受到自己情感的影響,在投資過程中,很難堅持既定的原則。
金融市場(股票市場、期貨市場等)是一個動態變化的復雜系統[1],進行價格預測是一件很困難的事情。著名的有效市場理論(Efficient Market Hypothesis, EMH)[2]指出,所有可以獲得的信息,立即反映在股票價格的變化中,只有新的信息到達,才能引起股票價格的新變化。于是,對金融市場的價格運動進行預測,幾乎是不可能的,但是,信息的傳播是有一定的延遲的。另外,不同的人對接收到的同一信息,有不同的解釋。很多研究表明,一些宏觀經濟變量(Macroeconomic Variables)和技術指標(Technical Indicators),在一定程度上,能夠預測股票價格的未來變化。比如,文獻[3]的研究表明,南亞地區的四個股票市場的未來收益,存在一定的可預測性(Predictability)。
在實際應用中,世界范圍內的各大銀行、對沖基金(Hedge Funds)廣泛采用算法交易技術和模型。根據文獻[4]的調查,僅僅在美國,在2000年,從華爾街的算法交易系統發起的訂單(Order),占到全美股票交易量的40%。到2008年,這個數字攀升到60%,而到了2014年,這個數據超過了70%。
人們采用兩種分析策略,來預測股票價格的變化,一種是基本分析(Fundamental Analysis),一種是技術分析(Technical Analysis)[5-6]。所謂基本分析,是通過分析影響股票內在價值的各種經濟因素,對股票價格作出預測,一般用于中長期預測。技術分析派,則相信歷史總會重演。他們使用作圖工具、指標計算和數據分析工具,尋找可能盈利的價格變化模式(Pattern)。技術分析一般用于中短期價格預測。
本文提出一種通過使用若干導出指標訓練統一的交易模型的策略,以及投資組合多樣化的方法,來提高交易模型的穩健性。所謂交易模型的穩健性,指的是模型的利潤率曲線,具有較小的波動性,沒有大起大落。該投資組合多樣化方法,是為一個基于支持向量回歸(Support Vector Regression, SVR)技術的交易模型服務的。本研究為該模型構造了基于一些常用指標的導出指標,這些指標較好地刻畫了價格的變化模式、超買/超賣市場狀態以及背離市場狀態等。本研究首先對這些指標進行規范化處理,然后用于訓練一個通用模型。訓練后的交易模型可以用于不同的股票價格的預測。在此基礎上,為了實現投資組合的多樣化,本研究把股票聚類到不同的類別中。股票的相似性,定義為交易模型在這些股票上的利潤率曲線之間的相似性。這樣定義相似性,其目的是,當交易模型預測發生錯誤的時候,系統將進行止損,如果直接在價格數據上定義相似性,不能反映實際交易中的止損操作,是不可靠的。
1.1 交易系統架構
本文首先介紹整個交易系統的架構,然后介紹交易模型細節。整個交易系統的各個組件及其關系,如圖1所示。本文通過交易模型的創建、交易模型的訓練以及交易模型的運行來介紹這些組件及其功能。

圖1 交易系統的各個組件
首先,本研究創建了一個基于SVR技術的交易模型。該模型不僅使用了一些常用的技術指標作為輸入,還基于這些指標,構造了一些導出指標,以刻畫價格的變化模式、超買/超賣市場狀態、以及背離市場狀態。
接著,本研究使用股票價格數據對交易模型進行訓練。這些價格數據從Yahoo Finance網站上下載,并且保存到本地備用。Price Data Manager從本地硬盤提取價格數據,饋入Indicator Generator,計算各種技術指標。計算出來的指標,交給Trainer,以便對模型進行訓練。本研究從Yahoo Finance下載了900只股票、10年的價格數據。其中9年的數據用于訓練(Training),最后1年的價格數據用于驗證(Testing)。本研究使用遺傳算法對交易模型的參數進行了優化。
為了泛化交易模型(適用于不同的股票),本研究在滑動的時間窗口(Moving Window)內,對指標進行了規范化處理。價格的變化規律不僅在一只股票價格的歷史演變中重現,而且在不同股票價格的歷史演變中重現。
本研究使用驗證數據,對訓練好的交易模型進行驗證。在驗證階段,從驗證數據計算指標,輸入到訓練好的交易模型,進行價格預測,根據預測結果,決定是否交易。基于模型的預測,Trading Signal Generator產生買/賣交易信號(BUY/SELL Signals),交給 Order Executor & Monitor 執行。
Order Executor & Monitor 對投資組合中的每只股票的每個交易進行監控,記錄盈利和損失情況。Historical Data Manager 負責管理交易數據(Trade)和利潤數據(Profit)。
本研究將考察三種為交易模型建立投資組合的方法。1) 第一種方法,從市場上隨機選擇Np只股票,給這些股票平均分配總資金的1/Np。這里Np是投資組合的股票數量。2) 第二種方法,使用交易模型,預測每只股票的未來收益(在1.2.4節詳述預測過程),然后根據預期收益對股票進行排序,選擇Np只股票構成投資組合。3) 第三種方法,首先根據交易模型在股票上最近30天的交易利潤曲線(有些股票并未真正發生交易,可以使用模擬辦法計算這個利潤曲線),計算股票間的相似性,進而把股票聚類到不同類別。在每個類別內,對各個股票根據預期收益率進行排序。從每個類別中,選擇若干只股票,總數是Np只股票,構成多樣化的投資組合。這個方法將在第2章進行詳細介紹。系統記錄的交易歷史數據和利潤數據(HistoricalTradeandProfitData),將用來計算股票之間的相似度。
本文提出的投資模型多樣化方法,和交易模型配合,為其建立投資組合。當一個投資組合建立以后,資金被平均分配到各只股票。如果交易模型預測到一定的利潤,系統將為某只股票建立頭寸(買入),并且持有。隨著時間的推移,如果交易模型的預測不準,價格掉頭向下,超過預先設置的閾值,將引發止損操作。否則,股票一直持有到賣出日(SELLday),然后售出。幾天以后,當所有的股票都賣出,系統將基于新的數據,建立新的投資組合,開始新一輪交易過程。
1.2 創建交易模型
1.2.1SVM和SVR
支持向量機(SupportVectorMachine,SVM)技術最先由Vapnik等于1990年提出來。該技術分為兩類,包括支持向量分類(SupportVectorClassification,SVC, 一般仍稱為SVM),以及支持向量回歸(SupportVectorRegression,SVR)。
SVM的目的,是找到高維空間的一個超平面(HyperPlane),把正例數據點(DataPoints,也叫向量)和負例數據點很好地分開,而且使得支持向量到超平面的距離最大。如果低維空間里的數據點,不能用一個超平面分開,可以使用一個核函數(KernelFunction),把這些數據點變換為高維空間的向量,以便把它們在高維空間中較為容易地分開。常用的核函數,包括多項式核函數(Polynomial)以及徑向基函數(RadialBasis)。一般用一個正則化參數(RegularizationParameter)C,調節距離最大化和分類誤差最小化之間的平衡。
SVR技術則訓練出一個模型,它可以接受新的輸入,預測一個目標值。這個模型在訓練的時候,針對訓練數據,在高維空間中擬合出一個超曲線(Hyper Curve),把盡量多的訓練數據點,包含到包圍這個曲線的一個管道(Enveloping Tube)中。具體來講,假設,現有xi∈Rd(i=1,2,…,N),構成d維空間的輸入向量。每個xi對應一個yi∈R。給定一個任意的ε>0,如果存在一個超曲線f(x)=〈w,x〉+b,w∈Rn,b∈R,對于?(xi,yi)∈S,符合|yi-f(xi)|≤ε,那么f(x)=〈w,x〉+b稱為訓練樣本的ε-線性回歸。ε-線性回歸問題,可以轉化為一個優化問題,形式如下:

約束條件為|(wT·xi)+b-yi|≤ε(i=1,2,…,n),這個優化問題可以轉化為一個對偶問題,并且用二次規劃(Quadratic Programming)方法加以解決。本研究在標準SVR技術上實現了交易模型,并使用了徑向基核函數:K(xi,yi)=exp(-γ‖xi-yi‖2)。
1.2.2 指標計算以及規范化處理
用某只股票的價格對交易模型進行訓練,很難泛化到其他股票。本研究對指標進行了規范化,忽略了價格數據的絕對值,刻畫了價格的近期的相對變化趨勢。
本文認為,不僅各只股票的價格變化,不斷重演其歷史。某些價格變化模式,也能夠在不同股票的價格演變中觀察得到,也就是歷史在不同的股票間重演。于是本研究用若干只股票的價格上計算的規范化指標,訓練了一個統一的模型,并且把這個模型應用到所有的股票上。
本研究從價格數據上計算若干指標,用于對交易模型進行訓練,指標(Indicators)也稱為特征(Features)。
1)簡單移動平均指標。
簡單移動平均(Simple Moving Average)指標的計算公式為SMA=(Ct+Ct-1+Ct-2+…+Ct-n+1)/N,其中Ct表示第t天的收盤(Close)價,Ct-1表示第t天的前一天的收盤價等。
簡單移動平均指標,對移動窗口內的價格計算均值,對價格數據的變化進行了平滑。本研究的交易模型,主要用于短期預測,所以使用了兩個移動平均指標,分別是5天的移動平均(稱為短期移動平均(Short SMA, SSMA)),和10天的移動平均(稱為長期移動平均(Long SMA, LSMA))。
對于移動平均指標的使用,有一個通用的投資策略,稱為長期和短期移動平均指標的交叉(Crossover)策略(http://www.investopedia.com, http://www.stockcharts.com)。這個策略使用短期、長期兩個移動平均指標,在趨勢性市場行情中,產生買/賣交易信號(BUY/SELL Signals)。如果短期移動平均指標從下往上和長期移動平均指標交叉,并且向上發展,那么價格的總體趨勢是向上的,可以產生一個買信號(BUY)。相反,如果短期移動平均指標從上往下和長期移動平均指標交叉,并且向下發展,那么價格的總體趨勢是向下的,可以產生一個賣出信號(SELL)。否則,持有資金或者持有股票頭寸,不產生任何交易信號。


短期和長期移動平均指標的交叉,是一個落后的指標(Lagging Indicators),當交叉發生的時候,價格已經開始攀升或者下跌。所以,本研究需要其他指標來補充,以便交易模型能夠更為準確地預測價格變化。
2)相對強弱指標。
相對強弱指標(Relative Strength Index, RSI)通常用來確定超買和超賣的市場狀況,RSI指標在0~100變動。當RSI指標大于70的時候,表明某只股票已經處于超買狀態,近期價格有可能下跌。當RSI指標小于30,則表明某只股票處于超賣狀態,近期價格有可能上升。
RSI指標的計算公式為:

其中:UPt表示第t天的價格上漲變化量,而DWt表示第t天的價格下跌變化量。
本研究把當天的RSI指標作為一個訓練模型用的特征(稱為RSI0)。本研究還對如下重要時刻感興趣:①RSI曲線(由最近幾天的RSI指標組成)從下往上突破70閾值;②RSI曲線從上往下突破70閾值;③RSI曲線從下往上突破30閾值;④RSI曲線從上往下突破30閾值;⑤RSI指標在(30,70)震蕩。


3)LarryWilliam’sR%指標。

類似于對RSI指標的處理,本研究使用當天的W%R(W%R0,0表示當天,-1表示前一天)作為訓練模型的一個特征。本文還對如下重要時刻感興趣:①W%R曲線(由最近幾天的W%R指標組成)從下往上突破-80閾值;②RSI曲線從上往下突破-80閾值;③RSI曲線從下往上突破-20閾值;④RSI曲線從上往下突破-20閾值;⑤RSI指標在(-80,-20)震蕩。


4)MACD指標及導出動量指標。
在股票價格的技術分析中,MACD指標(Moving Average Convergence Divergence)經常被用到。MACD 線通過把每天的12天的EMA(Exponential Moving Average)減去26天的EMA,繪制出來。然后,MACD的 9天的EMA線用作一個信號線(Signal Line),用來確定價格是否發生反轉(Reversal)。
投資者一般尋找如下的投資機會,包括以下內容。①信號線交叉(Signal Line Crossovers):當MACD指標從下往上和信號線交叉,這是一個牛市信號線交叉;當MACD指標從上往下和信號線交叉,這是一個熊市信號線交叉。②中線交叉(Centerline Crossovers):當MACD從下往上越過x軸,也就是12天的EMA線從下往上越過26天的EMA線,這是一個牛市中線交叉;當MACD從上往下越過x軸,也就是12天的EMA線從上往下越過26天的EMA線,這是一個熊市中線交叉。③價格變化和MACD指標變化趨勢的背離(Divergences):當股票價格連創新低,但是MACD卻創出新高,表明一個牛市背離(Bullish Divergence)正在形成。股票價格連創新低,表明當前的價格基本走勢是下跌趨勢(Downtrend),并且還將持續,但是MACD連創新高,表明下跌的動量(Downward Momentum)正在減弱。牛市背離,一般預示著趨勢正在反轉(Trend Reversal),股票價格隨后將有較大的回升。
Google公司的股價,在2008年10月到12月間,股票價格連創新低,而MACD連創新高,形成了一個牛市背離(Bullish Divergence)。于是緊接著,股票價格有一定的上漲(http://stock.finance.sina.com.cn/usstock/quotes/GOOG.html)。
相似地,當股票價格連創新高,但是MACD連創新低,意味著一個熊市背離(Bearish Divergence)正在形成。股票價格連創新高,意味著股票價格處在上升趨勢中。熊市背離,一般也預示著趨勢正在反轉(Trend Reversal),股票價格隨后將有較大的下跌。


本研究使用兩個指標來刻畫牛市背離和熊市背離。從MACD指標導出的動量指標MUMMACD,其計算公式為MUMMACD=MUM0-MUM-9,其中:MACD0為當天的MACD指標,而MACD-9當天之前第9天的MACD指標。股票價格的動量指標(Momentum of Price)MUMc,使用類似的方法來計算,其計算公式為MUMc=C0-C-9。其中C0為當天的股票收盤價,而C-9為當天之前第9天的股票收盤價。在計算這兩個指標之前,MACD指標和股票價格事先經過規范化處理。表1總結了交易模型使用的13個指標。

表1 指標及其描述
1.2.3 訓練交易模型
為了進行交易模型訓練,從訓練樣本的開始時間戳,開始計算表1所示的各個指標。對于5天的SMA,可以在第5天獲得第一個有效的SMA(5) ,因為該指標是對前五天(包括當天)的收盤價的均值。對于10天SMA來講,需要等到第10天,才能獲得第一個有效的SMA(10)。用于計算上述指標的最長的時間區間是26天(計算MACD指標),于是從第26天開始,就獲得有效的指標集,包含13個指標。從此以后的每天,都可以計算出對應當天的有效的13個指標。
對于獲得有效的13個指標的每一天,利用一天以后的股票價格,計算一個利潤率,表示如果當天購買股票,隔天賣出,能夠創造什么樣的利潤率。利潤率的計算公式為Rprofitt+1=(Ct+1-Ct)/Ct。13個指標、以及天數(1天)作為輸入,利潤率Rprofitt+1作為輸出,形成一個訓練樣本。除此之外,針對2天、3天、4天、5天、6天、以及7天構造訓練樣本。這些訓練樣本將用于交易模型的訓練。表2展示了針對每天指標及其后第1到第7天的預期利潤率,所構造的訓練樣本。

表2 每天的7個訓練樣本
在支持向量回歸(SVR)模型中,有兩個可調參數,一個是正則化參數C,一個是徑向基核函數的γ參數。本文使用遺傳算法,對這兩個參數進行優化。
1.2.4 使用交易模型進行預測
交易模型經過訓練以后,它能夠根據輸入的指標,預測股票的短期價格變化,指導交易。每一輪交易包含4個步驟,分別是:1)建立投資組合;2)產生交易信號;3)買入并且持有股票,直到預期的賣出日,或者止損;4)清空當前股票頭寸(Position),重新回到步驟1),開始下一輪交易。
這四個步驟詳述如下:
1)投資組合管理(PortfolioManagement)。一輪投資的發起,從建立投資組合開始。使用的方法在1.1節中已經簡單介紹,其中的投資組合多樣化方法,將在第2章詳細介紹。
2)利用交易模型進行預測,并且產生交易信號。本研究把交易模型應用到測試數據上,進行短期預測(ShortTermPricePrediction)和交易。從測試樣本的開始時間戳之后的第26天開始,每天都能夠計算出有效的13個指標。這些指標,加上天數(1~7),被輸入系統,預測1天~7天以后的預期利潤(ExpectedProfitRatio)。
這7個預測作為候選集,本研究將基于這個候選集,產生買入交易信號(BUYsignal)。決策的原則是,對7個預測的預期利潤率進行排序,選出最高的預期利潤,并且檢查:①該利潤率是否超過一定的閾值,以便覆蓋交易成本。②沒有一個更早(天數更少)的預期價格變化,可能引起一個止損操作。倘若如此,就產生一個買入交易信號;否則,繼續尋找第二個最好的預期利潤率。如果沒有一個預期利潤率符合上述條件,本輪不對該股票進行交易。
下面給出一個具體例子,表3中的第一部分列出了交易模型對股票A的若干預測,第二部分列出了交易模型對股票B的若干預測,而第三部分則列出了交易模型對股票C的若干預測(表中的百分比為交易模型預測的針對各個天數的利潤率)。本研究采用的止損閾值為下跌5%,可以買入的上漲閾值為7%。

表3 預期利潤與交易信號的產生
其中,從表3的第一部分,可以看到針對7天的預測獲得最高的預期利潤,并且沒有一個更早的預期價格變化會引起止損操作。于是交易模型產生一個買入交易信號,買入該股票,并且持有7天以后賣出。
從表3的第二部分可以看出,針對7天的預測,獲得最高的預期利潤,但是,4天的預測顯示價格將有5.5%的下跌,這個下跌幅度超過了止損閾值。于是,選擇3天的預測,產生一個買入交易信號,因為它不僅超過可以買入的閾值,并且它之前沒有一個預測的價格變化,會引起一個止損操作。
而對于股票C(表中的第三部分),從這些天的預測中,沒有看到任何的交易機會,于是不產生任何交易信號。
交易模型產生一個買入信號以后,根據分配給這只股票的資金,買入該只股票。
3)持有股票到預期的賣出日或者進行止損。交易模型監控每只購入的股票的價格變化,如果價格沒有按照預期上漲,而是下跌到止損閾值以下,那么對該只股票進行止損,即及時賣出,減少損失。
如果沒有發生止損情況,股票將持有到預期的賣出日期(SELLday,參考表3中的預測時使用的天數),并且賣出股票。比如對于表3中的股票A,買入該股票,并且持有7天,到第7天賣出。
4)下一輪交易。當所有的股票已經賣出,進入下一輪交易過程,也就是回到步驟1)。
投資組合的多樣化,就是遵循“雞蛋不要放在一個籃子里”原則進行投資,其目的是減少大的損失。當投資組合里某些股票的價格變化具有很強的相關性的時候,如果交易模型預測不準確,對這些股票同時止損,將引起較大的損失。
本研究使用聚類技術,把所有可交易的股票劃分到不同類別中,然后從各個類別選擇部分股票,構成多樣化的投資組合。股票之間的相似性,定義為近期交易模型在這些股票上的交易性能,也就是交易模型在這些股票上的利潤率曲線之間的相似性。
2.1 股票之間的相似性定義(交易模型在股票上的收益)
本研究沒有在股票價格上,直接計算股票之間的相似性。而是在股票價格上,運行交易模型,并且記錄交易模型產生的交易信號和交易利潤率,進而計算股票間的相似性。在最近的一段時間內,交易模型歷次交易對應的交易利潤率,形成一個利潤率曲線,對應一個利潤率向量(ProfitVector,PV)。股票之間的相似性,定義為其PV的相似性。
對于不同的股票,交易模型在一定時間段內,產生的交易次數不一樣。也就是,兩只股票的PV擁有不同的元素,隸屬不同的高維向量空間,比如PV1∈Rn,而PV2∈Rm,m≠n。本文使用DTW(Dynamic Time Warping)技術,對兩只股票的PV進行相似性計算。該方法能夠計算時間序列數據的相似性,即便兩者的數據點數不一樣。
本研究把投資組合內的每只股票近30天的買賣交易記錄下來,基于這些交易計算利潤率,然后根據利潤率計算每對股票之間的相似性。不在投資組合里的其它股票,并未進行實際交易,而是通過模擬交易(SimulationTrading)記錄這些股票上的交易信息以及利潤率,這些模擬交易的利潤率反映了交易模型在這些股票上的性能表現,基于此計算這些股票之間的相似度。
2.2 股票聚類
聚類技術把相似度大的股票聚集在一個類別中,把相似性小的股票分解到不同的類別中??梢杂糜诰垲惖姆椒ㄓ袃煞N:1) 第一種方法,把股票的相似系數,組織成一個N*N矩陣S,N是股票的個數,Si, j是股票i和股票j之間的相似性。然后在系數矩陣上,使用傳統的聚類方法,把股票劃分到不同類別。2) 第二種方法,基于股票之間的相似性,建立一個股票之間的社交網絡,形成一個無向帶權重的圖(Undirected Weighted Graph)。每個節點表示一只股票,每條邊(帶權重)表示股票之間的相似性。建立好股票的社交網絡后,可以使用網絡社區挖掘方法(Community Detection)[7-8],把股票劃分到不同的類別,每個類別對應一個社區。其中,文獻[8]提供了一種針對帶權重的社交網絡的社區挖掘方法。
本研究使用第一種方法對股票進行聚類。在未來工作中,將嘗試第二種方法,并且與第一種方法進行比較
2.3 根據預期收益率從各個聚類的類別中選擇股票
完成聚類分析以后,每只股票被劃分到不同的類別。從這些類別中,選擇一些股票,構成投資組合,投資組合中的股票數量為Np。股票的選擇標準是預期收益率,預期收益率的計算方法和1.2.4節描述的方法一致,這里不再贅述。
3.1 數據集以及性能指標
本研究從YahooFinance網站上,獲取了上海股票交易所的900只股票的價格信息,時間跨度從2005年到2015年。2005年到2014年的價格數據用于訓練,2015年的價格數據用于驗證。
對于交易模型的評價,人們最感興趣的是其年化利潤率(AnnualizedProfitRatio,也稱收益率)。如果一個交易模型,不能在無風險的定期存款以外創造額外的收益,它是沒有用的。倘若如此,還不如直接把款項存為定期存款。
本研究的工作,其目的是提高交易模型的穩健性。本研究還使用另外兩個性能指標,即最大回撤(MaxDrawdown)和夏普指數(SharpRatio),來評價本文提出的方法的有效性。
最大回撤指標可以評價一個交易模型選擇的投資組合的風險度。最大回撤的計算公式為MDD=(A-B)/A,其中A為最大下跌之前的資產最大凈值(Peak Asset Value before Largest Drop),B為 資產凈值創出新高之前的最低的資產凈值(Lowest Asset Value before New High Established)。比如,一個投資組合的開始凈值為$10 000,這個凈值經過一系列股票交易以后發生變化,第一天為$17 000,第二天為$8 000,第三天為$13 000,第四天為$7 000,第五天為$19 000,那么,最大回撤為(17 000-7 000)/17 000=52.9%。最高凈值$19 000沒有用來計算最大回撤,因為這里的回撤是從最高點$17 000開始的。投資模型的最大回撤越小越好。
夏普指數是由WilliamF.Sharpe發明的一個指標。他用標準差(StandardDeviation)以及超額收益(ExcessReturn),來計算每單位風險獲得的收益,這里的風險指的是波動性。假設,投資組合的年化收益率為12%,波動性為10%,無風險的定期存款利率為5%,那么夏普指數為(0.12-0.05)/0.1=70%。投資模型的夏普指數越高,顯示投資模型越穩健,收益越好。
本研究把數據集劃分為3個子集,每個子集包含300只股票。本研究在3個數據子集上獨立進行實驗,并且計算交易模型的年化收益率、最大回撤,以及夏普指數。交易模型使用的初始資金為$1 000 000,投資組合的容量為25只股票,無風險的定期存款利率為3.6%。
3.2 通用交易模型和特定模型的性能比較
本研究進行的第一個實驗,用于比較為所有股票建立的通用模型,與為每只股票建立的特定模型的性能。
首先,為所有的股票訓練了一個通用模型,然后為這個模型建立多樣化的投資組合進行交易;接著,為每只股票創建特定的交易模型(僅適用于該股票);然后,建立多樣化的投資組合,針對每只股票,使用特定交易模型進行交易。表4顯示了實驗的最終結果。

表4 通用交易模型和特定交易模型的性能比較
對于數據子集1,特定模型獲得了11.91%的年化收益率,比通用模型的年化收益率7.95%要高,但是在另外兩個指標上,即最大回撤和夏普指數,通用模型表現比特定模型要好。通用交易模型的最大回撤為5.34%,比特定模型的13.32%小。通用模型的夏普指數為88.78%,高于特定模型的81.30%。
這些結果顯示,雖然通用模型的年化收益率較小,但是它更加穩健。在數據子集2和數據子集3上,通用模型和特定模型在三個指標上顯示出類似的差異。為了檢驗結論的可靠性,本文進行了T檢驗,比較通用模型和特定模型的最大回撤的均值。檢驗結果顯示兩者存在統計學意義上的顯著差異(t=-24.988, andp=0.001 6<0.05)。另外一個T檢驗,也驗證了兩者在夏普指數上的顯著差異。
3.3 不同投資組合構造方法的比較
第二個實驗的目的,是比較不同的投資組合構造方法的性能。投資組合的構造方法為:1)隨機選擇法(Random);2)排序法(Rank);3)多樣化方法(Diversifying)。本文用通用的交易模型進行實驗,從900只股票里建立包含75只股票的投資組合。實驗結果如表5和圖2所示。

表5 三種投資組合構造方法的比較
可以看出,多樣化的投資組合(Diversifying)獲得了8.06%的年化收益率,比另外兩種方法要低(Random和Rank),但是Diversifying方法在最大回撤和夏普指數兩個指標上,都超過了Rank和Random。這個結果顯示,多樣化的投資組合提高了交易模型的穩健性。
出乎意料的是,Random方法的年化利潤率高達11.82%,這可以歸因于支持向量回歸具有較強的非線性預測能力。

圖2 三種投資組合構造方法的比較
圖3展示了Rank和Diversifying兩個投資組合的凈值變化情況(2015年)。x軸表示時間從2015年1月到2015年12月,y軸表示投資組合的凈值的變化,用相對于資產凈值的初值的百分比表示??梢灾庇^地觀察到,多樣化的投資組合,其凈值曲線的波動性較小。由于Random投資組合的演化趨勢和Rank投資組合類似,所以沒有一同繪制在圖3中。

圖3 兩個投資組合凈值的變化情況
4.1 相關工作
人們使用各種機器學習和數據挖掘方法,來進行股票價格的預測[6],具體的技術包括支持向量機和支持向量回歸(SVMandSVR)[6,9]、人工神經網絡[10]、樸素貝葉斯技術[11]、模糊系統[12]、遺傳算法[13]等。
支持向量回歸技術,以其強大的非線性建模能力,已經在股票價格預測領域得到了廣泛的應用[6]。人們還嘗試了把該技術和其他技術結合,包括小波分析(WaveletAnalysis)、粒子群優化(ParticleSwarmOptimization)、神經網絡(NeuralNetwork)等。有些基于SVR的交易模型,不僅使用技術指標(TechnicalIndicators)作為輸入,同時把文本分析的結果也作為新的特征加以運用。本文也基于SVR技術建立了交易模型,本文工作的主要區別是,在常用的基礎指標上,本文手工構造了一些導出指標,這些指標刻畫了典型的價格運動模式、市場里的超買/超賣狀況和背離狀況。此外,本文對指標進行了規范化處理,以便訓練出一個適用不同股票的通用交易模型。
文獻[14]把關聯規則分析和聚類分析結合起來,研究不同金融市場的聯動性(Co-movement),并且建立一個模型,用于投資組合推薦。文獻[15]提出了一種投資組合的多樣化方案。該方案通過K-means聚類算法和社交網絡的社區發現(CommunityDetection)算法實現。其使用的相似性系數,依據一對股票在一段時間內的預期收益來計算。即便兩只股票的價格變化表現出一定的相似性,但是當把止損操作考慮進來以后,交易模型在兩者上的盈利表現不一定一致。于是,本研究采用了和上述文獻不同的相似度計算方法,它通過交易模型在兩只股票上的近期歷史表現(即收益情況)來計算股票相似度,把交易模型預測不準確的情況考慮進來。如果預測不準確,并且價格下跌到一定程度,交易系統將激發止損操作。傳統相似度計算方法,沒有考慮到這種情況,把一些股票分配到同一個聚類,在預測不準確的時候,引起雪崩式的止損操作,導致比較大的損失。
4.2 討論
本文通過一些手工構造的導出指標,刻畫了典型的價格運動模式、超買/超賣市場狀態以及背離市場狀態。近年來,深度學習技術展現出優異的性能,它能夠無監督地從數據中學習各個抽象級別(從低級到高級的)的特征。使用深度學習技術[16-17]識別股票價格圖中的模式,是一個值得研究的課題。
本研究基于支持向量回歸技術創建了一個交易模型。對于模型的輸入向量(特征),基于常用指標構造了若干導出指標,以便刻畫典型的價格變化模式、超買/超買市場狀況以及背離市場狀況。這些指標經過規范化處理,為所有股票訓練一個統一的交易模型。為了提高該交易模型的穩健性,提出了投資組合的多樣化方法。利用近30天交易模型在不同股票上的盈利表現,計算股票的相似性,并且基于該相似性進行股票聚類,從各個類別中選擇部分股票,構成多樣化的投資組合。實驗結果顯示,該交易模型能夠對不同股票進行交易,并且創造了超過定期存款利息的收益,顯示了其泛化能力。此外,交易模型的利潤率曲線的波動性降低了,意味著交易模型的穩健性獲得了提高。
)
[1]ABU-MOSTAFAYS,ATIYAAF.Introductiontofinancialforecasting[J].AppliedIntelligence, 1996, 6(3): 205-213.
[2]FAMAEF.Thebehaviorofstockmarketprices[J].JournalofBusiness, 1965, 38(1): 34-105.
[3]NISARS,HANIFM.Testingweakformofefficientmarkethypothesis:empiricalevidencefromsouth-Asia[J].WorldAppliedSciencesJournal, 2011, 17(4): 414-427.
[4]STEINERC.AutomateThis:HowAlgorithmsCametoRuleOurWorld[M].London:PortfolioPublishing, 2012: 75-99.
[5]MURPHYJJ.Technicalanalysisofthefinancialmarkets:acomprehensiveguidetotradingmethodsandapplications[M].UpperSaddleRiver,NJ:PrenticeHallPress, 1999: 100-137.
[6]CAVALCANTERC,BRASILEIRORC,SOUZAVLF,etal.Computationalintelligenceandfinancialmarkets:asurveyandfuturedirections[J].ExpertSystemswithApplications, 2016, 55: 194-211.
[7]NEWMANMEJ.Fastalgorithmfordetectingcommunitystructureinnetworks[J].PhysicalReviewE:StatisticalNonlinearandSoftMatterPhysics, 2004, 69(6): 066133.
[8]CUIA,CHEND,FUY.Communitydetectionbasedonweightednetworks[C]//NPC’08:Proceedingsofthe2008IFIPInternationalConferenceonNetworkandParallelComputing.Washington,DC:IEEEComputerSociety, 2008: 273-280.
[9]LUCJ,LEETS,CHIUCC.Financialtimeseriesforecastingusingindependentcomponentanalysisandsupportvectorregression[J].DecisionSupportSystems, 2009, 47(2): 115-125.
[10]LIYH,MAW.Applicationsofartificialneuralnetworksinfinancialeconomics:asurvey[C]//ISCID’10:Proceedingsofthe2010InternationalSymposiumonComputationalIntelligenceandDesign.Washington,DC:IEEEComputerSociety, 2010: 211-214.
[11]PATELJ,SHAHS,THAKKARP,etal.Predictingstockandstockpriceindexmovementusingtrenddeterministicdatapreparationandmachinelearningtechniques[J].ExpertSystemswithApplications, 2015, 42(1): 259-268.
[12]CHANGPC,LIUCH.ATSKtypefuzzyrulebasedsystemforstockpriceprediction[J].ExpertSystemswithApplications, 2008, 34(1): 135-144.
[13]CHENY,MABUS,SHIMADAK,etal.Ageneticnetworkprogrammingwithlearningapproachforenhancedstocktradingmodel[J].ExpertSystemswithApplications, 2009, 36(10): 12537-12546.
[14]LIAOS-H,CHOUS-Y.Datamininginvestigationofco-movementsontheTaiwanandChinastockmarketsforfutureinvestmentportfolio[J].ExpertSystemswithApplications, 2013, 40(5): 1542-1554.
[15]KOOCHAKZADEHN.Aheuristicstockportfoliooptimizationapproachbasedondataminingtechniques[D].Calgary,Alberta,Canada:UniversityofCalgary, 2012: 23-69.
[16]TAKEUCHIL,LEEY.Applyingdeeplearningtoenhancemomentumtradingstrategiesinstocks[EB/OL]. [2016- 07- 01].http://cs229.stanford.edu/proj2013/TakeuchiLee-ApplyingDeepLearningToEnhanceMomentumTradingStrategiesInStocks.pdf.
[17] 孫志軍,薛磊,許陽明,等.深度學習研究綜述[J].計算機應用研究,2012,29(8):2806-2810.(SUNZJ,XUEL,XUYM,etal.Surveyondeeplearningresearch[J].ApplicationResearchofComputers, 2012, 29(8): 2806-2810.)
ThisworkispartiallysupportedbyNationalNaturalScienceFoundationofChina(61170013, 61432006),ProjectIndustrializationofHighThroughputandReal-timeBusinessIntelligenceSystemonBigDataofGuangdongScienceandTechnologyDepartment(2015B010131015).
QIN Xiongpai, born in 1971, Ph.D., lecturer. His research interests include high performance database, big data.
CHEN Yueguo, born in 1978, Ph.D., associate professor. His research interests include knowledge graph and big data systems.
WANG Bangguo, born in 1993, M. S. candidate. His research interests include financial big data.
Application case of big data analysis—robustness of a trading model
QIN Xiongpai1,2, CHEN Yueguo1,2*, WANG Bangguo1,2
(1.InformationSchool,RenminUniversityofChina,Beijing100872,China; 2.KeyLabofDataEngineeringandKnowledgeEngineeringofMinistryofEducation(RenminUniversityofChina),Beijing100872,China)
The robustness of a trading model means that the model’s profitability curve is less volatile and does not fluctuate significantly. To solve the problem of robustness of an algorithmic trading model based on Support Vector Regression (SVR), several strategies to derive a unified trading model and a portfolio diversification method were proposed. Firstly, the algorithm trade model based on SVR was introduced. Then, based on the commonly used indicators, a number of derived indicators were constructed for short term forecasting of stock prices. The typical patterns of recent price movements, overbought/oversold market conditions, and divergence of market conditions were characterized by these indicators. These indicators were normalized and used to train the trading model so that the model can be generalized to different stocks. Finally, a portfolio diversification method was designed. In the portfolio, the correlation between various stocks, sometimes leads to great investment losses; because the price of the stock with strong correlation changes in the same direction. If the trading model doesn’t predict the price trend correctly, then stop loss will be triggered, and these stocks will cause loss in a mutual accelerated manner. Stocks were clustered into different categories according to the similarity, and a diversified portfolio was formed by selecting a number of stocks from different clustered categories. The similarity of stocks, was defined as the similarity of the recent profit curves on different stocks by trading models.Experiments were carried out on the data of 900 stocks for 10 years. The experimental results show that the transaction model can obtain excess profit rate over time deposit, and the annualized profit rate is 8.06%. The maximum drawdown of the trading model was reduced from 13.23% to 5.32%, and the Sharp ratio increased from 81.23% to 88.79%. The volatility of the profit margin curve of the trading model decreased, which means that the robustness of the trading model was improved.
algorithm trading; Support Vector Regression (SVR); robustness; portfolio diversification; big data
2016- 09- 26;
2016- 10- 14。
國家自然科學基金資助項目(61170013, 61432006);廣東省科技廳高通量大數據實時商業智能系統產業化項目(2015B010131015)。
覃雄派(1971—),男(壯族),廣西德保人,講師,博士,CCF會員,主要研究方向: 高性能數據庫、大數據; 陳躍國(1978—),男,遼寧營口人,副教授,博士,CCF會員,主要研究方向:知識圖譜、大數據系統; 王邦國(1993—),男,廣東中山人,碩士研究生,主要研究方向:金融大數據。
1001- 9081(2017)03- 0660- 08
10.11772/j.issn.1001- 9081.2017.03.660
TP311.13
A