文/張紫涵,上海大學經濟學院
近年來,“量化投資”的熱潮在國內悄然掀起,無論是校園內還是投資界都給予了高度關注。量化投資是指通過數量化方式及計算機程序化發出買賣指令,以獲取收益為目的的交易方式。量化在國外已有幾十年的實踐,量化投資基金產品在國外金融市場中占據了重要地位。但目前國內整體還處于起步階段,不像國外那樣成熟,對量化的限制也比較多。但未來隨著我國資本市場改革不斷深入推進、金融產品的不斷創新,應該會有不錯的前景,投資者仍有很多投資機會。
量化投資利用數理統計、計算機等工具分析數據、建立模型,并按預先設定好的邏輯進行投資決策。與主觀交易、人工盯盤相比,計算機在處理數據的速度和準確性方面有絕對優勢,因此能快速反應和決策,把握市場稍縱即逝的機會。同時機器不受市場情緒、心理因素的干擾,能夠實現精準投資,具有更有效的風險控制能力,業績更為穩定。
量化投資的核心問題就在于如何構建出一套完善的投資策略。沒有一套優秀的策略,是很難通過量化交易獲利的。基礎的量化策略包括配對交易策略、均線系統策略、通道突破策略、隨機指標交易策略等。本文采用了布林帶通道突破策略才進行投資決策。
量化策略可分為動量策略和反轉策略兩大類。兩類投資思路不同,一類認為當股價超過某個閾值時則具有繼續上漲的趨勢;另一類則認為股價在一定范圍內波動,當股價上漲超過邊界后會有下降趨勢。本文是基于反轉的思想來構建量化策略的,具體使用了通道突破策略。通道突破策略利用過去一段時間內的價格信息,構建出上下兩條通道線,并根據上下界及價格走勢之間的關系來制定買賣信號進行交易。上下界的構建有多種方式,經過對比,最終選擇了布林帶通道(Bollinger Band)。
布林帶的上通道為股價均線加上一定倍數的標準差,下通道為股價均線減去一定倍數的標準差。布林帶通道的設定蘊含著統計學原理:假設股價走勢呈正態分布,那么均值加減一個標準差內的數據應占到總體的66.26%,加減兩個標準差內的數據應占到總體的9 5.44%,三個標準差內的數據應占到總體的99.72%,即股價偏離出三個標準差外的概率不到1%,是一個小概率事件。
若股價走勢是平穩序列,那么根據平穩序列均值、方差不隨時間改變的特征,預期股價偏離之后應該還會再次回到均值附近。所以預計股價突破布林帶通道上下界后大概率會回到通道線內。因此一個一般布林帶通道策略的內在邏輯其實是反轉策略的思想,在股價向上突破布林帶上界時預期價格會跌回通道內,于是做空股票,反之在股價向下突破布林帶下界時做多股票,即“低買高賣”。
本文選用了恒生電子(600570)在2017年1月1日到2017年12月31日之間共計244個交易日的股價收盤價數據,數據來源于雅虎金融(Yahoo Finance)。恒生電子的股價在2017年經歷了先走低后走高的過程。2017年期間股價曾低至37元,最高價則曾突破56元,波動較大,但年初與年末的收盤價相差不大。同時繪制了20日布林帶通道的示意圖,中間的曲線表示股價,最上的曲線為布林帶通道上界,下方曲線為布林帶下界,可以看出股價基本都是在布林帶通道內波動的。

圖1 布林帶通道示意圖
如策略原理所述,當序列平穩時,才會有均值回復特征,即股價偏離時才會回到均值附近。所以要對股價進行ADF檢驗。檢驗結果中p值為0.424,故不能拒絕原假設,所以認為股價數據為非平穩序列。
雖然傳統布林帶策略是根據股價構建通道的,但我們真正需要的是一個平穩序列,股價序列不符合要求。所以我們對股價序列進行進一步處理,得到股價的對數收益率序列。對數收益率計算方法:

進而再對股價的對數收益率再進行平穩性檢驗。在ADF檢驗中得到p值小于0.001,因此拒絕了原假設,表明對數收益率序列為平穩序列。因此我們在后續刻畫布林帶通道上下界時使用對數收益率數據代替股價。
首先,設置參數:n日均線和標準差倍數t。所選n越大則上下通道線會越平滑;t越大則上下通道距離越大,也意味著價格越難突破上下通道。
第二步,根據n和t構建出布林通道上界和下界。如前文所述,因為股價收益率不平穩而對數收益率平穩,構建時依據對數收益率。求出過去n日內對數收益率的均值和標準差,上界為均值加上t倍標準差,下界為均值減去t倍標準差。
第三步,構建買賣信號:當日對數收益率下穿布林帶下通道時,就在下一日釋放買入信號,所謂“下穿”就是指對數收益率在前一日大于布林帶下界值而當日小于布林帶下界;當日對數收益率上穿布林帶上通道時,就在下一日釋放賣空信號,所謂“上穿”就是指對數收益率在前一日小于布林帶上界值而當日大于布林帶上界。
第四步,根據買賣信號進行買賣,計算勝率與收益。為方便計算,假設買入(賣空)的一天后就進行平倉,不考慮交易費用。
最后,改變參數(n,t),再重復以上過程,反復迭代,挑選最合適的參數。不同參數(n,t)下的部分投資交易結果如下表,WinRate表示勝率,即收益為正的交易次數占總交易次數的比例;MeanWin表示收益為正的交易的平均收益率;MeanLoss表示收益為負的交易的平均收益率;AccumRet表示累計收益率;Stock列表示持續持有股票的收益結果。

表1 策略結果
一直持有這只股票的年收益率為-3.32%。從整體來看,采用布林帶通道策略交易雖然勝率基本超過1/2,但收益未必就高于一直持有股票,參數的選擇很重要。當布林帶寬度過大即t過大時,會出現交易機會過少的情況。比如t=3的策略中,出現了無法突破布林帶通道導致不交易的情況,也使得收益不高,說明交易信號設置條件不能過于嚴格。
在各種參數組合中,表現最好的是(10,1),即選用10日均線和1倍標準差,累計收益達到了57.2%,遠好于此時間區間內一直持有股票獲得的收益。總共產生了70次交易信號,其中買入信號3 1次,賣空信號39次,勝率為61.42%。
在金融市場中,許多資產收益率序列的波動具有持續現象,即大波動后跟著大波動,小波動后跟著小波動;收益率序列并不都服從正態分布,許多序列存在條件異方差。因此對收益率序列的波動進行建模是十分有意義的,故引入GARCH模型。目前GARCH族模型已廣泛地應用于金融市場中資產收益波動率的預測。
在前文構建的策略中,布林帶上下通道根據均值和標準差決定。本部分利用GARCH模型估計波動率以代替標準差,重新構建通道。首先對對數收益率數據進行L-B檢驗。檢驗結果拒絕了原假設,說明對數收益率序列不是白噪聲序列,存在自相關,可以利用GARC H模型估計。用GARCH(1,1)估計,得到:
用GARCH估計得到的波動率代替標準差重新構建布林帶通道。構建時對于每一日的布林帶上下界限僅用該日之前的數據估計波動率,而非全部樣布數據。重新構建后再次進行投資交易,得到的部分結果見下表。

表2 策略結果
改用GARCH(1,1)估計波動率得到的投資回報并沒有優于標準差,但是交易次數增加了。在各種參數組合中,表現最好的是(2 0,0.5),即選用20日均線和0.5倍標準差,累計收益達到了55.12%。總共產生了111次交易信號,其中買入信號56次,賣空信號53次,勝率為60.55%。
本文利用股票對數收益率、收益率的標準差以及GARCH估計得到的波動率構建了兩個布林帶通道交易策略。并用恒生電子(60 0570)在2017年1月1日到2017年12月31日之間共計244個交易日的股價收盤價數據進行回測,計算在選用不同的均線期數n和標準差倍數t下的收益情況。回測結果中,可以發現在合適的參數下,通過布林帶策略進行量化投資得到的收益率明顯高于持續持有股票。其中,標準差模型整體收益情況略好于波動率模型。標準差模型在10日均線、1倍標準差的情況下獲得最高收益率57.2%;波動率模型在20日均線、0.5倍波動率的情況下獲得最高收益率55.12%。