隨機搜尋 vs 智慧搜尋:交叉點在評估成本,而非演算法本身
當單次回測很便宜時,簡單的打亂 Sobol 序列在原始吞吐量上碾壓所有"智慧"取樣器——TPE、CMA-ES、ASHA 要繳納 Python ask/tell 稅,導致速度下降 20 倍,在相同牆鍾時間內評估的點數遠遠更少,因而落敗。讓每次評估變得昂貴(多時間框架 + walk-forward 折)之後,交叉點就翻轉了。我們測量了這兩種情形,以及為什麼摺疊排名保真度(ρ@1 從 0.03 升至 0.43)是剪枝能否奏效的前提條件。
Nothing found. Try a different query.
當單次回測很便宜時,簡單的打亂 Sobol 序列在原始吞吐量上碾壓所有"智慧"取樣器——TPE、CMA-ES、ASHA 要繳納 Python ask/tell 稅,導致速度下降 20 倍,在相同牆鍾時間內評估的點數遠遠更少,因而落敗。讓每次評估變得昂貴(多時間框架 + walk-forward 折)之後,交叉點就翻轉了。我們測量了這兩種情形,以及為什麼摺疊排名保真度(ρ@1 從 0.03 升至 0.43)是剪枝能否奏效的前提條件。
並非所有參數的搜尋成本都相同。一個策略的參數會分裂為一條昂貴軸(指標——需要在整個序列上重新計算)和一條廉價軸(決策閾值——對預計算訊號做一次 O(n) 遍歷)。由於指標對閾值不變,你只需計算一次,就能以約 5,600 cfg/s 的速度掃描數千種閾值配置——比每種配置都重新計算大約便宜 1,600 倍。這是對維度災難的一次重新定價。
我們在同一個參數掃描任務上對八個回測引擎進行了基準測試——15萬根K線、80個HMA交叉組合、交易筆數嚴格鎖定在2707筆。兩個最受歡迎的事件驅動框架的速度居然比手寫的 pandas 迴圈還慢,而一個向量化/編譯型引擎完成同樣的工作快了約13000倍。這是一篇關於主流庫從未被設計用來攤銷的逐K線開銷的研究。
Deflated Sharpe Ratio 給獲勝策略定價;PBO 給挑出它的那次搜尋定價。組合對稱交叉驗證(Combinatorially Symmetric Cross-Validation)在一個 1000x200 的表現矩陣上跑 C(16,8) = 12,870 次訓練/測試切分,問的是:樣本內贏家會不會落入樣本外的後一半?幾乎每個人都會看錯的地方——PBO 的零假設值是 0.5,不是 1。在 200 個零優勢策略上,最佳樣本內年化夏普比率 1.98 在樣本外坍縮到 0.06,PBO = 0.476:如同拋硬幣,徹底過擬合。植入一個真實優勢(年化夏普比率 2.38),PBO 降到 0.001,樣本內的 3.73 在樣本外仍保住 2.34。在純隨機遊走上跑移動平均線網格,同樣沒有任何樣本外的技巧——60 個矩陣平均 PBO 0.463,在統計上和零假設無法區分——而在其中一個具有代表性的矩陣上,這場海市蜃樓十分鮮明:最佳樣本內夏普比率 2.33 坍縮到樣本外中位數 -0.22,PBO 0.573,63% 的機率會虧錢。
我們把一個 numba 回測核心逐行移植到 Rust,並以四種方式跨程序邊界呼叫它,用等價性校驗確認到最後一筆交易都完全一致的 PnL。把整條 1.2 MB 的價格序列通過 Unix socket 傳輸一次,成本約 2 毫秒——約佔整個任務耗時的 0.1%。對同一份資料做 JSON 編碼,成本是原始位元組的 1348 倍;健談式的逐組合呼叫把資料重複傳輸了 80 次;逐 bar 呼叫模式會在一個 2.0 秒的任務上白白付出 2.1 秒的純 IPC 開銷。邊界本身很便宜,稅出在你如何跨越它。
參數搜尋是一臺製造運氣的機器。在純噪聲上——1,000 個真實優勢為零的策略——最佳年化夏普比率平均達到 1.63,樸素顯著性檢驗 100% 的時候都會宣佈發現。我們構建受控的真實基準,證明 Deflated Sharpe Ratio、Harvey-Liu 折價法與 White's Reality Check 能夠恢復誠實:假髮現率從 1.000 降到 0.001-0.057,噪聲上限之上的真實優勢仍以接近 1 的功效被保留——還有一個真實的陷阱(相關網格),在那裡原始 DSR 會過度折損,其結論必須放在一整條有效試驗數估計的區間上通讀,而不是隻看一個數字。
要搜尋'最好'的策略,你必須先定義什麼是'最好'——而那個標量,會悄悄替你選出贏家。在帶有已知優勢的合成數據上(600 個種子,T=2000,80 個候選閾值),樸素的逐筆(per-trade)夏普比率會加冕一張彩票:它在 56% 的種子上選出曝光率低於 5% 的贏家,在 57% 的種子上發生退化——在最極端的那個種子上,8 筆交易的樣本內夏普比率高達 21.09,樣本外卻崩塌到 0.13。誠實的修復幾乎平淡無奇:在整條時間線上測量,它從不退化(樣本外 1.71)。交易筆數(conf_k)收縮與曝光率下限可以給逐筆指標打補丁,但即便完全修復,它們也只能追平整條時間線夏普比率(1.70 對 1.71)——永遠無法超過它。古德哈特定律,在回測裡,配上受控的真實基準。