科學回測中的(de)大(dà)學問
發布時(shí)間:2018-01-30 | 來(lái)源: 川總寫量化(huà)
作者:石川
摘要:正确、科學的(de)回測對(duì)構建量化(huà)投資策略至關重要。本文解讀回測中的(de)各種坑。
1 引言
回測(backtesting)是任何一個(gè)量化(huà)投資策略上線之前必須要經過的(de)一道流程;它是量化(huà)投資策略和(hé)其他(tā)類型投資(如主動投資)最大(dà)的(de)區(qū)别之一。回測将投資策略應用(yòng)到曆史數據中并考察它的(de)表現。具體的(de),回測有如下(xià)作用(yòng):
1. 驗證投資策略是否有效:我們很容易從學術文獻、投資書(shū)籍、券商報告、以及互聯網得(de)到很多(duō)交易策略的(de)想法。回測可(kě)以快(kuài)速驗證一個(gè)想法是否有效(淨值曲線至少得(de)是向上的(de))。
2. 對(duì)策略進行參數調優:當一個(gè)交易策略有效的(de)時(shí)候,回測讓我們優化(huà)該策略的(de)參數。比如,一個(gè)均線策略,我們使用(yòng) 20 天的(de)均線還(hái)是 30 天的(de)均線?當然,在優化(huà)的(de)過程中,我們需要非常小心、避免過拟合的(de)問題。
3. 給出策略在未來(lái)表現的(de)預期:任何一個(gè)靠譜的(de)量化(huà)投資策略都是基于對(duì)市場(chǎng)行爲的(de)某種假設;該假設背後反映的(de)是某種特定的(de)業務邏輯。量化(huà)策略假設市場(chǎng)的(de)這(zhè)種行爲在未來(lái)會重複。因此,策略在回測中的(de)表現将對(duì)其未來(lái)上線後的(de)表現(如收益率、最大(dà)回撤、交易費用(yòng)等)起到參照(zhào)作用(yòng)。
正确、科學的(de)回測對(duì)構建量化(huà)投資策略至關重要。然而,回測中又有很多(duō)“坑”。如果不能正确的(de)認識并避免它們,回測的(de)結果很可(kě)能對(duì)我們産生誤導,錯誤的(de)回測更是會導緻實盤中的(de)(嚴重)虧損。今天我們就來(lái)和(hé)各位小夥伴聊聊我們是怎麽理(lǐ)解回測的(de)。本文将從下(xià)面幾個(gè)角度論述:
1. 超參數;
2. 訓練集、測試集之糾結;
3. 各種偏差;
4. 不可(kě)忽視的(de)交易費用(yòng);
5. 回測并非無所不能。
2 超參數
超參數(hyperparameters)是參數的(de)參數,是源自機器學習(xí)中的(de)一個(gè)概念。在機器學習(xí)中,超參數是在模型開始學習(xí)之前需要人(rén)爲設置值的(de)參數,而不是通(tōng)過訓練得(de)到的(de)模型參數。
在構建量化(huà)投資策略時(shí),雖然不一定會用(yòng)到機器學習(xí)算(suàn)法,但是超參數的(de)概念依然非常重要。比如在技術分(fēn)析策略中,我們是使用(yòng)通(tōng)道突破還(hái)是均線交叉?是使用(yòng) ADX 指标還(hái)是 SO 指标來(lái)測量動量的(de)大(dà)小?這(zhè)些需要人(rén)爲決定的(de)參數就屬于超參數。一旦确認具體使用(yòng)的(de)指标後,至于計算(suàn)指标的(de)參數(比如計算(suàn)通(tōng)道和(hé)均線需要的(de)時(shí)間窗(chuāng)口)就可(kě)以通(tōng)過回測來(lái)優化(huà)。另一個(gè)超參數就是回測期的(de)時(shí)間窗(chuāng)口到底選多(duō)久。這(zhè)是任何量化(huà)投資策略都必須面對(duì)的(de)問題。比如我們測試一個(gè)量化(huà)選股因子,那回測期是從 2000 年開始,還(hái)是 2005 年開始,還(hái)是 2010 年開始等,這(zhè)是事先必須确定的(de)。随著(zhe)機器學習(xí)算(suàn)法在量化(huà)投資領域的(de)應用(yòng)愈發普及,我們在使用(yòng)它們時(shí)也(yě)勢必面臨著(zhe)同樣的(de)問題。比如在集成學習(xí)中(如随機森林(lín)),決策樹的(de)數量和(hé)深度是多(duō)少;在 K-means 算(suàn)法中簇數的(de)個(gè)數;在 SVM 算(suàn)法中核函數應該選哪個(gè)。這(zhè)些都是超參數的(de)範疇。
對(duì)于典型的(de)機器學習(xí)問題,超參數也(yě)是需要優化(huà)的(de),以此提高(gāo)機器學習(xí)算(suàn)法在樣本外的(de)性能和(hé)效果。對(duì)于量化(huà)投資策略來(lái)說,超參數的(de)調優除了(le)從數學角度(如策略的(de) Profit/Loss 曲線)考量外,還(hái)需要考慮超參數本身是否具有清晰的(de)業務含義以及是否适合策略的(de)使用(yòng)者。這(zhè)裏舉兩個(gè)例子。
例子一:假設使用(yòng) SVM 來(lái)預測股票(piào)收益率,輸入的(de)特征可(kě)以是各種量價數據和(hé)基本面數據,輸出爲漲跌的(de)預測。如何選擇 SVM 的(de)核函數就是一個(gè)超參數問題。如果選擇了(le)非線性的(de)核函數,它會把特征向量進行非線性變換、映射到更高(gāo)維的(de)空間。這(zhè)當然有助于提升預測的(de)準确性,但是人(rén)們往往難以從金融投資角度解釋特征向量的(de)非線性變換(參見《一文看懂(dǒng)支持向量機》),因此這(zhè)樣的(de)策略就不折不扣的(de)成爲了(le)黑(hēi)箱。
例子二:趨勢追蹤策略既可(kě)以使用(yòng)均線交叉也(yě)可(kě)以使用(yòng)通(tōng)道突破。在它們之間的(de)選擇就是超參數的(de)問題。然而,這(zhè)兩類策略的(de)風險收益比顯著不同:均線類策略交易次數多(duō)、勝率低、平均盈利和(hé)平均虧損都較低;反觀通(tōng)道突破策略,它交易次數少、勝率高(gāo)、平均盈利和(hé)平均虧損都較高(gāo)(見《趨勢追蹤:均線 vs 通(tōng)道突破》)。不同的(de)策略背後折射的(de)是完全不同的(de)“投資哲學”,投資者需要根據自己的(de)風險偏好選擇。如果僅從數學角度考慮選取了(le)一個(gè)并非讓自己十分(fēn)舒服的(de)交易策略,那麽在實盤中注定會失敗。
除了(le)上述這(zhè)些明(míng)确的(de)超參數外,有一些因素需在構建策略之前确定,但是在回測中我們會根據策略的(de)表現對(duì)它們進行反饋。這(zhè)類因素介于超參數和(hé)策略參數之間。比如在資産配置策略中選擇哪些資産放入資産池;又如在量化(huà)多(duō)因子選股策略中,使用(yòng)哪些風格因子進行選股。
在資産配置中,我們必須事先決定一個(gè)資産池(asset pool),然後構建策略。但是随著(zhe)回測的(de)深入,如果發現某類資産的(de)加入對(duì)于策略的(de)表現沒有正貢獻,我們便會從資産池中剔除掉該資産。類似的(de),在多(duō)因子策略中,我們事先拟定了(le)一些具有超額收益的(de)風格因子,但如果回測發現一些因子造成投資組合的(de)可(kě)交易性太差(比如換手率太高(gāo),或者選出來(lái)的(de)都是流動性差的(de)股票(piào)),那麽也(yě)會剔除掉這(zhè)些因子。像資産池、因子庫這(zhè)類“參數”,都需要在構建策略前确定,但是策略的(de)表現又會指導我們進一步優化(huà)它們。
3 訓練集、測試集之糾結
任何一個(gè)介紹量化(huà)策略或交易系統的(de)文獻都會強調在構建策略時(shí),一定要把曆史數據分(fēn)成訓練集和(hé)測試集,在訓練集上優化(huà)策略的(de)參數,在測試集上考察策略的(de)表現。(我曾經看過一本英文的(de)關于交易系統構建的(de)書(shū),洋洋灑灑 300 來(lái)頁,基本上唯一的(de)核心思想就是要有測試集……)這(zhè)個(gè)論調固然沒有任何問題,但是交易數據中的(de)一些特點使得(de)是否區(qū)分(fēn)訓練集和(hé)測試集有時(shí)變得(de)很糾結。
區(qū)分(fēn)訓練集和(hé)測試集的(de)初衷是避免參數在樣本内過拟合,從而導緻策略在樣本外(上線後)的(de)表現和(hé)其在樣本内的(de)表現大(dà)相徑庭。在一個(gè)典型的(de)通(tōng)過訓練集和(hé)測試集來(lái)對(duì)參數調優的(de)過程中,通(tōng)常的(de)做(zuò)法是調整算(suàn)法叠代的(de)次數或者懲罰系數之類的(de)。随著(zhe)參數的(de)調優,訓練集上的(de)誤差單調遞減,等測試集上的(de)誤差開始提升,就停止調優(下(xià)圖)。
一個(gè)經科學回測過的(de)策略應該能夠捕捉訓練集和(hé)測試集數據表現出來(lái)的(de)某種市場(chǎng)共性。任何交易數據都包含一定的(de)噪聲成分(fēn),使用(yòng)測試集是爲了(le)避免模型(策略)過度錯誤的(de)考慮訓練集内樣本包含的(de)噪聲,更好的(de)發現共性。然而,交易數據的(de)嚴重匮乏和(hé)市場(chǎng)環境的(de)頻(pín)繁變化(huà)使得(de)上述訴求成爲一個(gè)遙不可(kě)及的(de)美(měi)好願景。我們說交易數據嚴重匮乏是就數據的(de)獨立性以及數據的(de)可(kě)交易特征而言的(de)。從這(zhè)兩點而言,在構建策略時(shí)是否一定要劃分(fēn)訓練集和(hé)測試集、以及如何劃分(fēn)就需要非常謹慎。
由于市場(chǎng)流動性環境和(hé)宏觀經濟的(de)變化(huà),以及波動率聚類等特點,投資品價格數據的(de)短期相關性比較高(gāo),而在不同的(de)曆史時(shí)期往往反應出不同的(de)特點。如果訓練集和(hé)測試集的(de)數據代表了(le)不同的(de)市場(chǎng)狀态,那麽它們之間的(de)交易數據就沒有多(duō)少共性可(kě)言。相對(duì)于訓練集來(lái)說,測試集中的(de)數據滿足訓練集中假設的(de)樣本太少,以此來(lái)優化(huà)策略勢必忽視了(le)測試集數據中傳達出的(de)新的(de)市場(chǎng)環境。對(duì)于一個(gè)策略來(lái)說,我們都不希望忽略市場(chǎng)的(de)任何特征(除了(le)噪聲)。
在可(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)。比如我們使用(yòng)訓練集構建一個(gè)策略,但是在測試集上遇到股災了(le),爲了(le)對(duì)付它,就強行加上一個(gè)下(xià)跌 XX% 就止損的(de)條件。這(zhè)其實不是在對(duì)原始策略的(de)參數調優,而是針對(duì)測試集的(de)樣本去改變策略的(de)初衷!如此來(lái)“優化(huà)”策略,又還(hái)有什(shén)麽訓練集、測試集之分(fēn)?當然,這(zhè)麽做(zuò)的(de)出發點是好的(de) —— 讓策略盡可(kě)能的(de)适應不同的(de)市場(chǎng)環境,在真正的(de)樣本外(上線後)的(de)适應性更強。
對(duì)于是否一定要分(fēn)訓練集和(hé)測試集,我的(de)看法是這(zhè)種防止樣本内過拟合的(de)思想是絕對(duì)可(kě)取的(de),但如何執行應該試策略而定。比如對(duì)于用(yòng)機器學習(xí)算(suàn)法來(lái)預測短期收益率的(de)策略,使用(yòng)訓練集和(hé)測試集就是恰當的(de)。對(duì)于量化(huà)因子選股策略,這(zhè)似乎又是個(gè)僞命題。衆所周知,小市值因子在股災 2.0 之前一直有效,但從 2016 年初開始,随著(zhe)價值投資的(de)回歸,小市值因子徹底失效。又比如,價值因子在最近兩年有效,但是随著(zhe)它們估值的(de)提升,誰也(yě)不能保證它在未來(lái)持續有效。一個(gè)經科學回測過的(de)策略必須能夠捕捉市場(chǎng)的(de)某種特點。隻要這(zhè)個(gè)特點有明(míng)确的(de)業務支持而非數據挖掘的(de)産物(wù),那麽針對(duì)這(zhè)個(gè)特點構建及優化(huà)策略參數時(shí),是分(fēn)别使用(yòng)訓練、測試集,還(hái)是使用(yòng)所有數據來(lái)整體優化(huà),這(zhè)并不重要。
4 各種偏差
本節介紹回測中的(de)一些常見的(de)偏差,它們包括優化(huà)偏差(過拟合)、前視偏差、以及幸存者偏差。常見的(de)介紹回測的(de)文章(zhāng)的(de)重點就是這(zhè)些。
優化(huà)偏差(optimization bias)指的(de)是通(tōng)過不斷地增加參數個(gè)數,直到策略的(de)收益曲線在回測中表現的(de)非常好。參數越多(duō),越容易在樣本内“處處精準”。這(zhè)意味著(zhe)對(duì)樣本内數據的(de)噪聲過度建模,及過拟合。防止優化(huà)偏差的(de)方法是減少參數的(de)個(gè)數 —— 比如能夠使用(yòng)一個(gè)技術指标就不要使用(yòng)兩個(gè) —— 以及增加回測數據。在這(zhè)方面,可(kě)以從兩個(gè)維度來(lái)增加。一個(gè)是使用(yòng)更長(cháng)的(de)曆史數據,比如一個(gè)策略在過去 10 年有效就比在過去 3 年有效更有說服力。但這(zhè)麽做(zuò)時(shí)需要考慮市場(chǎng)狀态變換(有可(kě)能太久遠(yuǎn)的(de)曆史數據并不滿足你策略的(de)假設),因此回測數據也(yě)并不是越長(cháng)越好。第二個(gè)維度是考慮不同的(de)投資品。如果策略和(hé)一組給定的(de)參數在多(duō)個(gè)投資品上都有效,它無疑更有說服力。
此外,通(tōng)過考察參數平原(parameter surface)也(yě)可(kě)以檢查過拟合。将策略表現的(de)指标(比如收益率或者最大(dà)回撤)畫(huà)成參數的(de)函數就是參數平原。對(duì)于一個(gè)好的(de)策略,在微調參數取值時(shí),它的(de)表現應該比較穩定,參數平原應該十分(fēn)光(guāng)滑。比如如果最優的(de)均值參數是 20 個(gè)交易日,則當我們使用(yòng) 19 或 21 個(gè)交易日計算(suàn)均值時(shí),策略的(de)表現和(hé) 20 日均線的(de)策略不應該差很多(duō)。如果策略的(de)參數平原非常不規則,則意味著(zhe)參數背後沒有合理(lǐ)的(de)業務邏輯,而更多(duō)的(de)是數據挖掘的(de)結果,這(zhè)時(shí)就要小心。
前視偏差(look-ahead bias)指的(de)是錯誤的(de)使用(yòng)了(le)未來(lái)數據。在構建策略時(shí),盡管我們會非常小心,但仍然會時(shí)不時(shí)的(de)步入前視偏差的(de)陷阱,這(zhè)往往是編程時(shí)的(de)疏忽造成的(de)。舉兩個(gè)我自己的(de)例子。有一次我使用(yòng)卡爾曼濾波(一種狀态空間建模方法)構建了(le)一個(gè)預測模型,我很小心的(de)使用(yòng)截止到每個(gè)交易日當日的(de)滾動窗(chuāng)口以避免使用(yòng)未來(lái)數據,結果回測的(de)效果非常好,“好到一看那淨值曲線就知道一定是哪裏出了(le)問題”。後來(lái)經過檢查發現,在使用(yòng)該方法的(de)第一步有一個(gè)初始化(huà)的(de)過程,在那裏傳入了(le)所有曆史數據,而非截止到每個(gè)交易日的(de)數據,由此引入了(le)未來(lái)數據。另一次我測試一個(gè)技術分(fēn)析策略,該策略的(de)收益曲線也(yě)是非常吸引人(rén)。後來(lái)發現,程序中使用(yòng)了(le)最高(gāo)價和(hé)最低價數據,并假設當它們出現時(shí)觸發交易。這(zhè)顯然是有問題的(de),因爲隻有當一個(gè)交易周期結束後,才能知道這(zhè)段時(shí)間内的(de)最高(gāo)價和(hé)最低價是多(duō)少,而到了(le)那個(gè)時(shí)候,早已無法按該價格成交。所以,通(tōng)常在使用(yòng)最高(gāo)、最低價時(shí),必須至少使用(yòng)滞後一期的(de)數據。同樣的(de)問題也(yě)會發生在使用(yòng)基本面數據或宏觀經濟數據的(de)策略中,我們必須對(duì)這(zhè)些數據何時(shí)發布非常小心,以免在回測中提前使用(yòng)這(zhè)些數據,造成前視偏差。
幸存者偏差(survivorship bias)一般針對(duì)選股策略而言,指的(de)是在數據集中錯誤忽略退市的(de)股票(piào)。在構建選股策略時(shí),我們有時(shí)會下(xià)意識的(de)僅考慮在整個(gè)回測期内都存在(“活著(zhe)”)的(de)股票(piào),而忽略掉在回測期内退市的(de)股票(piào)。這(zhè)麽做(zuò)會提高(gāo)提高(gāo)策略在回測期内的(de)表現,因爲那些差的(de)、退市的(de)股票(piào)根本就沒有被考慮在内。但在實際交易中,我們無法提前預知哪些股票(piào)會退市。因此,忽略退市的(de)股票(piào)是不恰當的(de)。這(zhè)也(yě)是一種“前視偏差”。
量化(huà)投資較主動投資的(de)優勢是,它可(kě)以摒棄人(rén)的(de)情緒,排除人(rén)在交易時(shí)由各種認知偏差帶來(lái)的(de)額外的(de)風險(見《讓你投資虧錢的(de) 15 個(gè)“偏差”》)。在回測中,也(yě)隻有盡量摒棄各種偏差,才能使它發揮出最大(dà)的(de)作用(yòng)。
5 交易費用(yòng)
一個(gè)回測中賺錢的(de)策略和(hé)一個(gè)實盤中虧損的(de)策略之間的(de)差别是什(shén)麽?交易費用(yòng)。
交易費用(yòng)包括手續費(commission)、延遲造成的(de)滑點(slippage)以及流動性造成的(de)沖擊成本(market impact)。其中手續費的(de)估計最簡單,券商有固定的(de)手續費比例,隻需要在回測中考慮到即可(kě)。滑點和(hé)沖擊成本則很難在回測中準确的(de)反應。
滑點指的(de)是在交易信号産生到交易實際執行之間價格的(de)(不利)變動造成的(de)額外費用(yòng)。這(zhè)對(duì)于中、高(gāo)頻(pín)策略額外重要。這(zhè)些策略捕捉日内轉瞬即逝的(de)交易機會,如果回測中策略的(de)表現依賴于按照(zhào)交易信号産生瞬間的(de)價格來(lái)交易,那麽這(zhè)個(gè)策略在實盤不會有什(shén)麽前途。這(zhè)是因爲實盤中難以保證會交易到信号發生瞬間的(de)價格(價格出現後才能計算(suàn)交易信号,交易信号需要送到券商,然後送到交易所交易,這(zhè)之間都需要時(shí)間)。爲此,回測中可(kě)以考慮的(de)是按照(zhào)每個(gè) bar 的(de)收盤價來(lái)交易。這(zhè)個(gè) bar 的(de)頻(pín)率可(kě)以很高(gāo),比如分(fēn)鐘(zhōng)級,但一定是按照(zhào)它的(de) close 價格來(lái)成交,而非在這(zhè)個(gè) bar 的(de)形成過程中信号觸發的(de)瞬時(shí)價格。又或者,在回測時(shí)考慮信号出現後一段時(shí)間内按照(zhào) TWAP(時(shí)間平均)成交。在這(zhè)些設定下(xià)并考慮适當的(de)滑點,如果該策略還(hái)能賺錢,那麽在實盤中才有機會。此外,滑點對(duì)趨勢追蹤策略的(de)影(yǐng)響也(yě)比較大(dà)。對(duì)于這(zhè)類策略,交易信号産生時(shí),價格一定是向著(zhe)預測的(de)方向移動,這(zhè)意味著(zhe)我們必須追價,滑點無法避免。
沖擊成本指的(de)是投資品流動性不足帶來(lái)的(de)額外交易費用(yòng)。對(duì)于流動性高(gāo)的(de)投資品,限價指令簿(limit order book)上,買一和(hé)賣一之間的(de)價差(bid-ask spread)很小,且兩邊的(de)挂單量都足夠。交易這(zhè)類投資品不會帶來(lái)太大(dà)的(de)市場(chǎng)沖擊。但如果投資品的(de)流動性不足,那麽爲了(le)完成交易,策略就勢必會 walk the book(在一個(gè)方向上“收單”),直到完成我們的(de)交易量需求。這(zhè)個(gè)沖擊成本和(hé)每筆交易時(shí)的(de)具體流動性有關,因此回測中難以準确估計。
鑒于交易成本的(de)重要性,在回測中必須假設合理(lǐ)的(de)交易費率,甯可(kě)高(gāo)估也(yě)不應低估。通(tōng)常的(de)做(zuò)法是估計幾檔不同的(de)交易費用(yòng),比如每筆交易單邊千分(fēn)之一、千分(fēn)之三、千分(fēn)之五甚至更高(gāo)等。以此感受一下(xià)策略在不同費率下(xià)的(de)收益和(hé)回撤情況。但真實的(de)交易成本仍然需要一段時(shí)間的(de)穩定實盤交易來(lái)評判。
能否有效的(de)控制交易費用(yòng)直接關系到一個(gè)策略的(de)資金容量。資金量(交易量)越大(dà),完成交易所需的(de)時(shí)間越長(cháng),而交易成本(及不确定性)随交易時(shí)間呈非線性增長(cháng)。由于交易量巨大(dà),華爾街(jiē)的(de)大(dà)型金融公司都會針對(duì)市場(chǎng)微觀結構(即 order book 上買單、賣單出現的(de) dynamics)來(lái)建模,以此構建交易模型(注意是交易模型,而不是投資策略模型),從而盡可(kě)能的(de)降低交易成本。
6 回測并非無所不能
誠然,科學的(de)回測對(duì)于量化(huà)投資策略至關重要。但是,回測也(yě)并不是萬能的(de)。
我們在《追求卓越,但接受交易中的(de)不完美(měi)》中指出,一個(gè)經過嚴格回測的(de)策略投放到實盤時(shí)最大(dà)的(de)敵人(rén)是一個(gè)人(rén)的(de)心理(lǐ)關。它指的(de)是交易者能否克服實盤中的(de)心理(lǐ)壓力從而堅持使用(yòng)這(zhè)個(gè)策略。回測中的(de)淨值曲線通(tōng)常是非常穩健的(de)(幾年的(de)回測期内慢(màn)慢(màn)爬升),其各種指标 —— 收益率、最大(dà)回撤、夏普率等 —— 也(yě)非常出色。面對(duì)回測中優秀的(de)淨值表現,我們會錯誤的(de)高(gāo)估自己對(duì)于回測中虧損以及回撤周期的(de)容忍程度。在實盤中面對(duì)如此的(de)虧損和(hé)回撤周期完全是另一個(gè) story。
對(duì)于任何一個(gè)策略,幾乎可(kě)以确定的(de)是它在回測中的(de)表現是其在實盤中表現的(de)上限(比如以最大(dà)回撤而言,我們自己的(de)經驗和(hé)很多(duō)量化(huà)投資前輩的(de)經驗都指出,實盤的(de)最大(dà)回撤差不多(duō)是回測中最大(dà)回撤的(de) 2 倍)。此外,當一個(gè)策略上線之初,虧損先于利潤出現也(yě)是十分(fēn)常見的(de)。面對(duì)真金白銀的(de)虧損,我們會比想象的(de)更脆弱、更容易懷疑策略的(de)開發中是否存在沒有考慮到的(de)問題、更容易自我動搖從而想要放棄該策略。在實際交易中,價格時(shí)刻在波動,充斥著(zhe)噪聲的(de)各路消息以遠(yuǎn)超過我們能夠接受的(de)速度襲來(lái),我們會快(kuài)步踏入行爲金融學中的(de)各種認知偏差陷阱、喪失冷(lěng)靜、做(zuò)出一系列幹預交易系統的(de)錯誤操作。這(zhè)些心理(lǐ)壓力是哪怕再精細、再嚴格的(de)回測也(yě)無法呈現的(de)。
另外,任何策略都會有失效的(de)那一天。一個(gè)技術指标會因爲使用(yòng)的(de)人(rén)越來(lái)越多(duō)而失效,一個(gè)選股因子會因爲市場(chǎng)狀态的(de)變化(huà)而失效,一個(gè)賺錢的(de)策略會因爲流動性突然枯竭(比如股指期貨的(de)突然限制)而失效。任何量化(huà)策略都需要定期進行事後評價,比較它在樣本外和(hé)回測期内的(de)表現,評判它是否仍然有效,或者根據實盤的(de)反饋進行調整。但是,評價策略這(zhè)件事兒(ér)說來(lái)容易,做(zuò)起來(lái)難。特别是對(duì)于低頻(pín)策略,由于交易頻(pín)率低,它們需要更長(cháng)的(de)實盤時(shí)間來(lái)評判策略是否失效。比如小市值選股因子失效是因爲價值投資在最近兩年盛行。然而,如果我們在這(zhè)兩年一直按照(zhào)小市值選股卻早已虧的(de)一塌糊塗了(le)。又比如,在資産配置策略中,随著(zhe)實盤的(de)進行,哪些投資品應該被挪出資産池、哪些回測中沒有考慮的(de)投資品又應該被加進來(lái),這(zhè)些都是回測無法回答(dá)的(de)。
當然,這(zhè)些并非回測之過。一個(gè)經過科學回測的(de)量化(huà)投資策略仍然是投資中的(de)利器,它刻畫(huà)了(le)市場(chǎng)的(de)某種具備清晰業務邏輯支撐的(de)特性,并假設該特性在未來(lái)會重複,從而捕捉這(zhè)些機會。如果市場(chǎng)變了(le),該特性不再發生而導緻策略失效,這(zhè)不是回測的(de)問題,我們隻要欣然接受它就是了(le)。科學的(de)回測讓我們更有希望實現交易的(de)一緻性;堅持一緻性的(de)交易才能讓我們成爲更優秀的(de)交易者;隻有不斷追求卓越、成爲更優秀的(de)交易者,才可(kě)能在市場(chǎng)的(de)沉浮中生存的(de)更久。
免責聲明(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é)期刊所有。