VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 回測與檢驗

如何閱讀回測績效報表:Sharpe、Sortino、CAGR、最大回撤

先看扣除成本後的淨損益、獲利因子、每筆期望值、搭配 CAGR 的最大回撤,以及一個風險調整後比率。這幾個數字合在一起,能說明策略在扣除成本後有沒有賺錢、過程有多難熬,以及優勢在條件稍微變差時是否還撐得住。勝率、交易筆數與在市場中的時間則是用來輔助這五項。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 回測績效報表中,哪五個數字最重要?
  2. 淨損益、獲利因子與期望值各說明了什麼?
  3. Sharpe 與 Sortino 有何差別?為什麼逐筆交易的 Sharpe 容易誤導?
  4. 為什麼 CAGR 與最大回撤必須一起看,不能單看?
  5. 交易筆數、在市場中的時間與最長連虧又增添了什麼資訊?
  6. 要如何逐項閱讀回測績效報表?
  7. 哪些報表數字最常造成誤導?
  8. 常見問題
  9. 參考文獻

回測績效報表中,哪五個數字最重要?

先看扣除成本後的淨損益、獲利因子、每筆期望值、搭配 CAGR 的最大回撤,以及一個風險調整後比率(Sharpe 或 Sortino),其他都往後放。這五個數字回答三個關鍵問題:策略在扣除手續費與滑價後有沒有賺錢、最糟的一段有多深,以及結果在條件稍微變差時是否還撐得住。

回測績效報表是對同一條模擬權益曲線所做的一組量測。報表上多數項目只是從不同角度描述同一條曲線,所以你不需要全部都看。你需要的是不會因為改變交易口數或測試長度而被做假的那些數字,而且要成對來讀。其中兩項你可以用免費的 Sharpe 比率計算機和回撤計算機自己驗算。

先看的五個報表數字,以及各自回答的問題:扣除成本後的淨損益、以獲利對虧損衡量的獲利因子、代表成本之上空間的期望值、以 CAGR 搭配最大回撤看過程有多難熬,以及 Sharpe 或 Sortino 代表的風險調整後結果。勝率、交易筆數與持倉時間僅作輔助 先看五個數字 淨損益 扣除成本後? 獲利因子 獲利對虧損 期望值 高於成本嗎? CAGR+最大回撤 多難熬? Sharpe/Sortino 風險調整後 勝率、筆數、時間:輔助。 所以:先看這五項。
最先要看的五個數字,以及每個數字回答的問題。第二組數字用來輔助,但不能取代這五個。

淨損益、獲利因子與期望值各說明了什麼?

淨損益說明策略總共賺了多少,獲利因子說明獲利的單子勝過虧損的單子多少,期望值則說明每一筆交易在扣掉成本之後是否還有空間。淨損益是所有已平倉交易扣除手續費與滑價後的總和。獲利因子是總獲利除以總虧損,所以 1.0 代表獲利的單子剛好補平虧損的單子。期望值是扣除成本後的平均每筆損益;勝率與期望值計算機可以用勝率以及平均獲利與平均虧損算出來。

假設範例

某期貨策略在 400 筆交易中,總獲利 60,000、總虧損 40,000。淨損益是 20,000。獲利因子是 60,000 ÷ 40,000 = 1.5。期望值是 20,000 ÷ 400 = 每筆 50。如果一買一賣(來回)的成本(進場與出場的手續費加滑價)是每筆 30,且已經計入,那麼每筆在扣掉成本後還留有 50。如果這 30 還沒計入,期望值就掉到 20,滑價稍微增加一點就會吃掉大部分。

假設策略在 400 筆交易中總獲利六萬、總虧損四萬:獲利因子比較賺與賠,為 1.5;期望值比較每筆交易與其成本,每筆淨賺 50,成本為 30 相同總額,兩個問題 假設:400 筆交易 獲利因子 獲利 6 萬 虧損 4 萬 比值 1.5 期望值 淨額 50 成本 30 每筆:成本的 1.7 倍 同樣的資料,兩種不同的檢驗。 所以:兩者都要看。
獲利因子與期望值來自同樣的總獲利與總虧損,但回答的問題不同:一個是拿獲利單與虧損單相比,另一個是拿每筆交易與其成本相比。

合理的數值長什麼樣子,取決於策略的交易頻率。扣除成本後,獲利因子接近 1.0 代表優勢很薄,滑價稍有變動就可能讓正負號翻轉。對於多年來每週交易數次的策略,約 1.3 到 2.0 之間的數值很常見。在短期測試或交易筆數很少的情況下,獲利因子高於 3,通常代表測試期間太短,或規則是配合資料硬套出來的。期望值應該是一買一賣(來回)成本的數倍;關於原因,請見回測中的交易成本一文。淨損益很大、但獲利因子接近 1.0、期望值又貼近每筆成本,這是該進一步細看的訊號,而不是一個好結果。

Sharpe 與 Sortino 有何差別?為什麼逐筆交易的 Sharpe 容易誤導?

Sharpe 比率把報酬的每一次波動都視為風險,而 Sortino 比率只計入虧損的期間,所以 Sortino 不會懲罰大幅獲利的月份。兩者都是風險調整後比率:它們都是用某個期間(通常是一個月)的平均報酬,除以這些期間報酬的離散程度。

Sharpe 比率是每期平均報酬除以每期報酬的標準差。標準差是衡量離散程度的指標:當每個月都和平均月份差不多時,它很小;當各月差異很大時,它就很大。寫成公式如下:

Sharpe 比率 = 月平均報酬 ÷ 月報酬的標準差,其中「月平均報酬」是十二個(或更多)月份結果的平均值,「標準差」則是典型的一個月與該平均值的距離。許多報表會先從平均值中扣掉現金利率(例如國庫券殖利率);對於使用保證金的期貨策略,這個差距通常很小。

Sortino 比率的概念相同,但分母只使用虧損的月份(下行標準差)。如果一個策略有幾個非常大的獲利月份、虧損則小而平均,它的 Sortino 會高於 Sharpe,因為 Sharpe 把那些大額獲利也當成波動。

十二個月報酬示意圖:夏普比率把所有月份的波動都視為風險,包括兩個大幅獲利的月份;索提諾比率只計入虧損的月份 索提諾不計大賺 示意圖:什麼算風險 夏普 所有月份 索提諾 僅計虧損 大賺只會推高夏普的風險。 所以:用月資料兩者並看。
Sharpe 使用所有月份的離散程度;Sortino 只使用虧損月份。兩個大幅獲利的月份會拉高 Sharpe 的分母,但不會拉高 Sortino 的分母。

兩個比率都取決於所用的期間。以月報酬計算、再換算成年化(乘以 12 的平方根)的 Sharpe,是常見的報告慣例,也是多數交易人說「年化 Sharpe」時所指的數字。用日報酬算同一條權益曲線會得到不同的數字,而且當某一期的報酬會延續到下一期時,差距會更大;Lo(2002)說明了年化誤差可以有多大。只有在計算方式相同時,才拿不同的 Sharpe 比率相比。

以個別交易計算的 Sharpe 比率,很難在不同策略之間比較。交易並不是均勻分布的:某個策略可能一週內進行十筆交易,接著一整個月都沒有交易。逐筆標準差也取決於交易筆數,所以一個做 200 筆小額交易的策略,與一個做 20 筆較大額交易的策略,即使年底結果相同,逐筆 Sharpe 也可能差很多。它們的月 Sharpe 則會很接近,因為月份間隔均等,而且兩個策略都是以同一份日曆來衡量。

兩個年度績效相同的策略示意圖:一個有 200 筆均勻分布的交易,另一個有 20 筆集中的交易;它們的每筆交易夏普比率不同,但月夏普比率相近 以月比較夏普 年度績效相同,示意圖 200 筆交易 20 筆交易 每筆:不同 每月:相近 交易間隔會扭曲每筆夏普。 因此:以月報酬比較。
兩個年度結果相同的策略:交易間隔與交易筆數會改變逐筆 Sharpe,而月 Sharpe 仍然可以相互比較。

以經驗法則來說,對於測試多年且已計入成本的單一期貨策略,由月報酬算出、接近 1 的年化 Sharpe 是相當不錯的研究結果;回測中出現高於 2 或 3 的數值,比較常是測試期間太短,或是從眾多變體中挑出最好的那一個,而不是策略更強的訊號。Deflated Sharpe 比率會依據你嘗試過的變體數量來調整所報告的數值;這項調整的出處是 Bailey 與 López de Prado(2014)。

為什麼 CAGR 與最大回撤必須一起看,不能單看?

單看 CAGR 只能知道帳戶成長得多快,卻完全看不出一路上得忍受多深的坑,所以要搭配最大回撤一起看。CAGR(年複合成長率)是指在測試期間內,假設成長是平順的,把起始餘額變成期末餘額所需的單一年化比率。最大回撤(常寫成 max DD)是權益從高點下跌到下一個低點、再創新高之前的最大跌幅,以金額或佔高點的百分比衡量。

假設範例

兩個策略都在五年內把 100,000 成長到約 161,000,所以兩者的 CAGR 都約為 10%(1.10 連乘五次約為 1.61)。策略 A 從高點算起的最深跌幅是 12%;策略 B 是 35%,並且花了 14 個月才恢復。CAGR 除以最大回撤,A 約為 0.8,B 約為 0.3。以 100,000 的帳戶來說,策略 B 在某個時點會落到約 65,000,而且每一個持倉仍然必須滿足保證金要求。

兩條假設的權益曲線年成長率都約 10%:策略 A 最大回撤 12%,年複合成長率與最大回撤比為 0.8;策略 B 回撤 35%,比值為 0.3 相同年化報酬,痛苦不同 假設:兩者年化約 10% A:最大回撤 −12% B:最大回撤 −35% CAGR ÷ 回撤 0.8 CAGR ÷ 回撤 0.3 只看 CAGR 會掩蓋回撤。 所以:CAGR 與最大回撤要一起看。
相同的 CAGR,回撤卻差很多。CAGR 與最大回撤的比值能區分這兩條曲線;單看 CAGR 則不行。

要拿金額計的回撤,去對照你打算實際交易的帳戶規模,而不是測試時的起始餘額。在 100,000 的測試帳戶上,9% 的回撤是九千元的坑;在三萬元的實際帳戶上,它就是 30%,而且在谷底時每一口的保證金仍然得顧得上。也要檢查恢復時間(曲線停留在舊高點之下多久)。花了兩年才恢復的回撤,與花了兩個月就恢復的回撤,即使深度相同,感受也完全不同。請記住,未來最糟的回撤通常會比過去最糟的回撤更深,因為過去只是一個樣本;把交易順序重新洗牌的蒙地卡羅測試,會給你一個回撤範圍,而不是單一數字。免費的蒙地卡羅模擬器會把你自己的交易順序重新洗牌,給出那個回撤範圍,再拿去對照你打算交易的帳戶規模。

交易筆數、在市場中的時間與最長連虧又增添了什麼資訊?

這三項都不是績效數字,這正是它們有用的原因:就算你把部位大小多加一個零,它們也不會改變。交易筆數是證據的多寡;在市場中的時間顯示風險落在哪裡;最長連虧則是你必須在不碰規則的情況下撐過去的那一段。

  • 交易筆數。30 筆交易得出的獲利因子 2.0,在被證明之前只是幾筆運氣好的交易;同樣的數值若來自 400 筆、橫跨不同市場條件的交易,才算證據。交易筆數較少,也代表如果用稍微不同的歷史重跑同一套規則,結果的範圍會更寬。
  • 在市場中的時間。在市場中的時間,是策略持有部位的 K 棒(或小時)所佔的比例。一個有 35% 時間在市場中的策略,在測試期間約三分之一的時間要承擔隔夜與消息面風險;一個有 95% 時間在市場中的策略,則比較像是在買進持有的部位上再加一些規則。兩個 CAGR 相同、但在市場中的時間不同的策略,運用資金的方式差異很大。
  • 最長連虧。最長連虧是連續虧損交易的最大筆數。它包含在最大回撤之內,但不是同一個數字:回撤可以由小賺與較大虧損交替累積而成,完全沒有長連虧。這是交易前就該知道的數字,因為連虧九筆正是多數交易人開始手動改規則的時候。
單一權益曲線示意圖:連續九次虧損只是最大回撤的一部分,最大回撤比連虧更深,下方色帶標示策略持有部位的期間 連虧在回撤之內 單一權益曲線示意 最大回撤 連虧9次 持有部位 回撤比連虧更深。 所以:交易前兩者都要懂。
最長連虧與在市場中的時間在權益曲線上的位置。連虧是最大回撤的一部分,但回撤可以比任何一段連虧更深。

要如何逐項閱讀回測績效報表?

閱讀報表的順序是:先看淨損益與交易筆數,接著是獲利因子與期望值對照成本,再來是最大回撤對照 CAGR,然後是風險調整後比率,最後是連虧與在市場中的時間。每一步都會確認前一步,或是讓你回頭再檢查。

假設範例

某期貨策略測試約兩年八個月,起始餘額 100,000,報表如下:扣除成本後淨損益 20,000;400 筆交易;獲利因子 1.5;期望值每筆 50;一買一賣(來回)成本每筆 30;勝率 50%;平均獲利 300;平均虧損 200;最大回撤 9,500(9.5%);CAGR 約 7%;Sharpe 0.9、Sortino 1.3(由月報酬年化);最長連虧 9;在市場中的時間 35%。

  1. 淨損益與交易筆數。400 筆交易賺到兩萬,證據足以讓你繼續看下去;同樣的金額若只來自 25 筆交易,就不夠了。
  2. 獲利因子與期望值對照成本。獲利單勝過虧損單 1.5 比 1,而且每筆在扣掉 30 的成本後還剩 50。如果這 30 全部是滑價,而滑價增加一倍,期望值會掉到每筆約 20。這還撐得住但很薄,所以滑價是第一個該做壓力測試的項目。
  3. 最大回撤對照 CAGR。約 7% 的年成長對應 9.5% 的回撤,比值接近 0.7。在五萬元的實際帳戶上,同樣的回撤是 19%,這才是該拿來對照你自己承受度的數字。
  4. Sharpe 與 Sortino。Sortino 通常高於 Sharpe,因為它忽略獲利月份的離散;差距這麼大(1.3 對 0.9),代表獲利月份的離散程度遠大於虧損月份,這與有少數大額獲利的策略相符。光憑這兩個數值,都還不到會讓人懷疑嚴重套用資料的程度。
  5. 連虧與在市場中的時間。連虧九筆、平均虧損 200,約為一千八百元,遠小於最大回撤,所以這個回撤是由較長的混合期間累積而成。在市場中的時間為 35%,代表測試期間大部分時間是空手,因此那 9.5% 的回撤來自大約三分之一的日曆時間。
一份假設性報表分五步成對解讀:淨損益 20,000 搭配 400 筆交易;獲利因子 1.5 搭配期望值 50 對比成本 30;最大回撤 9.5% 搭配年複合報酬率 7%;夏普 0.9 搭配索提諾 1.3;最長連虧 9 筆搭配持倉時間占比 35% 成對解讀報表 1 2 3 4 5 淨損益 20,000 獲利因子 1.5 最大回撤 9.5% 夏普 0.9 連虧 9 400 筆交易 50 對成本 30 年複合 7% 索提諾 1.3 持倉 35% 每組數字都檢驗前一組。 所以:下一步測試滑價壓力。
依交易人應該檢查的順序來閱讀的一份假設報表。箭頭標出必須一起閱讀的成對數字。

接下來要檢查的是:用兩倍滑價重跑同樣的規則,查看各月結果,確認淨損益是否只來自兩、三個月,並進行推進分析,看看這些設定在沒有拿來調整的資料上是否依然成立。

哪些報表數字最常造成誤導?

沒有搭配平均獲利與平均虧損的勝率、扣除成本前的淨損益、來自短期測試的 Sharpe、接近一買一賣(來回)成本的平均每筆損益,以及只用已平倉交易衡量的回撤,這些是最常讓弱策略看起來很強的項目。每一項在同一份報表中都有可以交叉檢查的對象。

會誤導的數字為何會誤導應該改看什麼
單看勝率70% 的勝率若是小賺大賠,仍然會虧錢;勝率掩蓋了平均虧損的大小。平均獲利對照平均虧損,或看期望值那一行。勝率與風險報酬比之間的取捨,決定了高勝率是否有價值。
扣除成本前的淨損益成本隨交易筆數增加,所以毛利最高的策略,往往是交易最多、每筆優勢最小的那些。扣除手續費與滑價後的淨損益,以及期望值對照一買一賣(來回)成本。
來自短期測試的 Sharpe月份太少時,標準差並不穩定,一個好的季度就能產生高於 3 的 Sharpe。這個比率背後的月數與交易筆數,以及它是用月、日還是逐筆報酬計算的。
平均每筆損益接近成本滑價小小的變動,就會讓每一筆交易甚至整份報表的正負號翻轉。期望值除以一買一賣(來回)成本;用兩倍滑價重跑。
已平倉交易的回撤有些報表只在交易出場時衡量回撤,所以曾經深度套牢、之後才恢復的未平倉部位完全不會出現。包含未平倉部位、逐根 K 棒衡量的回撤。
假設案例,每 10 筆交易:7 筆獲利各 100,共賺 700;3 筆虧損各 300,共賠 900,淨損益為 −200,平均每筆 −20,儘管勝率達 70% 勝率 70%,仍然虧損 假設:每 10 筆交易 7 筆獲利 +700 3 筆虧損 −900 淨損益 每筆 −20 勝率藏住了虧損的大小。 所以:看平均賺賠比。
假設情境:勝率 70%、平均獲利 100、平均虧損 300,期望值為 0.7 × 100 − 0.3 × 300 = 每筆 −20。光看勝率會掩蓋這個虧損。

如果你使用 AlphaPrime(Valynox),這代表:績效報表會為你保留的每個策略顯示權益、回撤、交易明細、各期間績效,以及多空分析。每次評估都已計入手續費、滑價與下一根 K 棒成交,所以這些數字本來就是淨值;請依本文說明的順序來閱讀。

常見問題

期貨交易策略的 Sharpe 比率多少算好?

對於測試多年且已計入成本的單一策略,由月報酬算出、接近 1 的年化 Sharpe 是相當不錯的研究結果。回測中高於 2 或 3 的數值,比較常來自短期測試,或是從眾多變體中挑出最好的一個,而不是來自更強的優勢。在比較兩個策略之前,務必先確認這個比率是用哪個期間計算的。

Sharpe 比率與 Sortino 比率有什麼差別?

兩者都是用每期平均報酬除以某種離散程度的衡量。Sharpe 使用所有期間的標準差,所以大幅獲利的月份也算作風險。Sortino 只使用虧損的期間,所以有少數非常大的獲利、虧損又平均的策略,在 Sortino 上的得分會高於 Sharpe。

獲利因子多少算好?

獲利因子是總獲利除以總虧損。扣除成本後,接近 1.0 的數值代表優勢很薄;在長期測試中交易頻繁的策略,約 1.3 到 2.0 之間很常見;而在短期測試或交易筆數很少的情況下高於 3,通常指向過度最佳化。請搭配交易筆數,以及期望值對照一買一賣(來回)成本一起閱讀。

回測中的最大回撤是什麼意思?

最大回撤是權益從高點下跌到接下來的低點、再創新高之前的最大跌幅,以金額或佔高點的百分比表示。它描述的是交易人在測試期間可能經歷過的最糟一段。請拿它與你打算交易的帳戶規模以及 CAGR 比較,並留意曲線花了多久才恢復。

CAGR 和平均年報酬一樣嗎?

不一樣。CAGR 是在整個測試期間內,把起始餘額變成期末餘額的單一年化比率,因此已考慮複利。當各年報酬有高有低時,各年報酬的簡單平均通常會高於 CAGR,因為大幅虧損會縮小後續獲利所依附的基數。

參考文獻

  • Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52.
  • Bailey, D. H., & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-Normality. The Journal of Portfolio Management, 40(5), 94–107.