- 一條看似合理的“砍掉老倉位”規則,回測似乎已經證明有效。經過八項獨立檢驗,它最終以“持續監控下的建議”落地——而不是直接寫進程式碼。
- 策略的大部分利潤其實集中在少數幾個極端月份;這條規則必須在每一種行情態裡分別自證。
- 唯一無法用統計量驗證的假設——成交質量——改用真實成交記錄實測,而不是想當然。
一家執行自動化策略的做市團隊有個簡單的觀察:持倉超過幾小時的頭寸,多數時候正是虧錢的那批。提出的修復方案同樣簡單——加一條規則,持倉一旦超過該時限就強制平倉。一次快速回測似乎證實了這一點。順理成章的下一步,就是上線。
那天它沒有上線。從“回測說可以”到“我們改了生產程式碼”之間,一次獨立評審究竟長什麼樣——數字為示意,方法是真的。
為什麼這很重要:幾乎每一個策略供應商、每一位內部量化研究員、每一份回測,都有動機——無論自覺與否——去找出那個能支援他們本來就想做的改動的結果。獨立評審方對結論沒有任何利益。這就是全部價值所在。
1先審問結論,再碰資料
那個標題統計量,是一條披著“新發現”外衣的同義反復。
展開推演過程
起始統計量——“持倉超過某個閾值的頭寸多數虧損”——聽上去像個發現,實則更接近同義反復。快速了結的頭寸,從定義上講就是價格迅速配合的那批;留在“持倉更久”這個桶裡的,本身就是被自我篩選出來的硬骨頭。在跑任何一行程式碼之前,評審就指出這一個數字裡藏著兩類各自獨立的風險:
- 選擇偏差(selection bias)——“第X小時仍未平倉”不是隨機樣本,它已經按難度過濾過一遍。
- 勝率≠期望值——一條規則可以按筆數看是對的、按美元算卻是錯的:如果它避免虧掉的都是小錢,而留下的虧損都是大錢。
2好好量一次——用美元算賬,別看勝率
換成按美元而非勝率來衡量,這條規則站住了——而勝率指的方向恰恰相反。
展開推演過程
正解不是選擇相信或不相信原始結論,而是把數字真正跑一遍:以已實現盈虧為準,而不是數勝負筆數;並且掃過所有可能的截止時間,而不是某人恰好提出的那一個閾值。
在數年的tick級行情資料上,比現行規則更早地砍倉,確實帶來了真實、正向的風險調整後收益改善——而且很能說明問題的是,新規則下的勝率反而下降了。這正是有用的訊號:策略放棄了一些本來很容易避免的小額虧損,換來的是躲開數量少得多、但金額大得多的鉅虧。單看勝率,會把這一點完全掩蓋。
3先審計資料,再相信數字
第一輪結果所依賴的資料集裡,藏著一段16個月的靜默缺口。
展開推演過程
結果乾淨到這個程度,配得上的是懷疑,不是慶祝。核查底層資料集時發現,歷史價格檔案裡有一段16個月的缺口——這段資料從生成第一輪結果所用的快取中悄無聲息地丟失了。補齊之後,缺口沒有改變結論的方向,但顯著改變了它的量級——而這恰恰是那種在客戶或投資委員會面前,能把一個站得住的數字變成站不住的數字的問題。
4弄清錢到底是從哪兒賺來的
大部分利潤集中在少數極端月份——而這條規則在每個行情態裡依然分別成立。
展開推演過程
全週期數字仍然不對勁——它隱含的年化收益遠高於策略實盤的真實水平。按行情態拆解(regime decomposition)——平靜的低波動時段 vs 罕見的大幅價格錯位事件——立刻解釋了差距:策略總利潤的絕大部分來自極少數幾個極端月份,而不是日常執行。回測的標題數字是真的——但對策略絕大多數時間所處的平靜市況而言,幾乎完全不相關。
這迫使真正的問題被重新提出:這條規則在平靜的日常狀態下——也就是策略在任何一個普通交易日所處的狀態——是否仍然有幫助?還是說它只是碰巧在罕見的劇烈事件中也有效,才顯得好看?按行情態分別重跑對比之後確認:優勢在兩種狀態下各自獨立成立——這比總量數字有力得多,因為它扛過了專門設計來拆穿它的分解檢驗。
5留出一段規則從未見過的資料
優勢在它從未被允許看到的資料上依然成立。
展開推演過程
在同一份資料上被發現、又在同一份資料上被驗證的規則,不叫驗證——叫擬合。最後一步把歷史切成訓練期和一段留出的測試期,在挑選規則的整個過程中,分析絕不允許接觸後者。基於訓練資料選出的規則,隨後原封不動地應用於這段從未動過的時期。本案例中,改進在從未見過的資料上依然成立——這才是“這是真實優勢”的達標線,而不是“這份回測很好看”。
6把它形式化:勝出的選擇是真本事,還是隻熬過了一次幸運切分?
數百次重取樣之後,訓練期選出的贏家在盲測中依然一直贏。
展開推演過程
一次訓練/測試切分只是一個資料點。它回答的是“這個結果活過了一次”,回答不了“它能活多少次”。為此,評審引入了回測過擬合機率(PBO, Probability of Backtest Overfitting),透過組合對稱交叉驗證(CSCV)實施——這是Bailey、Borwein、López de Prado與Zhu專門為量化(而非目測)這一風險而形式化的方法。
將歷史劃分為若干等長區塊,並列舉把這些區塊分成訓練一半與留出一半的所有可能組合——數百次互不相同的重取樣,而不是一次。每一次重取樣中,在訓練半區表現最好的變體,都要對照它在從未訓練過的另一半上的真實排名。PBO就是這樣一個比例:在多少次重取樣裡,訓練期選出的“贏家”在盲測中淪為低於平均水平的表現者——也就是“挑最好看的回測”等價於“隨機亂挑”的頻率。
在全部重取樣切分中,訓練期選出的方案在它從未見過的資料上同樣位居最強之列——而且值得注意的是,無論給訓練過程看哪一段歷史,它都收斂到幾乎同一個答案。一個換個訓練年份就換答案的選擇過程,是警報;一個在數百種不同重取樣下反覆落到同一個答案上的過程,恰恰相反。
有一條誠實的但書應當放在結果旁邊,而不是埋進腳註:CSCV刻意忽略時間先後——某次重取樣可以用較晚的歷史訓練、較早的歷史測試,這是任何實盤部署都不可能做到的事。它回答的是“這是不是一個穩定的、與樣本無關的規律”,而不是“這在事前是否可知”。正因如此,它是對第5步那種嚴格只向前的留出檢驗的補充,而非替代——一個查穩健性,一個查因果性;一項建議應當兩關都過,而不是過其一即可。
7抓住那次險些誤判:兩份研究根本沒在測同一件事
兩份研究“互相矛盾”,是因為它們從來就沒在測量同一件事。
展開推演過程
評審進行到一半,翻出了一份結論恰好相反的更早內部研究——同類規則幾個月前測過,被判定為統計噪聲。評審沒有把它當成需要圓過去的矛盾,而是直接對比兩邊的方法論:底層標的不同、策略引數不同、日期區間不同、假定的資金成本也不同。這兩份研究不是在互相矛盾——它們根本沒在測量同一件事。這個區分比任何單一結果都重要:兩份看起來都很專業的回測可以都是對的,卻完全不可比;把它們當作同一問題的兩個競爭性答案,本身就是一種悄無聲息的壞決策來源。
8別再假設成交——去實測它
真實成交之後,價格持續朝倉位不利的方向漂移——而利潤恰恰就藏在那裡。
展開推演過程
本次評審中的每一份回測都共享一個很方便的假設:只要行情價觸及掛單價位,就視為按該價位成交。這幾乎永遠是任何模擬裡最樂觀的部分——真實訂單簿恰恰在最要命的時刻變薄,“價格碰到了我的價位”和“我的全部數量真的在那裡成交了”完全是兩回事。評審沒有去爭論這個缺口可能有多大,而是直接去找了能實測它的辦法。
賬戶自身的成交歷史裡,恰好包含一次真實發生過的波動率錯位——真實成交(fill),不是模擬。針對其中每一筆成交,評審逐tick測量了成交後的幾分鐘內,價格繼續朝倉位不利方向又走了多遠——這正是天真回測永遠看不到的部分,因為成交一旦入賬,它就不再關心之後發生的事。
在平靜的低波動常態下,成交之後基本沒有持續的不利變動——回測的“乾淨成交”假設在那裡不花一分錢,這也與平靜期回測收益緊貼實盤的表現相吻合。而恰恰在錯位視窗內,真實成交之後價格持續顯著地朝不利方向漂移,最差情形呈厚尾分佈——證實了這個樂觀假設真實存在,而且恰好集中在第4步顯示的幾乎全部利潤所在之處。耐人尋味的是,這次逐筆實測得出的最差值,與團隊幾個月前透過另一條獨立路徑——槓桿壓力測試——推出的風險估計相當接近:兩種互不相關的方法,各自獨立地收斂到同一個數字。
這正是PBO給不了的東西。第6步檢驗的是結果在重取樣之下是否穩定——它對模擬的核心假設是否誠實隻字未提。一份回測可以透過所有過擬合檢驗,卻仍在恰恰產生其大部分利潤的那種市況下悄悄保持樂觀。只有回到真實成交才能回答這個問題,這也是本次評審中唯一沒有公式可以代勞的一項檢驗。
沒有發生的事:生產程式碼一行未改。評審的產出是一份經過驗證的建議、一條留痕完整的審計鏈,以及——針對那條無法用手頭歷史資料驗證的假設——一套持續實測的實盤監控方案。而不是第一天就蓋章放行的綠燈。
可複用的檢查清單
這才是真正的交付物——而不是上面那些具體數字,那些數字每個模型都不一樣。任何由回測驅動的決策,在資金動用之前都應過一遍:
- 標題統計量裡是否藏著選擇偏差的痕跡——那個“有意思”的子集,是不是已經按你將要測量的結果預先過濾過了?
- 結果是按勝率(筆數)還是按期望值(美元)評判的?兩者可能指向完全相反的方向。
- 底層資料集是否審計過缺口、倖存者偏差或靜默重取樣?
- 總量結果是被少數幾個極端時段拉出來的,還是在各個行情態下分別獨立成立?
- 規則是否在挑選過程中從未接觸過的資料上完成驗證——真正的樣本外測試,而不是在同一視窗上再跑一遍?
- 勝出的選擇在多種不同的歷史重取樣下是否依然站得住(如PBO/CSCV等正式的過擬合檢驗),還是隻依賴恰好被測到的那一種切分?
- 凡是有真實成交歷史的地方,是否用它實測過成交後的真實滑點——而不是一句假設帶過——尤其是在策略利潤最依賴的高波動時段?過擬合檢驗替代不了這一步;它們跑在同一份可能偏樂觀的模擬上,而不是對照現實。
- 被拿來比較的兩份回測,測的到底是不是同一個標的、同一組引數、同一個時間區間——還是隻是兩個表面相似的問題?
- 回測對執行和成交做了什麼假設?相對實盤訂單簿的真實狀況,這個假設樂觀到什麼程度?
這套方法的位置
這與MOA在獨立驗證與確認(Independent Verification & Validation)服務下審查企業級供應商方案與架構決策所用的,是同一套紀律——延伸到量化與演算法交易模型。我們審查方法論與證據;我們不銷售、不管理被評審的策略,也不提供個性化投資建議。價值與我們所有其他業務一致:沒有分銷佣金,對答案沒有立場,沒有任何動機說你想聽的話。