2. 收益率指标:总收益率、年化收益率、累计收益率曲线的绘制与解读

收益率这东西,说白了就是看你赚了多少钱。但光看一个数字远远不够。我见过太多人,一看总收益率翻倍了,兴奋得不行,结果一算年化收益率,也就那么回事。嗯,这里面的门道,咱们得掰扯清楚。

2.1 总收益率:最直观的赚钱指标

总收益率是最简单的指标。公式就是:(期末净值 - 期初净值) / 期初净值。比如你投了100万,最后变成150万,总收益率就是50%。

但这里有个坑。我遇到过一位朋友,他的策略总收益率高达200%,看起来特别漂亮。可仔细一问,他跑了整整8年。8年才翻两倍?这效率其实很低。所以总收益率只能告诉你「赚没赚钱」,不能告诉你「赚得快不快」。

核心要点:总收益率适合做横向对比,比如两个策略在同一时间段的表现。但千万别拿不同时间段的策略去比总收益率,那没有意义。

2.2 年化收益率:真正衡量赚钱效率

年化收益率才是硬指标。它把不同时间长度的收益,统一换算成「每年赚多少」。公式是:

年化收益率 = (1 + 总收益率) ^ (1 / 年数) - 1

举个例子:策略A,3年总收益100%,年化就是 (1+1)^(1/3)-1 ≈ 26%。策略B,1年总收益30%,年化就是30%。你看,虽然策略A总收益高,但年化下来还不如策略B。

我个人习惯,看策略好坏第一眼先看年化收益率。低于15%的,我基本不会考虑实盘。当然,这跟你的资金体量和风险偏好有关,但年化低于10%的策略,说实话不如去买指数基金省心。

避坑指南:我曾经犯过一个错误——用算术平均去算年化收益率。比如三年收益分别是10%、20%、30%,我直接加起来除以3,得出年化20%。这是错的!正确的做法是用几何平均,也就是连乘后再开方。算术平均会高估收益,尤其在波动大的时候。

2.3 累计收益率曲线:策略的「心电图」

累计收益率曲线,就是把每天的收益率累加起来,画成一条线。它能直观展示策略的整个生命周期表现。

我一般会关注曲线的三个特征:

  • 斜率:斜率越陡,赚钱越快。但斜率突然变陡要警惕,可能是过拟合了。
  • 回撤:曲线从高点往下掉的部分。回撤越大,风险越高。
  • 平稳性:曲线是否平滑。锯齿状的曲线说明策略不稳定,容易让人拿不住。

你想想看,一条漂亮的累计收益率曲线,应该是「45度角稳步向上,偶尔有小回调但很快修复」。如果曲线像过山车一样上蹿下跳,那就算最终收益不错,实盘时你也很难坚持执行。

2.4 用Python绘制累计收益率曲线

下面是我常用的绘图代码。很简单,但很实用。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 模拟每日收益率数据
np.random.seed(42)
daily_returns = np.random.normal(0.001, 0.02, 252)  # 252个交易日

# 计算累计收益率
cumulative_returns = (1 + daily_returns).cumprod()

# 绘制曲线
plt.figure(figsize=(12, 6))
plt.plot(cumulative_returns, color='#2E86AB', linewidth=2)
plt.title('策略累计收益率曲线', fontsize=16)
plt.xlabel('交易日', fontsize=12)
plt.ylabel('累计收益率', fontsize=12)
plt.grid(True, alpha=0.3)
plt.axhline(y=1, color='gray', linestyle='--', alpha=0.5)

# 标注最大回撤
peak = np.maximum.accumulate(cumulative_returns)
drawdown = (cumulative_returns - peak) / peak
max_drawdown_idx = np.argmin(drawdown)
plt.scatter(max_drawdown_idx, cumulative_returns[max_drawdown_idx], 
            color='red', s=100, zorder=5)
plt.annotate(f'最大回撤点\n{drawdown[min_idx]:.2%}', 
             xy=(max_drawdown_idx, cumulative_returns[max_drawdown_idx]),
             xytext=(max_drawdown_idx+20, cumulative_returns[max_drawdown_idx]*0.9),
             arrowprops=dict(arrowstyle='->', color='red'))

plt.show()
注意:实际绘制时,记得把交易成本、滑点都算进去。我见过太多策略,回测时曲线漂亮得不行,加上手续费和滑点后直接变成亏损。别问我怎么知道的,都是泪。

2.5 知识体系结构图

下面这张图,把收益率指标的核心逻辑串起来了。你看一眼就能明白它们之间的关系。

收益率指标 总收益率 年化收益率 累计收益率曲线 公式:(期末-期初)/期初 局限:无法衡量赚钱效率 公式:(1+总收益)^(1/年)-1 核心:统一时间维度对比 斜率:赚钱速度 回撤:风险暴露 平稳性:策略稳定性 三者结合,才能全面评估策略表现

2.6 解读曲线的实战技巧

拿到一条累计收益率曲线,我一般会按下面几步来解读:

  1. 看整体趋势:是向上还是向下?向上的话,斜率是否稳定?
  2. 找最大回撤:曲线从最高点跌了多少?发生在什么时候?
  3. 看修复时间:回撤之后,用了多久才回到前高?修复时间越短越好。
  4. 看尾部表现:曲线最后一段是向上翘还是向下弯?尾部表现往往代表策略近期的有效性。
一个小技巧:我习惯把累计收益率曲线和基准(比如沪深300)画在同一张图上。如果策略曲线大部分时间都在基准之上,说明策略有超额收益。如果经常在基准之下,那还不如直接买指数。

说白了,收益率指标就是策略的「成绩单」。总收益率看结果,年化收益率看效率,累计收益率曲线看过程。三者缺一不可。下次你拿到一个策略回测报告,别只看总收益率,把年化和曲线都拉出来看看,你会发现很多隐藏的问题。


专注资料整理