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% 的策略「更好」。前者大多数真实用户会在最低点附近恐慌出场。