本文金程AQF小編將與大家一起探討量化投資新手在執(zhí)行回測和建立量化模型時應(yīng)時刻注意的七個“大坑”。
其中,有些誤區(qū)可能很常見,但其影響力卻往往被人忽略,有些誤區(qū)可能在學(xué)術(shù)界和實踐者的研究中司空見慣,通常我們也把他們視為理所當然。
1、幸存者偏差(Survivorship bias)
幸存者偏差是投資者面對的最普遍問題之一,而且很多人都知道幸存者偏差的存在,但很少人重視它所產(chǎn)生的效果。我們在回測的時候傾向于只使用當前尚存在的公司,這就意味我們剔除了那些因為破產(chǎn)、重組而退市的公司的所產(chǎn)生的影響。
在對歷史數(shù)據(jù)進行調(diào)整時,一些破產(chǎn)、退市、表現(xiàn)不佳的股票定期都會被剔除。而這些被剔除的股票沒有出現(xiàn)在你策略的股票池里,也就是說對過去做了回測時只利用了現(xiàn)在成分股的信息,剔除了那些在未來因為業(yè)績或者股價表現(xiàn)不好而被剔除出成分股中股票的影響。
下圖中顯示了MSCI歐洲指數(shù)成分股等權(quán)重作為一個投資組合在過去的表現(xiàn)。藍線為正確的投資組合,紅線為存在幸存者偏差的組合??梢园l(fā)現(xiàn)紅線的投資回報率明顯高于藍線,從而使在回測時高估投資組合的收益。而更令人震驚的是,在做因子分析時,它有可能帶來完全相反的結(jié)果。
.jpg)
也就是說當我們使用過去30年中表現(xiàn)較好的那些公司進行回測時,即便一些公司當時的信用風險高,當你知道誰會幸存下來時,于是在信用風險高或者陷入困境時買入,收益非常高。若考慮進那些破產(chǎn)、退市、表現(xiàn)不佳的股票后,結(jié)論則會完全相反,投資高信用風險企業(yè)的收益率長期遠低于信用穩(wěn)健的企業(yè)。
2、前視偏差(Look-ahead bias)
作為“七宗罪”之一的幸存者偏差是我們站在過去的時點上無法預(yù)知哪些公司能幸存下來并依舊是今天的指數(shù)成分股,而幸存者偏差僅僅是前視偏差的一種特例。前視偏差是指在回測時,使用了回測當時還不可用或者還沒有公開的數(shù)據(jù),這也是回測中最常見的錯誤。
前視偏差的一個很明顯的例子就體現(xiàn)在財務(wù)數(shù)據(jù)上,而對財務(wù)數(shù)據(jù)的修正則更容易造成難以發(fā)現(xiàn)的錯誤。一般來說,每個公司財務(wù)數(shù)據(jù)發(fā)布的時間點不同,往往存在滯后。而在回測時我們往往根據(jù)每個公司數(shù)據(jù)發(fā)布的時間點去評估公司財務(wù)狀況。
但是,當時點數(shù)據(jù)(Point-in-time data,簡稱PIT data)不可獲得時,財務(wù)報告的滯后假設(shè)往往是錯誤的。下圖即印證了采用PIT數(shù)據(jù)與非PIT數(shù)據(jù)所造成的差異。同時我們在下載歷史宏觀數(shù)據(jù)時往往得到的經(jīng)過修正后的終值,但很多發(fā)達國家GDP數(shù)據(jù)發(fā)布后要經(jīng)過兩次調(diào)整,各大公司財報的修正也經(jīng)常會進行修正。
在我們進行回測的時間點,終值往往尚無可知,只能使用初始值進行分析。可能有些人認為微小的修正并不會影響結(jié)論,但實際情況顯示:很多宏觀數(shù)據(jù)根據(jù)初值進行回歸結(jié)果并不顯著,公司財務(wù)數(shù)據(jù)的調(diào)整將對選股結(jié)果產(chǎn)生直接影響。
.jpg)

3、講故事(The sin of storytelling)
一些人喜歡沒有任何數(shù)據(jù)就開始講故事,做量化的人喜歡拿著數(shù)據(jù)和結(jié)果講故事。兩種情況有很多類似之處,擅長講故事的人或者說擅長解釋數(shù)據(jù)結(jié)果的人往往在得到數(shù)據(jù)之前,內(nèi)心已經(jīng)存在既定的腳本,只需要找到數(shù)據(jù)支撐即可。
回顧1997年-2000年和2000年-2002年兩段時間的美國科技成分股和Russell 3000指數(shù),我們會發(fā)現(xiàn)一個截然相反的結(jié)論。從1997-2000年間的美國科技成分股來看,利潤率是一個很好的因子,且回測結(jié)果也十分可信,然而如果拉長時間區(qū)間到2002年,我們會發(fā)現(xiàn)利潤率指標不再是一個好的因子。


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

市場中每天都在發(fā)現(xiàn)新的“好因子”,尋找永動機。能夠發(fā)布出來的策略都是回測表現(xiàn)良好的。雖然講故事的人對歷史的解釋非常動聽,但其對未來的預(yù)測幾乎沒用。
金融經(jīng)濟中的相關(guān)性和因果性往往很難弄得清楚明白,所以,當我們做出和常識相悖或是和原來判斷相符的結(jié)果時,較好不要去做一名講故事的人。
4、數(shù)據(jù)挖掘(Data mining and data snooping)
數(shù)據(jù)挖掘可以說是目前備受關(guān)注的領(lǐng)域,基于海量的數(shù)據(jù)與計算機的算力支持,人們往往希望能夠得到難以察覺的“好因子”。但是原有的金融數(shù)據(jù)還未及海量,且交易數(shù)據(jù)并不滿足“低噪音”的數(shù)據(jù)前提。
有時數(shù)據(jù)挖掘幾乎是無效的。例如,我們對標普500指數(shù)采用兩種不同的因子加權(quán)算法建模,選擇2009-2014年數(shù)據(jù)進行回測。
結(jié)果顯示,采用2009-2014年數(shù)據(jù)篩選出6個表現(xiàn)較好的因子,使用等權(quán)重算法進行回測的結(jié)果非常完美,而采用歷史數(shù)據(jù)進行樣本外回測的結(jié)果卻是一條直線。


因此,在構(gòu)建策略或者尋找“好因子”時,我們都應(yīng)該有清晰的邏輯和動機,量化分析只是驗證自己的邏輯或動機的一種工具,而不是尋找邏輯的捷徑。一般而言,我們構(gòu)建策略或?qū)ふ乙蜃拥膭訖C多源于金融學(xué)基礎(chǔ)理論知識、市場的有效性、行為金融學(xué)等領(lǐng)域。當然,我們也并不否認數(shù)據(jù)挖掘在量化領(lǐng)域的應(yīng)用價值。
5、信號衰減、換手率、交易成本
信號衰減指的是一個因子產(chǎn)生后對未來多長時間的股票回報有預(yù)測能力。一般來說,高換手率和信號衰減有關(guān)。不同的股票選擇因子往往具有不同的信息衰減特征。越快的信號衰減往往需要更高的換手率去攫取收益。
然而,更高的換手率往往也意味著更高的交易成本。在組合構(gòu)建中添加換手率約束是一個相對簡單的方法,但并不是最理想的方法,因為換手率限制有時會幫助我們鎖定收益,有時也會損害既定的組合表現(xiàn)。因此,權(quán)衡信號衰減、交易成本以及模型預(yù)測能力是構(gòu)建投資組合的關(guān)鍵。
那么,如何確定較優(yōu)的調(diào)整頻率呢?我們需要注意的是,收緊換手率約束并不意味著降低調(diào)整頻率。例如,我們常常聽到類似“我們是長期價值投資者,我們預(yù)期持有股票3-5年。
因此,我們一年調(diào)整一次即可”。但是,信息往往來的很快,我們需要及時調(diào)整我們的模型和預(yù)期。即使我們的換手率約束很緊,我們?nèi)匀恍枰谶m當時機加快調(diào)倉頻率。下圖以一個衰減速度很快的因子的極端案例為例進行說明。

當每天收盤時買入當天表現(xiàn)最差的100個股票,賣出過去的持倉,持續(xù)每日交易,回報率非常高。這里的錯誤也是前視偏差,還沒收盤我們并不知道當天哪些股票表現(xiàn)最差,即使用程序化交易,這種策略也是不可行。我們只能以每天開盤價買入昨天表現(xiàn)最差的100個股票。通過對比,以開盤價買入的策略幾乎一條直線。
6、異常值(Outliers)
傳統(tǒng)的異常值控制技術(shù)主要包括winsorization和truncation兩種,數(shù)據(jù)的標準化也可近似看做異常值控制的方法之一,標準化技術(shù)有可能對模型的表現(xiàn)產(chǎn)生顯著的影響。比如下圖中的標普BMI韓國指數(shù)成分股的利潤率,采用平均值、剔除1%、2%極值等方法的結(jié)果差異很大。宏觀數(shù)據(jù)中經(jīng)常出現(xiàn)此類問題,少數(shù)極值若不做預(yù)處理,會嚴重影響回歸結(jié)果。

雖然異常值有可能包含著有用的信息,但是大部分情況來看,他們并不包含有用信息。當然,對于價格動量因子來說是例外。
如下圖所示,藍線是去除了異常值后的組合表現(xiàn),紅線是原始數(shù)據(jù)。我們可以看到原始數(shù)據(jù)的動量策略要遠遠好于去除異常值后的策略表現(xiàn)。也就是說異常值包含了很大一部分信息,如果我們在做標準化時去除了異常值,我們就相當于損失了很大一部分信息。因此,較好的辦法是對數(shù)據(jù)進行微觀層面的聚合然后再計算總的指標。

7、非對稱性
一般來說,做多因子策略時較常用的策略是多空策略,即做多好的股票同時做空差的股票。可惜的是,并不是所有的因子都是平等的,多數(shù)因子的多空收益特征存在不對稱性,加之做空可能存在的成本和現(xiàn)實可行性,也給量化投資造成了不小的困擾。
下圖展示了因子的多空收益特征,按照差異大小進行排列。越靠上的因子由于做空需求旺盛以及較高的交易成本,越難以攫取超額alpha。同時,我們可以看到,價值因子往往從做多端獲得收益,而價格動量因子和質(zhì)量因子更多的依靠做空端獲得更多的alpha。分析師修正因子傾向于擁有更對稱的多空收益特征。

量化金融分析師(簡稱AQF ,Analyst of Quantitative Finance)由量化金融標準委員會(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領(lǐng)域的專業(yè)水平證書。>>>點擊咨詢AQF證書含金量
一、課程適合人群:
金融工程/數(shù)學(xué)專業(yè)背景的同學(xué)/工作人士,希望進一步學(xué)習Python編程以及在量化投資的實戰(zhàn)應(yīng)用;
非金融工程專業(yè)背景的同學(xué)/工作人士,希望迅速成為寬客;
金融相關(guān)人員,希望學(xué)習如何系統(tǒng)的做量化策略;
個人投資者,希望系統(tǒng)學(xué)習掌握量化投資相關(guān)的實務(wù)技能,從模型開發(fā),回測,策略改進,搭建穩(wěn)定的量化交易系統(tǒng)。
1、《量化投資基礎(chǔ)》
主要涵蓋了量化投資領(lǐng)域的必備知識,包括:基本面分析、技術(shù)分析、數(shù)量分析、固定收益、資產(chǎn)組合管理、權(quán)益、另類投資等內(nèi)容。
2、《Python語言編程基礎(chǔ)》
包含了Python環(huán)境搭建、基礎(chǔ)語法、變量類型、基本函數(shù)、基本語句、第三方庫、金融財務(wù)實例等內(nèi)容。旨在為金融財經(jīng)人提供最需要的編程方法。
3、《基于Python的經(jīng)典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對交易模型、波動擴張模型、Alpha模型、機器學(xué)習(隨機森林模型、主成分分析)、深度學(xué)習(人工神經(jīng)網(wǎng)絡(luò))等內(nèi)容。
4、《量化交易系統(tǒng)設(shè)計》
旨在學(xué)習量化交易系統(tǒng)的具體知識,包括過濾器,進入信號,退出信號,倉位管理等詳細內(nèi)容,并指導(dǎo)學(xué)員設(shè)計涵蓋個人交易哲學(xué)的量化交易系統(tǒng)。
5、《量化實盤交易》
旨在為解決實際量化交易策略搭建過程中的一些問題提供較優(yōu)解決方案。
三、掌握Python及量化投資技能,我們能做什么?
1、熟悉中國主要金融市場及交易產(chǎn)品的交易機制;
2、熟知國內(nèi)外期貨交易、股市交易的異同點和內(nèi)在運行機制;
3、掌握經(jīng)典量化交易策略細節(jié)及其背后的交易哲學(xué);
4、掌握金融、編程和建模知識基礎(chǔ),擁有量化交易實盤操作能力;
5、具備獨立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設(shè)計的基本框架,以及風險管理和資產(chǎn)組合理論的實際運用;
7、掌握從策略思想——策略編寫——策略實現(xiàn)餓完整量化投資決策過程;具備量化投資實戰(zhàn)交易能力
.png)
更多內(nèi)容推薦閱讀:
金程推薦: AQF培訓(xùn) AQF培訓(xùn)機構(gòu) AQF是什么意思
咨詢電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號:量化金融分析師
完善下表,48小時內(nèi)查收aqf備考資料
(如果沒收到資料,可以點我咨詢)
.png)




