分類
績效
難度
進階
適用情境
EA 評估回測

複合年增長率(CAGR)

複合年增長率是把多年期報酬按複利折算成年化後的數字,它把長短不一的回測結果拉到同一把尺上,讓兩個在不同時間跨度上測試過的策略可以互相比較。

亦稱:CAGR, 年化報酬率, 年增長率

更新於

一句話講清

如果帳戶每年都按同一個百分比成長,並且恰好停在它實際停下的位置,那個年度百分比會是多少?它是一個被抹平的平均值,而不是對策略真正經歷過的任何某一年的描述。

為什麼重要

在你知道它花了多長時間之前,總報酬毫無意義,而回測幾乎從來長度都不一樣。CAGR 是讓兩個結果可比的那道換算,也正是這道換算,掩蓋了兩個端點之間的路徑有多麼顛簸。

  • 它把測試長度從比較中剔除。十年賺 100% 與三年賺 100% 是兩種不同的產品,只有年化數字才說得清哪個是哪個。
  • 它天然與最大回撤配成一對。每年的報酬除以最糟糕的下跌,是最粗糙的風險調整讀法,而且兩個數字必須來自同一個視窗。
  • 它能揭穿用短視窗做的行銷。引用一段九個月測試裡的百分比,等於引用一個年化之後通常會縮水的數字,因為那段行情好的日子被不到一年的時間除掉了。
  • 它假定有複利,而多數零售 EA 並不複利。固定手數的 EA 讓餘額沿直線成長,所以它的真實曲線和它的 CAGR 描述的是兩個不同的帳戶。

如何計算

CAGR = (期末餘額 ÷ 期初餘額)^(1 ÷ 年數) − 1
期初餘額
被測視窗第一根 K 線時的帳戶餘額——也就是測試器裡的初始入金,而不是第一筆獲利單之後的餘額。
期末餘額
同一視窗最後一筆平倉時的餘額。未平倉部位不計入;淨值與餘額是兩回事,而 CAGR 按慣例取餘額。
年數
該視窗經過的日曆時間,寫成小數。天數 ÷ 365.25 對任何實際用途都足夠接近。

指數是樣本真正涵蓋的年數,包含小數部分:一次從 2019-01-01 跑到 2026-04-01 的執行是 7.25 年,不是 7 年。用整年數去算會把數字吹大。兩個餘額必須是同一幣別,並且來自同一次執行;把回測接到前推紀錄上,得到的數字哪一邊都描述不了。

多少算高、多少算低

  • 低於 5% 低於無風險利率所能給的——這份風險什麼也沒買到
  • 5–15% 不高,但若搭配一個淺回撤仍然站得住腳
  • 15–35% 一個成本貼近現實、可信的零售 EA 在按成長來設定手數時會落到的區間
  • 35–80% 需要解釋——檢查手數、槓桿,以及這次測試是否複利
  • 高於 80% 幾乎總是複利、曲線擬合,或者兩者兼有。在前推測試重現之前,一律按未經證實處理

需要一起看的指標

單一數字無法描述一套策略。下列指標會改變這個數字的讀法。

範例

一個 EA 在 10,000 美元的入金上接受測試,跑完時停在 18,000 美元。視窗正好五年。CAGR 要回答的問題是:怎樣一個恆定的年度增速,會產生同樣的期末餘額。

期初餘額
10,000 美元
期末餘額
18,000 美元
總共 +80%——但在除以所花的時間之前,這個總數什麼也說明不了。
視窗長度
5.00 年
CAGR
12.5%

同樣這 8,000 美元的獲利若攤到十年,就是 6.1% 的 CAGR——利潤分毫不差,描述的卻是一個截然不同的策略。

計算 (18,000 ÷ 10,000)^(1 ÷ 5) − 1 = 1.8^0.2 − 1 = 0.125

結果 12.5% 的複合年增長率

怎麼讀這個數字

CAGR 是兩個端點加一段時長的摘要。中間發生的一切都得從別的數字裡讀出來,所以永遠不要單獨引用它。

區間 含義
視窗不足一年 把不完整的一年年化,會把樣本碰巧做到的任何事情放大。一段四個月的強勢會被外推成策略從未維持住過的數字。
一到三年 可讀,但很可能只涵蓋了單一的市場狀態。一旦另一種狀態進入樣本,就該預料到這個數字會移動。
五年以上,且已計入成本 值得引用的視窗。長到足以包含不止一種市場狀態,也讓成本誠實地累積起來。
引用時沒有附上同一次執行的回撤 從構造上就是殘缺的。30% 的 CAGR 配 15% 回撤,與 30% 的 CAGR 配 55% 回撤,不是可比的主張。
  • 在比較兩個 EA 之前,先用 CAGR 除以最大回撤。這個比值回答的是每一單位痛苦買到了多少報酬,而這是光看百分比做不到的。
  • 檢查這次測試是否複利,並且留意誤差偏向哪一邊。固定手數的帳戶沿直線成長,於是在跨越多年的視窗上,複利公式反而落在樸素的年均數字之下而不是之上——在本站公開的十四次執行裡,它十四次都更低。lattice-weave 在 7.16 年裡賺了 99.4%,相當於每年入金的 13.9%,但 CAGR 只有 10.12%。這兩個數字都不是帳戶真正經歷過的某一年:手數恆定時,同樣一筆以美元計的獲利,占小餘額的比例要大於占已經變大的餘額的比例。
  • 自己重算,而不是相信別人引用的數字。期初餘額、期末餘額和視窗長度只是三個數,算術只需要幾秒鐘,而且經常和標題對不上。
  • 負的 CAGR 在算術上完全成立,也值得一讀。它告訴你帳戶是以怎樣的複利速度被摧毀的,這比一句『回測虧錢了』有資訊量得多。

mt5depot 的 EA 頁面會寫明被測視窗及其起訖日期,並公開完整的成交明細,所以年化數字可以從源頭重新推導,而不必從標題裡拿。把十四個全部重算,得到的是 0.48% 到 32.08%,中位數 4.0%——有八個落在 5% 以下,恰好有一個夠到上面 15–35% 的區間。那一個是在與其他執行相同的 10,000 USD 入金上、以 0.1 手同時開著二十四條腿的組合。這就使這個區間成了一句關於手數設定的陳述,而不是對策略的判決:百分比追蹤的是同時開著多少部位,而不是優勢本身的品質。請把這個區間與該次執行所用的入金與手數之比放在一起讀,否則它衡量的是資金管理,而不是優勢本身。

常見誤解

把 CAGR 當成對明年的預測

它描述的是被抹平後的一條歷史路徑。一個由一個異常出色的年份加四個平淡年份堆出 20% CAGR 的策略,從來沒有哪一年真的做到過 20%,而這個數字裡也沒有任何東西暗示它將會做到。

把短回測年化

把三個月放大成一年,會把優勢和運氣一起乘以四。這是讓一個平庸結果搖身變成行銷數字最常見的路徑,而且只要視窗長度沒有寫在數字旁邊,它就是隱形的。

拿複利的 CAGR 去和固定手數的結果比較

複利與固定手數會從完全相同的成交序列中產生不同的曲線。把一方的年化數字擺到另一方面前,獎勵的是資金管理設定,而不是策略本身。

忽略這個數字是在多大的入金上算出來的

百分比只有相對於產生它的餘額才有意義。同一個 EA 用同樣的手數放在 1,000 美元的入金上,承擔的相對風險是十倍,它的百分比報酬也就不是同一個主張。

常見問題

MT5 的 EA 有多少 CAGR 算好?
在一個成本貼近現實的多年測試上,大致 15% 到 35% 對零售 EA 而言是可信的區間,前提是同一次執行的最大回撤要並列寫出。高於 80% 的數字幾乎總是來自複利、激進的手數設定或過度擬合的視窗,而不是來自可持續的優勢。
MetaTrader 5 會給出 CAGR 嗎?
不會。策略測試器會給出淨利潤總額、回撤和一組比率,但沒有年化成長率。你需要自己用初始入金、最終餘額和被測視窗的長度算出來。
為什麼我的 EA 實際年報酬低於回測的 CAGR?
通常是因為回測複利而實盤帳戶不複利,或者因為點差、佣金和滑點定得過於樂觀。這兩者都會壓低期末餘額,而公式裡的指數會讓哪怕很小的降幅也在年化數字上顯現出來。
CAGR 和平均年報酬率有什麼區別?
平均值是把每年的報酬相加再除以年數,因此忽略了結果出現的先後順序。CAGR 是幾何速率:它考慮到虧損 50% 需要獲利 100% 才能回本,所以當報酬波動時,它總是低於算術平均。

相關文章