電子表格中最好的回測
從大量實驗中挑選最強結果可能製造信心,即便現實執行成本會抹去表面優勢。

概念示意圖,非實際市場數據。圖示標籤可能採用與案例不同的簡化示例。
情景設定
假設性教學案例。價格序列、策略、交易結果和統計數據均為虛構。它們不是歷史記錄、業績聲明或可交易信號。Lena 在合成股票籃子上測試均線思路。嘗試 120 種參數組合後,她選擇最有吸引力的結果,並以其中 200 筆模擬交易作為穩健優勢的證據。研究複核會追問:選中了甚麼,遺漏了甚麼,以及哪些數據仍真正未被看過。
重建亮眼的表面數字
選定配置有 110 筆毛盈利交易,平均盈利 $180;90 筆毛虧損交易,平均虧損 $160。毛收益為 $19,800,毛損失為 $14,400,200 筆交易剩餘 $5,400。平均每筆毛收益為 $27,勝率為 55%。這兩個數字都無法說明策略能否承受現實成本,也無法說明篩選過程發現的是信號還是運氣。
Lena 假設每筆交易的往返成本僅為 $2,使結果減少 $400 至 $5,000。但虛構的執行審查估算,每次完成的往返交易包括 $6 傭金和顯性費用、$12 價差成本,以及 $15 額外滑點。合計每筆 $33,整個樣本共 $6,600。毛結果不變時,修訂後的淨結果為虧損 $1,200,平均每筆交易負 $6。
明確成本,避免重複計算
這些成本組成之所以合理,是因為合成回測使用了無摩擦參考價格。如果已經按買價和賣價模擬成交,再單獨扣除完整價差會高估成本。同樣,從決策價計算的實施差額可能已包含價差和市場衝擊。研究日誌需要精確定義入場基準、退出基準和額外費用。
敏感性表應測試多種往返總成本,而不只是對策略最有利的那一種。成本為 $15 時,淨結果為 $2,400;為 $27 時,淨結果為零;為 $45 時,淨結果為負 $3,600。這些是算術情景,而非預測。$27 的盈虧平衡成本尤其有用,因為它揭示了選定毛結果為成交不確定性、錯失成交及操作錯誤留下的餘地有多小。
選擇問題先於最終圖表
Lena 並非在看到樣本前就選擇了該配置。她選擇它,是因為它在同一樣本上優於其他 119 個方案。即使策略沒有持久預測優勢,嘗試大量變體也可能得到一個誘人的贏家。作為刻意簡化的示例,如果 120 次獨立測試各有 5% 的假陽性概率,至少出現一次的概率為 1 − 0.95^120,約 99.79%。
實際的策略變體很可能彼此相關,因此基於獨立性所作的計算,並不是 Lena 研究的有效 p 值。它的作用是揭示多重檢驗問題,而不是精確量化該問題。她必須記錄所有嘗試過的變體,包括捨棄的指標、改動的日期窗口及人工例外。一張精美的最終圖表,無法揭示其背後隱藏了多少失敗實驗。
保留真正獨立的評估集
更好的虛構研究設計,會區分開發、驗證及最終未經使用的測試。Lena 可以用開發數據形成想法,用驗證數據比較一組數量有限且有記錄的選擇。一旦她查看最終測試並據此修改策略,該數據就不再是未經使用的。反覆把同一份數據稱為“樣本外”,並不能恢復獨立性。
在一項新的 60 筆交易測試中,假設有 28 筆毛盈利,平均為 $170,另有 32 筆毛虧損,平均為 $150。毛結果為 $4,760 − $4,800 = 負 $40。每次往返交易成本為 $33,合計增加 $1,980 成本,淨結果為負 $2,020。這個虛構的小樣本不能證明策略永遠不可行,但也不支持最初的信心。適當的回應是調查或否決,而不是自動不斷修改參數,直到留出集表現轉正。
研究複核應先分別展示兩個樣本,再報合計數字。修正後的兩百筆開發交易虧損 1200 美元,新的六十筆測試虧損 2020 美元,合計兩百六十筆虧損 3220 美元,平均每筆約 −12.38 美元。算術相加沒有問題,但合併不會讓已用於挑選策略的開發樣本變成獨立證據。後續測試有不同作用:檢驗在這些結果出現前已經固定的決策。
檢查信息時點和虧損路徑
複查還要問:信號是否使用了每筆模擬交易前實際可得的數據?若無合理的執行機制,收盤價指標通常不能為更早按同一收盤價成交提供依據。標的範圍選擇不應悄悄剔除失敗或退市證券。公司行動、時間戳對齊與過時報價都可能顯著改變模擬結果。每項檢查針對的是可能的誤差來源,而不是保證未來盈利。
最後,Lena 在總利潤旁記錄回撤、連續虧損、換手率和資本使用情況。最終恢復的策略仍可能在途中突破資金限制。NFA 提醒,假設結果受益於事後信息,無法完整再現真實財務風險體驗。模擬測試能揭示流程問題,但不能證明實盤流動性、可擴展性,或在真金白銀虧損時遵守策略的能力。
先明確什麼證據能夠真正改變結論
Lena 下一步做什麼,取決於問題根源。如果時間戳錯誤讓今日訊號讀取明日資訊,就應修復實現,並撤回或明確替換受影響結果。如果程式碼正確,只是合理成本吃掉優勢,換一個圖表標題無濟於事。如果某筆異常盈利解釋了幾乎全部毛利,則要研究這種依賴是否有經濟依據、樣本是否充分覆蓋它。
她可以準備一個可重現材料包:全部一百二十種配置、準確的人工資料集、選出贏家的評分規則、所有費用口徑,以及凍結後的最終規範。其他審閱者應能同時重現漂亮的原始結果與不漂亮的修正版。保留失敗版本有助於看清是哪項假設改變結論。可重現性是驗證計算的條件,不是策略將來會成功的證據。
敏感性檢查要區分成本變化和交易清單變化。對同樣兩百筆完整交易,將每筆費用從三十三美元提高到四十五美元,新增成本為 2400 美元,淨結果由 −1200 變為 −3600。但若流動性下降還使部分訂單無法成交,毛交易清單本身也改變了,這就需要新的執行模擬,而不只是對舊清單再扣一筆費用。精確的成本表不能掩蓋更大的成交模型問題。
最後,Lena 應說明哪些工作算新實驗,哪些只是繼續此前搜索。受到失敗留出樣本啟發的新規則當然可以研究,但它在該樣本上的表現已屬於開發證據。真正後來的觀察期,只有在修改版規範和評價標準事先固定後,才有資格檢驗新流程。誠實結論可以是當前想法缺乏支持;研究複核不必強行產出一套可交易策略。
推理錯在哪裡
只報告獲勝的實驗
搜尋歷史很重要,因為最終選定的配置受益於篩選過程。
重複使用留出集
查看測試結果後修改策略,會消耗該測試作為獨立證據的價值。
將參考價格當作成交價
可實際交易的結果,需要有依據的成交和成本假設。
檢驗決策,而非記憶。
一個新的模擬樣本包含 45 筆盈利,平均 $220,以及 55 筆虧損,平均 $140。在淨利潤轉負前,最高平均往返成本是多少?每筆交易成本為 $25 時會怎樣?
顯示解答過程
毛盈利為 45 × $220 = $9,900。毛虧損為 55 × $140 = $7,700。100 筆交易的毛利潤為 $2,200,因此每筆盈虧平衡成本為 $22。成本為 $25 時,總成本為 $2,500,淨結果為負 $300。這一計算並不能糾正選擇偏差或數據洩漏。