Blave Agent 回測輸出的八個數字——各自代表什麼,哪些真正值得信賴。
你手上有一份回測報告,總報酬 +145.8%,而你不知道這個數字該讓你興奮還是警戒。回測是把一套交易規則套回歷史資料跑一遍,看它過去會怎麼表現;它給你的不是「會賺多少」的預測,而是一組可以用來判斷的數字:報酬、風險、成本。判斷的方法是三個一起看,不是只看第一個。
btc_sma_cross 策略(BTCUSDT 1h,SMA45/SMA100,從 2022-01-01 起)的回測結果如下。這支範例沒有設回測結束日,每跑一次都跑到當天,所以下面是其中一次執行的快照,你現在自己跑會拿到不一樣的數字:
這個策略的報酬是買入持有的兩倍多——但期間也出現了 −42.6% 的最大回撤。能不能接受完全取決於你的風險承受度,以下的指標說明會幫你思考清楚。報告還有兩個成本相關的數字——Total Fees Paid(這個策略 4 年付掉本金的 22%)和交易筆數(Trades)——會在下面 Omega 的段落再次登場。
這是 Blave Agent 回測引擎跑出來的真實範例。如果你還沒有自己的策略、不知道從哪裡開始,不用從零寫程式做這件事——官方策略庫裡的策略每一個都附真實回測,你可以先看數字,再決定要不要部署。
Sharpe ratio = 年化報酬 ÷ 年化波動度(上行和下行都算)。它回答的問題是:每承擔一單位總風險,能換到多少報酬?
| Sharpe | 解讀 |
|---|---|
| < 0 | 風險調整後虧錢 |
| 0 – 0.5 | 偏弱,幾乎無法補償風險 |
| 0.5 – 1.0 | 趨勢策略可接受(SMA 範例落在這裡) |
| 1.0 – 1.5 | 好 |
| > 1.5 | 強——若回測期短,要帶著懷疑去看 |
Sortino ratio 和 Sharpe 類似,但只把下行波動算作風險,上漲的波動不罰。它回答:每承擔一單位壞的波動,能換到多少報酬?
SMA Cross 的 Sortino(0.72)和 Sharpe(0.77)相近,代表這個策略的波動是對稱的。如果 Sortino 遠高於 Sharpe,代表策略有大幅獲利但回撤受控——這是更理想的分布。
| Sortino 與 Sharpe 的關係 | 意義 |
|---|---|
| Sortino ≈ Sharpe | 報酬對稱,上行和下行波動相近 |
| Sortino >> Sharpe | 報酬正偏——大幅獲利、小幅虧損(理想) |
| Sortino << Sharpe | 報酬負偏——小幅獲利、偶爾大幅虧損(危險) |
最大回撤是整個回測期間,資產淨值從高點到低點最大的跌幅。淨值從 $100,000 跌到 $57,380 再回升,MDD 就是 −42.6%。
MDD 重要,是因為它衡量的是你需要承受多大的痛苦才能撐過去。現實中大多數人會在回升前就停掉策略。
Omega ratio = 超過門檻(通常為 0)的總報酬 ÷ 低於門檻的總虧損。不像 Sharpe 只看均值和標準差,Omega 捕捉完整的報酬分布。
| Omega | 解讀 |
|---|---|
| < 1.0 | 整體虧損 |
| 1.0 – 1.1 | 微利——扣掉真實成本後很容易轉虧 |
| 1.1 – 1.3 | 扎實 |
| > 1.5 | 強——或可能過度擬合 |
SMA Cross 的 Omega = 1.04,只比 1.0 略高。加上四年共支付了本金 22% 的手續費,真實世界的優勢相當薄。這對趨勢追蹤策略來說是正常的——這類策略的品質主要看 Sharpe 和 Sortino,Omega 偏低不代表策略有問題。
前視偏差(Lookahead Bias): 在決策時用了當時不存在的資料。Blave Agent 預設用下一根開盤執行來防止這個問題(例外是策略自己標記 exec_at_close 的那幾根 K 棒——例如台指期換月結算,會在當根收盤成交),但自訂指標計算還是可能引入——例如用整段歷史資料的平均值來計算 Z-score。
忽略熱身期(Warm-up Period): SMA(100) 這樣的指標需要 100 根 K 棒才有意義。前 100 根應該排除在績效計算之外。Blave Agent 的 WARMUP 參數會自動處理這件事。
在全部資料上最佳化: 如果你用所有可用資料掃描參數,再回頭用同一段資料報告績效,你報告的是訓練誤差,不是泛化能力。至少留 20–30% 的資料做樣本外驗證。(在 Blave 上實際怎麼做,見〈樣本外驗證怎麼做〉。)
忽略手續費: btc_sma_cross 四年下來支付了本金 22% 的手續費。頻率更高的策略,手續費很容易吃掉所有 alpha。費率要照你真的要下的市場填:FEE = 0.0005 對應的是 Binance U 本位合約 VIP0 的 taker 0.05%(maker 是 0.02%);Binance 現貨最低階的 maker、taker 都是 0.1%,現貨策略照 0.0005 寫就是低估成本。
把總報酬和風險調整後報酬混為一談: MDD −80%、報酬 200% 的策略,不比 MDD −15%、報酬 80% 的策略「更好」。前者大多數真實用戶會在最低點附近恐慌出場。