在第4章和第5章的策略研究當中,由於回溯測試過程簡單化的處理,因此不可避免地會受到未來信息問題的影響。與此同時,最優化的處理只在整個樣本數據上進行了一次,因此如果只分析回溯測試的結果,研究人員無法判斷研發得到的具體策略是否具有過度擬合的問題。
在這一章中,作者就將介紹一種具有 實踐意義的分析方法來處理這些問題,也就是章節名稱所提到的推進分析。在具體說明推進分析的框架和使用方法之前,本節首先介紹一下與推進分析有着極高關聯性但是適用範圍更加廣泛的樣本外檢驗,方便讀者循序漸進地瞭解推進分析的框果結構,更好地掌握這種研究方法。
樣本外檢驗是一種被廣泛應用於數據科學研究中的檢驗方法。在數據科學的一般研究情況下, 樣本外檢驗的功能主要是用來判斷對數據的處理方法是否存在明顯的過度擬合。圖6-1給出了一個樣本外檢驗的示例用以說明,先忽略下面的時間軸,實際上樣本外檢驗就是將整個樣本分爲兩個相互不重疊的部分,也就是白色的樣本內和灰色的樣本外。首先針對樣本內的數據進行模型的研究和優化,得到一個在樣本內數據上最優的模型方法,再將已經優化完成的模型方法直接放人樣本外的數據進行檢驗,如果樣本外的數據檢驗結果依然說明該模型方法具有顯著的效果,那麼就可以在一定程度上判斷出該模型方法對實際問題處理的有效性。對於在樣本內優化得到的具體模型方法,比較其在樣本內和樣本外數據上各自的效果,兩者越接近,那麼該模型方法在樣本內進行優化時的過度擬合問題就越小。
在樣本內、樣本外的示例下面加上一個時間軸,是爲了指出在處理資產價格等具有時間特徵的數據時,往往將樣本內的部分取在時間段前期,而將樣本外的部分取在時間段後期。當然,將樣本外的部分放在時間軸的前面,甚至將樣本外分爲兩部分置於樣本內的前後兩端,都是可以接受的處理方法,符合樣本外檢驗的基本定義。但是相比較而言,圖6-1 的樣本處理方式更加合乎邏輯,更爲貼合時間流逝下的數據特徵。因此一般而言, 這是一種更被接受的處理方法。

量化交易策略的研發作爲數據科學的一個專業化分支,實際上是可以直接使用樣本外檢驗來進行過度擬合判斷的。但是正是由於量化交易策略研發作爲一個分支,具有自身的特殊性和專業性,因此存在一些更爲合適的研究方法來判斷過度擬合的問題。推進分析正是其中比較具有代表性的-種方法,其不僅可以判別量化交易策略的過度擬合程度,同時具有其他一些比較好的性質特點,是量化交易策略研究中比較常見且值得使用的檢驗方法。
圖6-2給出了一個推進分析的示例。最下面的數字代表隨時間前進的交易週期,例如在第4章量化擇時策略的數據下,每個數字都代表1日,在第5章量化選股策略的數據下,每個數字都代表1個月,而如果使用的樣本數據爲分筆數據的話,那麼每一個數字都代表兩次分筆數據到達的間隔。也就是說,推進分析的計算週期或者說推進週期應該以交易判斷的間隔爲準,而不是以某一個固定的時間長度爲準,日度數據和月度數據的例子只是因爲判斷交易的時間間隔恰好是日和月而已。

首先來看圖6-2中離計數條最近的一行白色框加灰色框,這裏的操作類似圖6-1中的樣本外檢驗過程。其中白色框包括從週期1到週期5的數據,灰色框則是週期6的數據。假設研究人員要檢驗的是一個參數待估計的量化交易策略,現在先基於白色框的數據對其進行最優化,得出相應的參數,然後將參數確定好的策略放入灰色框的數據中進行檢驗,得到相應的結果。優化的具體目標既可以是量化交易策略的整體收益情況,也可以是一個具體模型的預測能力,這在前面的說明和案例講解中均有涉及,這裏不再多做贅述。可以發現,針對這一行數據的
研究操作實際上就是個樣本外檢驗的過程,但是該檢驗具有一個明顯的特點,就是樣本外的數據長度僅爲一個交易週期。
隨後的操作基本.上就是推進分析這個名稱的由來。將樣本內和樣本外兩個部分分別按照時間前進的方向向後推進一個週期, 白色框的樣本內數據變爲了週期2到週期6的數據,灰色框的樣本外數據則變成了週期7的數據。同樣的,先基於白色框的數據對其進行最優化,得出相應的參數,然後將參數確定好的策略放入灰色框的數據中進行檢驗,得到對應的結果,這也就是第二行數據得到的樣本外檢驗結果。
之後則每次推進一個週期,進行相同的檢驗操作,如圖6-2中的上面6排,每一行數據都有一個週期下的樣本外檢驗結果。最後將所有灰色框的檢驗結果彙總,就可以得到從第6個週期直到結束的推進分析檢驗結果,作者也稱其爲全部樣本下的推進分析檢驗結果。
值得注意的是,如果具體的量化交易策略本身需要備用數據來參與計算,那麼整個研究實際需要的數據量將超過計數框的限制,提前到週期1之前。灰色框的檢驗計算也需要用到白色框中的數據,從而完成策略的計算。這些內容在圖6-2中都沒有顯示出來,希望讀者自行理解。
從上面對推進分析的介紹中其實不難發現,推進分析的整個操作流程非常貼合實際交易的情況。在實際環境中如果使用量化交易策略進行交易,使用者常常會先根據最近的數據優化好策略設置和策略參數之後,再用其來指導當前的交易,而在下一次需要判斷是否交易時,再重新優化一遍策略設置和策略參數,從而使得策略更好地反映最近的市場情況。