所有曆史數據都是樣本内

發布時(shí)間:2019-02-28  |   來(lái)源: 川總寫量化(huà)

作者:石川

摘要:我們構建策略靠的(de)不是站在回測起點往後看的(de)先見之明(míng),而是站在回測終點往前看的(de)後見之明(míng)。所有曆史數據都是樣本内。


1 引言


金融領域的(de)小夥伴想必對(duì) Institutional Investor Journals (II Journals) 并不陌生。它旗下(xià)有很多(duō)影(yǐng)響力很高(gāo)的(de)期刊,其中最著名的(de)大(dà)概是 Journal of Portfolio Management。與 JF、JFE、RFS 這(zhè)些純學術類期刊不同,II Journals 的(de)期刊更注重實踐,深得(de)業界喜愛(ài);而 Fischer Black、Robert Engle、Daniel Kahneman、Andrew Lo、William Sharpe、Robert Shiller 等大(dà)咖也(yě)均在 II Journals 的(de)期刊發表過研究。


2018 年 II Journals 更名爲 Institutional Portfolio Research Journals (IPR Journals),并于 2019 年爲旗下(xià)的(de)期刊系列增加了(le)一位最新成員(yuán) —— Journal of Financial Data Science。随著(zhe)大(dà)數據和(hé)機器學習(xí)算(suàn)法在金融和(hé)投資中的(de)潛在作用(yòng)越來(lái)越大(dà),這(zhè)本期刊的(de)誕生無疑是非常及時(shí)的(de)。它旨在指導金融領域的(de)實踐者正确使用(yòng)與日俱增的(de)數據和(hé)日新月(yuè)異的(de)技術。如今,該刊第一卷第一期已經發行。


作爲處女(nǚ)刊,它裏面包含了(le)很多(duō)非常有意思的(de)文章(zhāng)。其中最吸引我的(de)是一篇題爲 A Backtesting Protocol in the Era of Machine Learning(機器學習(xí)時(shí)代的(de)回測協議(yì))。它的(de)作者是 Rob Arnott、Campbell Harvey 以及 Harry Markowitz(三位都無需介紹)。在這(zhè)篇文章(zhāng)中,三位作者從七個(gè)方面提出了(le)新時(shí)代下(xià)進行策略回測時(shí)應該遵循的(de)一些規則,從而最大(dà)化(huà)的(de)降低數據挖掘和(hé)過拟合的(de)影(yǐng)響。這(zhè)七方面構成了(le)一個(gè)完整且可(kě)操作的(de)體系,能夠幫助我們更好的(de)規避樣本内的(de)虛假信号、找出能在樣本外更有效的(de)交易策略。這(zhè)七方面的(de)每一塊都值得(de)好好研讀一番(建議(yì)感興趣的(de)小夥伴找來(lái) Arnott, Harvey, and Markowitz 2019 這(zhè)篇文章(zhāng)讀一讀)。在今天的(de)文章(zhāng)中,我僅想對(duì)第四部分(fēn) Cross-Validation 裏面的(de)兩個(gè)論點談一些想法。在這(zhè)一部分(fēn),三位作者抛出了(le)兩個(gè)觀點:


1. Out of Sample is Not Really Out of Sample.

2. Iterated Out of Sample is Not Out of Sample.


這(zhè)兩句話(huà)結合起來(lái)再翻譯成中文就是所有曆史數據都是樣本内。我對(duì)此深以爲然。


2 OOS is NOT Really OOS


針對(duì) Out of Sample is Not Really Out of Sample 這(zhè)個(gè)觀點,Arnott, Harvey, and Markowitz (2019) 寫到:


Researchers have lived through the hold-out sample and thus understand the history, are knowledgeable about when markets rose and fell, and associate leading variables with past experience. As such, no true out-of-sample data exist; the only true out of sample is the live trading experience.


對(duì)于預留出來(lái)的(de)樣本外數據,它們也(yě)是已經發生過的(de)曆史。盡管模型将它們視作樣本外,但由于我們經曆了(le)那段曆史,知道在那段時(shí)間市場(chǎng)是如何發展的(de)(什(shén)麽時(shí)候漲、什(shén)麽時(shí)候跌),會不可(kě)避免的(de)把領先變量和(hé)這(zhè)些曆史經驗聯系起來(lái)。正是由于這(zhè)個(gè)原因,曆史數據中并沒有真正的(de)樣本外,隻有實盤交易才是真正的(de)樣本外。舉個(gè)例子。在因子選股中,我們通(tōng)常會用(yòng) PE、ROE、EPS 等指标來(lái)選股,并按照(zhào)各種邏輯 —— 比如動量或者估值 —— 進行難如登天的(de)因子擇時(shí)。在擇時(shí)的(de)時(shí)候,我們會非常小心的(de)使用(yòng)滾動窗(chuāng)口外推,利用(yòng) point in time 數據來(lái)避免 look-ahead bias(前視偏差)。但無論是在全部回測期内多(duō)因子選股,還(hái)是使用(yòng)滾動窗(chuāng)口在“樣本外”做(zuò)因子擇時(shí),這(zhè)背後無法否認的(de)事實是我們已經知道 PE、ROE、EPS 在過去整段曆史時(shí)間内是有效的(de)!


我們并不是在 10 年前就預見到了(le) PE、ROE、EPS 會有效并在過去的(de) 10 年裏使用(yòng)它們;而是在已經知道市場(chǎng)在過去 10 年是如何展開的(de)前提下(xià),通(tōng)過 empirical data analysis 找到了(le) PE、ROE、EPS 這(zhè)些好使的(de)因子然後再去對(duì)著(zhe)它們回測。扪心自問一下(xià),如果一個(gè)因子在回測期内的(de)表現是近似随機的(de),我們會用(yòng)它來(lái)做(zuò)因子擇時(shí)嗎?這(zhè)當然不是說它們并沒有業務依據,而隻是想強調正是因爲曆史已經發生了(le),因此它不是真正的(de)樣本外。


如果在樣本内找到的(de)因子在真正的(de)樣本外無效會在多(duō)大(dà)程度上削弱策略的(de)表現呢(ne)?來(lái)看下(xià)面的(de)實驗。假設回測期從 2010 年 1 月(yuè) 1 日到 2019 年 1 月(yuè) 31 日;以中證 500 的(de)成分(fēn)股爲股票(piào)池。針對(duì)每個(gè)因子,使用(yòng)其首尾各 10% 的(de)股票(piào)按照(zhào)等權構建多(duō)、空投資組合,以對(duì)沖後的(de)組合的(de)收益率作爲因子收益率,每月(yuè)末調倉且不考慮任何費用(yòng)。下(xià)圖顯示了(le)依照(zhào)上述說明(míng)後找到 10 個(gè)回測期内年化(huà)夏普率在 0.8 到 1.0 之間的(de)因子的(de)累積淨值(這(zhè)些因子均來(lái)自基本面或量價信息、月(yuè)收益率的(de)平均相關系數爲 0.1)。圖中黑(hēi)色粗線表示通(tōng)過等權配置這(zhè)些因子所構成的(de)多(duō)因子策略的(de)淨值。該多(duō)因子策略的(de)夏普率高(gāo)達 2.56,年化(huà)收益率 9.58%。


f2.png


下(xià)面假設這(zhè) 10 個(gè)因子中的(de) n 個(gè)(n 取值從 1 到 10)在真實樣本外完全失效 —— 即樣本外該因子實際上無法預測收益率。爲了(le)模拟“真實樣本外完全失效”,我們從上述 10 個(gè)因子中随機選出 10 – n 個(gè)作爲有效因子,并随機生成 n 個(gè)因子來(lái)模拟那些失效的(de)因子,以此進行一次完整回測。爲了(le)得(de)到這(zhè) 10 個(gè)混合因子策略表現的(de)分(fēn)布,将上述過程進行 3000 次仿真,并考察回測期内每個(gè)時(shí)間點該策略累積淨值的(de)中位數、5% 分(fēn)位數以及 95% 分(fēn)位數。下(xià)圖依次展示了(le)當 n 從 1 取到 10 時(shí),混合多(duō)因子策略的(de)累積淨值。


f3.png

f4.png


從上述結果不難看出,随著(zhe)無效因子個(gè)數的(de)增加,策略表現的(de)“中樞”(中位數)逐漸下(xià)移,且不确定性(體現爲 5% 和(hé) 95% 分(fēn)位數的(de)淨值)逐漸增大(dà)。在整個(gè)回測期末,上述 10 種 n 取值的(de)策略表現總結于下(xià)表。對(duì)于樣本内有效的(de) 10 個(gè)因子,如果它們在真正的(de)樣本外全部失效(即無法預測收益率),那麽該策略淨值中位數爲零,這(zhè)符合我們的(de)預期。如果運氣沒那麽差,僅有 5 個(gè)無效,那麽年化(huà)收益率的(de)中位數爲 4.69%;相比較樣本内下(xià)降了(le) 45.7%。


f5.png


依照(zhào)上述實驗思路也(yě)可(kě)以對(duì)一些常見的(de)因子擇時(shí)思路進行驗證。下(xià)面以主流的(de)按因子動量擇時(shí),每年配置過去一年漲幅最高(gāo)的(de)五個(gè)因子。使用(yòng)全部 10 個(gè)樣本内有效的(de)因子,加之上述擇時(shí)策略,得(de)到的(de)效果如下(xià),因子擇時(shí)年化(huà)收益率爲 11.21%,超過了(le) 10 個(gè)因子等權配(夏普率沒有超過)。


f6.png


同樣的(de),假設 n 個(gè)因子在真實樣本外失效,來(lái)看看對(duì)該擇時(shí)策略的(de)影(yǐng)響。


f7.png

f8.png


f9.png


和(hé)不擇時(shí)相似,随著(zhe)失效因子個(gè)數的(de)增加,策略中位數表現下(xià)移、不确定性加大(dà)。如果把擇時(shí)策略和(hé)之前的(de)不擇時(shí)策略橫向比較一下(xià)(即考慮給定失效因子個(gè)數 n 下(xià)兩個(gè)策略的(de)表現),可(kě)以發現有意思的(de)結果:樣本内有效的(de)擇時(shí)策略在樣本外的(de)中樞同樣優于不擇時(shí)的(de)策略,但代價是更高(gāo)的(de)波動;這(zhè)個(gè)高(gāo)波動是由因子失效和(hé)擇時(shí)失效兩方面的(de)不确定性共同貢獻的(de)。


3 Iterated OOS is NOT OOS


再來(lái)看看 Iterated Out of Sample is Not Out of Sample。對(duì)此,Arnott, Harvey, and Markowitz (2019) 寫到:


Suppose a model is successful in the in-sample period but fails out of sample. The researcher observes that the model fails for a particular reason. The researcher modifies the initial model so it then works both in sample and out of sample. This is no longer an out-of-sample test. It is overfitting.


《科學回測中的(de)大(dà)學問》一文中,我們表達過完全一緻的(de)觀點:


在可(kě)交易特征方面,滿足一個(gè)策略假設的(de)樣本其實很少。舉個(gè)極端的(de)例子,比如 A 股中追蹤大(dà)牛市的(de)趨勢類策略。在過去 20 年中,也(yě)僅有三波牛市,而且它們表現出來(lái)的(de)市場(chǎng)特征均不相同(比如以 2007 年大(dà)牛市構建的(de)趨勢追蹤策略在 2015 年大(dà)牛市中的(de)逃頂效果并不好)。在這(zhè)種情況下(xià),如果還(hái)把數據分(fēn)成訓練集和(hé)測試集會怎樣呢(ne)?我們一定會把策略在測試集中的(de)體現出來(lái)的(de)新市場(chǎng)環境反饋到訓練過程中,這(zhè)已經違背了(le)分(fēn)訓練集和(hé)測試集調參的(de)本意;這(zhè)等價于我們在整個(gè)曆史數據中對(duì)策略的(de)參數調優了(le)。


來(lái)看一個(gè)簡單的(de)例子 —— 針對(duì)滬深 300 指數使用(yòng)雙均線擇時(shí)。假設使用(yòng) 2005 年 1 月(yuè) 1 日到 2011 年 12 月(yuè) 31 日作爲樣本内數據;使用(yòng) 2012 年 1 月(yuè) 1 日到 2019 年 2 月(yuè) 25 日爲“樣本外”數據。在樣本内,使用(yòng) 2 天窗(chuāng)口計算(suàn)快(kuài)均線、40 天窗(chuāng)口計算(suàn)慢(màn)均線效果非常理(lǐ)想(下(xià)圖),其年化(huà)收益率超過 30%,夏普率高(gāo)達 1.3。


f10.png


再來(lái)看看這(zhè)組參數在“樣本外”的(de)表現。不幸的(de)是,該策略在樣本外的(de)年化(huà)收益不到 8%、最大(dà)回撤 -25.95%、夏普率僅有 0.51。


f11.png


如果對(duì)著(zhe)“樣本外”搜參數,則最優的(de)快(kuài)、慢(màn)均線窗(chuāng)口參數是 20 和(hé) 24,其夏普率也(yě)僅有 0.70,遠(yuǎn)遠(yuǎn)差于 2012 年之前的(de)表現。考慮到這(zhè)種情況,很自然的(de)想法就是添加更複雜(zá)的(de)邏輯來(lái)提高(gāo) 2012 年之後的(de)表現。顯然,這(zhè)不是樣本外測試,而是過拟合。無論從獨立性還(hái)是可(kě)交易特征而言,交易數據其實都是十分(fēn)匮乏的(de)。從構建策略的(de)角度來(lái)說,如果要求策略能夠适應不同的(de)市場(chǎng)狀态,那麽基于曆史數據不斷叠代的(de)樣本外并不是真正的(de)樣本外。


4 結語


所有的(de)曆史數據都是樣本内。我們構建策略靠的(de)不是站在回測起點往後看的(de)先見之明(míng),而是站在回測終點往前看的(de)後見之明(míng)。誠然,這(zhè)并不意味著(zhe)策略就不靠譜或者一定是數據挖掘的(de)産物(wù)。但是,意識到這(zhè)一點會讓我們更加相信來(lái)自金融學或經濟學先驗的(de)指标或因果關系,并防止我們沉迷于純粹基于數據的(de)交叉驗證。


AQR 曾寫過一篇題爲 Buffett's Alpha 的(de)文章(zhāng)分(fēn)析巴菲特的(de)投資組合。結果顯示,巴菲特投資組合的(de)收益幾乎可(kě)以被市場(chǎng)因子和(hé)五個(gè)如今我們這(zhè)些後見之明(míng)的(de)凡夫俗子能夠理(lǐ)解的(de)風格因子的(de) β 來(lái)解釋。而反觀巴菲特,他(tā)是在幾十年前就按照(zhào)這(zhè)些風格因子來(lái)投資了(le),那是真正的(de)樣本外。


Buffett figured out things we think are genius many years before we all did. —— Cliff Asness



參考文獻

Arnott, R., C. R. Harvey, and H. Markowitz (2019). A backtesting protocol in the era of machine learning. Journal of Financial Data Science 1(1), 64 – 74.



免責聲明(míng):入市有風險,投資需謹慎。在任何情況下(xià),本文的(de)内容、信息及數據或所表述的(de)意見并不構成對(duì)任何人(rén)的(de)投資建議(yì)。在任何情況下(xià),本文作者及所屬機構不對(duì)任何人(rén)因使用(yòng)本文的(de)任何内容所引緻的(de)任何損失負任何責任。除特别說明(míng)外,文中圖表均直接或間接來(lái)自于相應論文,僅爲介紹之用(yòng),版權歸原作者和(hé)期刊所有。