把 CAGR 当成对明年的预测
它描述的是被抹平后的一条历史路径。一个由一个异常出色的年份加四个平淡年份堆出 20% CAGR 的策略,从来没有哪一年真的做到过 20%,而这个数字里也没有任何东西暗示它将会做到。
复合年增长率是把多年期收益按复利折算成年化后的数字,它把长短不一的回测结果拉到同一把尺子上,从而让两个在不同时间跨度上测试过的策略可以互相比较。
亦称:CAGR, 年化收益率, 年增长率
更新于
如果账户每年都按同一个百分比增长,并且恰好停在它实际停下的位置,那个年度百分比会是多少?它是一个被抹平的平均值,而不是对策略真正经历过的任何某一年的描述。
在你知道它花了多长时间之前,总收益毫无意义,而回测几乎从来长度都不一样。CAGR 是让两个结果可比的那道换算,也正是这道换算,掩盖了两个端点之间的路径有多么颠簸。
CAGR = (期末余额 ÷ 期初余额)^(1 ÷ 年数) − 1 指数是样本真正覆盖的年数,包含小数部分:一次从 2019-01-01 跑到 2026-04-01 的运行是 7.25 年,不是 7 年。用整年数去算会把数字吹大。两个余额必须是同一币种,并且来自同一次运行;把回测接到前推记录上,得到的数字哪一边都描述不了。
单一数字无法描述一套策略。下列指标会改变这个数字的读法。
一个 EA 在 10,000 美元的入金上接受测试,跑完时停在 18,000 美元。窗口正好五年。CAGR 要回答的问题是:怎样一个恒定的年度增速,会产生同样的期末余额。
同样这 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% 回撤,不是可比的主张。 |
mt5depot 的 EA 页面会写明被测窗口及其起止日期,并公开完整的成交流水,所以年化数字可以从源头重新推导,而不必从标题里拿。把十四个全部重算,得到的是 0.48% 到 32.08%,中位数 4.0%——有八个落在 5% 以下,恰好有一个够到上面 15–35% 的区间。那一个是在与其他运行相同的 10,000 USD 入金上、以 0.1 手同时开着二十四条腿的组合。这就使这个区间成了一句关于手数设定的陈述,而不是对策略的判决:百分比追踪的是同时开着多少仓,而不是优势本身的质量。请把这个区间与该次运行所用的入金与手数之比放在一起读,否则它衡量的是资金管理,而不是优势本身。
它描述的是被抹平后的一条历史路径。一个由一个异常出色的年份加四个平淡年份堆出 20% CAGR 的策略,从来没有哪一年真的做到过 20%,而这个数字里也没有任何东西暗示它将会做到。
把三个月放大成一年,会把优势和运气一起乘以四。这是让一个平庸结果摇身变成营销数字最常见的路径,而且只要窗口长度没有写在数字旁边,它就是隐形的。
复利与固定手数会从完全相同的成交序列中产生不同的曲线。把一方的年化数字摆到另一方面前,奖励的是资金管理设置,而不是策略本身。
百分比只有相对于产生它的余额才有意义。同一个 EA 用同样的手数放在 1,000 美元的入金上,承担的相对风险是十倍,它的百分比收益也就不是同一个主张。