樣本邊界:先鎖定版本
測試前寫下標的範圍、資料期間、樣本數、涵蓋的市況,以及納入與排除規則,並封存規則版本與生效日期。十幾次觀察不能冒充廣泛證據。
回測的目的不是證明策略有效,而是檢查規則在歷史情境中如何表現、何時失靈,以及結果對假設有多敏感。**歷史結果不代表未來結果**,回測也可能漏掉流動性、滑價、成本、規則變動與執行延遲。

回測是把規則放進歷史資料檢查,不是對未來的保證。若一邊看結果一邊改參數,很容易把歷史雜訊誤認成優勢。
規則已固定。每點一次才揭曉下一筆 R 結果;指標會隨樣本增加即時變化。
阿明滷了一鍋肉,先嚐鍋面一口覺得太淡就加醬油,再嚐鍋底一口覺得太鹹就加水。反覆調整之後,他宣布「這個配方經過兩次驗證」。問題是兩次都參與了改配方,他沒有留下任何一口沒嚐過的來檢驗它能不能重現。
測試前寫下標的範圍、資料期間、樣本數、涵蓋的市況,以及納入與排除規則,並封存規則版本與生效日期。十幾次觀察不能冒充廣泛證據。
手續費、交易稅、買賣價差、滑價、較大練習數量對價格的影響,以及未成交怎麼模擬,都要有明確假設;再檢查成本提高時結論會不會改變。費率、稅制與交易規則以商品最新正式文件與交易所、主管機關、服務機構的公告為準,並記下查閱日期,無法確認就停止。
遮住未來 K 線,只使用當時已公布的價格與資訊。財報條件要用市場當時真正可取得的公告日,而不是報表所屬季度的最後一天;也要避免只挑後來仍然存在的標的,以及事後重編過的欄位。
樣本內用來發現問題,樣本外用來檢驗沒看過的資料,不得繼續調參。滾動覆核是按時間往前移動檢驗窗口,不是回頭重寫舊答案。符合與不符合都要留痕,不能只挑好看的案例。除權息、減資與股票分割會改變價格的可比性,調整方式必須寫在協議裡。
同時揭露規則版本、觀察數、結果分布、最深的不利階段與失敗案例,並比較不同年度、市況與產業,不把單一數字當成結論。
改變觀察數量,比較「少數連續有利結果」與更長樣本的波動。樣本變多通常能降低單次偶然結果的影響,但它修不好錯誤的資料,也補不回制度或流動性的結構變化。後面那份 BT-01 只有六列,用來練習欄位與計算可以,用來評價一條規則遠遠不夠。
交易數量太少,不足以得出可靠結論——少數結果很容易被偶然性主導。
值得繼續測試的早期讀數——模式出現的次數開始超過偶然,但樣本仍然偏小。
更大的樣本更有分量,但即使很大的歷史樣本,也永遠不能保證未來結果會重複過去。
加入隨後 88 次沒有參與調整的觀察後,100 次裡只有 51 次為正;再計入虛構的手續費、交易稅、買賣價差與滑價,整體結果又更低。數字全為虛構練習資料。
每一次挑選都在吸收這段樣本的雜訊;即使樣本內的曲線更平滑,樣本外也可能很快失靈。
高度相似或重複的觀察不等於廣泛涵蓋;制度、流動性或執行方式改變時,歷史關係可能不再成立。
排除下市、合併與長期暫停交易的歷史成員,會改變當時的母體,這就是存活者偏誤;規則一致或重新加權都補不回缺少的樣本。
平均值會藏住路徑風險。勝率與平均賺賠要一起讀,看結果是不是由少數大幅案例主導;最大回撤描述歷史最深的峰谷落差,不是未來的回撤上限;分期表現則顯示規則是不是只集中在某幾年成立。
回測只描述特定資料與假設下發生過什麼,可能漏掉流動性、滑價、成本、規則變動與執行延遲,也不提供具體標的、方向、價位或個人化指令;虧損是真實而且可能發生的結果。
【虛構練習資料 BT-01】起始模擬權益 100R,R 是練習單位,不是任何幣別或報酬率。六列紀錄如下:
R1 有訊號、已成交,毛結果 +2.0R、成本 0.1R,無事件;
R2 無訊號、不適用,成本 0R,無事件;
R3 有訊號、未成交,不適用,成本 0R,保留這一列不刪除;
R4 有訊號、已成交,毛結果 −1.0R、成本 0.2R,虛構 1 拆 2,題目價格已調整,不再重複調整;
R5 無訊號、不適用,成本 0R,虛構現金分配 0.3R,因為沒有部位,只留事件註記;
R6 有訊號、已成交,毛結果 +0.4R、成本 0.1R,無事件。
已成交列的淨結果=毛結果−成本,依序為 +1.9R、−1.2R、+0.3R;未成交與無訊號列保留,但不放進勝敗分母。固定答案:成交 3 筆、未成交 1 筆、無訊號 2 筆,總淨結果 +1.0R,期末權益 101.0R,勝率 2 ÷ 3,最大回撤 1.2R。六列都要保留,並填齊觀察序號、當時可得資料、訊號是/否、執行狀態、毛結果、成本、事件、事件處理、淨結果與偏差十個欄位;本題所有偏差固定為「無」。
接著稽核下方的虛構方案,只問四件事:規則什麼時候封存?樣本外是不是真的沒有參與調參?當時取不到的資料有沒有混進來?費用、價差、滑價與未成交有沒有被漏掉?
交易者反覆調整規則的精確門檻,直到它在同一段被測試的歷史資料上取得最佳結果。這有曲線擬合的風險:把規則調成匹配某個資料集裡的雜訊,而不是更普遍的規律。
交易者用 8 筆歷史交易測試規則,全部獲利,就斷定規則已被證明。8 筆太少,無法排除偶然,無論其中多少筆獲利。
交易者用一段歷史資料設計規則,再在另一段設計時從未見過的後期資料上單獨測試。在規則設計時從未見過的資料上測試,比用同一段資料測試更有意義。
記錄固定規則在指定歷史樣本裡的逐筆模擬結果、正結果比例、最大回撤、成本假設與規則版本。以 BT-01 為例,六列的訊號、執行狀態、毛結果、成本、事件處理與淨結果都要原樣留存。
這些數字只描述那一段歷史區間與模擬假設,推不出規則在未來仍然成立,也不能直接外推到真實執行。
測試前先寫下可檢驗的預期:在沒有參與調參的歷史樣本裡,結果應落在事前寫好的容忍區間。
若加入合理成本、換到樣本外區間,或只是輕微改變參數就讓結論翻轉,就應報告規則脆弱,而不是把這個結果藏起來。
測試前封存規則版本、樣本邊界、資訊口徑與成本模型,並記下正式來源的查閱日期。
把發現問題與檢驗重現分開;樣本外一旦參與調整,就要重新留出新樣本。
改變成本、區間與參數檢查穩定性,同時保留最差階段、未成交列與反例。
檢查你是否能辨認手動回測中的常見偏誤。送出作答後會顯示每一題的原理說明。
Mira 僅協助檢查去識別化的教學情境,不收集真實帳戶、個人、資產或憑證資料;可整理欄位與找出偏誤,但不提供具體標的、方向、數量、時點或確定性預測。
正在檢查登入狀態...