當前位置:
首頁 > 股票 > 量化策略的七個陷阱

量化策略的七個陷阱

本文探討了量化投資新手在執行回測和建立量化模型時應時刻注意的七個「大坑」。其中,有些誤區可能很常見,但其影響力卻往往被人忽略,有些誤區可能在學術界和實踐者的研究中司空見慣,通常我們也把他們視為理所當然。

1、倖存者偏差(Survivorship bias)

倖存者偏差是投資者面對的最普遍問題之一,而且很多人都知道倖存者偏差的存在,但很少人重視它所產生的效果。我們在回測的時候傾向於只使用當前尚存在的公司,這就意味我們剔除了那些因為破產、重組而退市的公司的所產生的影響。

在對歷史數據進行調整時,一些破產、退市、表現不佳的股票定期都會被剔除。而這些被剔除的股票沒有出現在你策略的股票池裡,也就是說對過去做了回測時只利用了現在成分股的信息,剔除了那些在未來因為業績或者股價表現不好而被剔除出成分股中股票的影響。

下圖中顯示了MSCI歐洲指數成分股等權重作為一個投資組合在過去的表現。藍線為正確的投資組合,紅線為存在倖存者偏差的組合。可以發現紅線的投資回報率明顯高於藍線,從而使在回測時高估投資組合的收益。而更令人震驚的是,在做因子分析時,它有可能帶來完全相反的結果。

也就是說當我們使用過去30年中表現最好的那些公司進行回測時,即便一些公司當時的信用風險高,當你知道誰會倖存下來時,於是在信用風險高或者陷入困境時買入,收益非常高。若考慮進那些破產、退市、表現不佳的股票後,結論則會完全相反,投資高信用風險企業的收益率長期遠低於信用穩健的企業。

2、前視偏差(Look-ahead bias)

作為「七宗罪」之一的倖存者偏差是我們站在過去的時點上無法預知哪些公司能倖存下來並依舊是今天的指數成分股,而倖存者偏差僅僅是前視偏差的一種特例。前視偏差是指在回測時,使用了回測當時還不可用或者還沒有公開的數據,這也是回測中最常見的錯誤。

前視偏差的一個很明顯的例子就體現在財務數據上,而對財務數據的修正則更容易造成難以發現的錯誤。一般來說,每個公司財務數據發布的時間點不同,往往存在滯後。而在回測時我們往往根據每個公司數據發布的時間點去評估公司財務狀況。

但是,當時點數據(Point-in-time data,簡稱PIT data)不可獲得時,財務報告的滯後假設往往是錯誤的。下圖即印證了採用PIT數據與非PIT數據所造成的差異。同時我們在下載歷史宏觀數據時往往得到的經過修正後的終值,但很多發達國家GDP數據發布後要經過兩次調整,各大公司財報的修正也經常會進行修正。

在我們進行回測的時間點,終值往往尚無可知,只能使用初始值進行分析。可能有些人認為微小的修正並不會影響結論,但實際情況顯示:很多宏觀數據根據初值進行回歸結果並不顯著,公司財務數據的調整將對選股結果產生直接影響。

3、講故事(The sin of storytelling)

一些人喜歡沒有任何數據就開始講故事,做量化的人喜歡拿著數據和結果講故事。兩種情況有很多類似之處,擅長講故事的人或者說擅長解釋數據結果的人往往在得到數據之前,內心已經存在既定的腳本,只需要找到數據支撐即可。

回顧1997年-2000年和2000年-2002年兩段時間的美國科技成分股和Russell 3000指數,我們會發現一個截然相反的結論。從1997-2000年間的美國科技成分股來看,利潤率是一個很好的因子,且回測結果也十分可信,然而如果拉長時間區間到2002年,我們會發現利潤率指標不再是一個好的因子。

但從Russell 3000指數的市場表現來看,我們卻得到了相反的結論,利潤率指標仍然是一個有效的因子,可見,股票池的選取和回測的時間長短對因子的有效性判斷影響非常大。所以講故事的人並不能得到正確的結論。

市場中每天都在發現新的「好因子」,尋找永動機。能夠發布出來的策略都是回測表現良好的。雖然講故事的人對歷史的解釋非常動聽,但其對未來的預測幾乎沒用。

金融經濟中的相關性和因果性往往很難弄得清楚明白,所以,當我們做出和常識相悖或是和原來判斷相符的結果時,最好不要去做一名講故事的人。

4、數據挖掘(Data mining and data snooping)

數據挖掘可以說是目前備受關注的領域,基於海量的數據與計算機的算力支持,人們往往希望能夠得到難以察覺的「好因子」。但是原有的金融數據還未及海量,且交易數據並不滿足「低噪音」的數據前提。

有時數據挖掘幾乎是無效的。例如,我們對標普500指數採用兩種不同的因子加權演算法建模,選擇2009-2014年數據進行回測。

結果顯示,採用2009-2014年數據篩選出6個表現最好的因子,使用等權重演算法進行回測的結果非常完美,而採用歷史數據進行樣本外回測的結果卻是一條直線。

因此,在構建策略或者尋找「好因子」時,我們都應該有清晰的邏輯和動機,量化分析只是驗證自己的邏輯或動機的一種工具,而不是尋找邏輯的捷徑。一般而言,我們構建策略或尋找因子的動機多源於金融學基礎理論知識、市場的有效性、行為金融學等領域。當然,我們也並不否認數據挖掘在量化領域的應用價值。

5、信號衰減、換手率、交易成本

信號衰減指的是一個因子產生後對未來多長時間的股票回報有預測能力。一般來說,高換手率和信號衰減有關。不同的股票選擇因子往往具有不同的信息衰減特徵。越快的信號衰減往往需要更高的換手率去攫取收益。

然而,更高的換手率往往也意味著更高的交易成本。在組合構建中添加換手率約束是一個相對簡單的方法,但並不是最理想的方法,因為換手率限制有時會幫助我們鎖定收益,有時也會損害既定的組合表現。因此,權衡信號衰減、交易成本以及模型預測能力是構建投資組合的關鍵。

那麼,如何確定最優的調整頻率呢?我們需要注意的是,收緊換手率約束並不意味著降低調整頻率。例如,我們常常聽到類似「我們是長期價值投資者,我們預期持有股票3-5年。

因此,我們一年調整一次即可」。但是,信息往往來的很快,我們需要及時調整我們的模型和預期。即使我們的換手率約束很緊,我們仍然需要在適當時機加快調倉頻率。下圖以一個衰減速度很快的因子的極端案例為例進行說明。

當每天收盤時買入當天表現最差的100個股票,賣出過去的持倉,持續每日交易,回報率非常高。這裡的錯誤也是前視偏差,還沒收盤我們並不知道當天哪些股票表現最差,即使用程序化交易,這種策略也是不可行。我們只能以每天開盤價買入昨天表現最差的100個股票。通過對比,以開盤價買入的策略幾乎一條直線。

6、異常值(Outliers)

傳統的異常值控制技術主要包括winsorization和truncation兩種,數據的標準化也可近似看做異常值控制的方法之一,標準化技術有可能對模型的表現產生顯著的影響。比如下圖中的標普BMI韓國指數成分股的利潤率,採用平均值、剔除1%、2%極值等方法的結果差異很大。宏觀數據中經常出現此類問題,少數極值若不做預處理,會嚴重影響回歸結果。

雖然異常值有可能包含著有用的信息,但是大部分情況來看,他們並不包含有用信息。當然,對於價格動量因子來說是例外。

如下圖所示,藍線是去除了異常值後的組合表現,紅線是原始數據。我們可以看到原始數據的動量策略要遠遠好於去除異常值後的策略表現。也就是說異常值包含了很大一部分信息,如果我們在做標準化時去除了異常值,我們就相當於損失了很大一部分信息。因此,最好的辦法是對數據進行微觀層面的聚合然後再計算總的指標。

7、非對稱性

一般來說,做多因子策略時較常用的策略是多空策略,即做多好的股票同時做空差的股票。可惜的是,並不是所有的因子都是平等的,多數因子的多空收益特徵存在不對稱性,加之做空可能存在的成本和現實可行性,也給量化投資造成了不小的困擾。

下圖展示了因子的多空收益特徵,按照差異大小進行排列。越靠上的因子由於做空需求旺盛以及較高的交易成本,越難以攫取超額alpha。同時,我們可以看到,價值因子往往從做多端獲得收益,而價格動量因子和質量因子更多的依靠做空端獲得更多的alpha。分析師修正因子傾向於擁有更對稱的多空收益特徵。

私募工場聯繫方式:

直播:微吼直播(http://e.vhall.com),搜索私募工場。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FundsWorks 的精彩文章:

晚年破產:日本老年人的噩夢是否會重演?
本傑明·格拉漢姆選股策略

TAG:FundsWorks |