| 收益率类型 | 公式 | 核心特点 | 适用场景 |
|---|---|---|---|
| 简单收益率 Rsimple |
R = (Pt - Pt-1) / Pt-1 |
直观、对称性差,多期累加有偏 | 单期绩效、日报、快照对比 |
| 对数收益率 rlog |
r = ln(Pt / Pt-1) |
时间可加性、正态性假设、适合统计 | 高频分析、风险模型、回归归因 |
| 累计收益率 Rcum |
Rcum = (1+R1)…(1+Rn) - 1 |
反映真实财富变化,路径依赖 | 策略净值曲线、业绩展示 |
| 年化收益率 Rann |
Rann = (1+Rcum)1/T - 1 |
标准化至年度,可比性强 | 跨策略比较、基金评级 |
公式: \( R = \frac{P_t - P_{t-1}}{P_{t-1}} \)
优点:计算直接,适合单期快照。缺点:多期累加产生复利偏差。
# 简单收益率 (Python)
prices = [100, 102, 99, 105]
simple_returns = [(prices[i]-prices[i-1])/prices[i-1]
for i in range(1, len(prices))]
print(simple_returns)
# [0.02, -0.02941, 0.06061]
公式: \( r = \ln(P_t / P_{t-1}) \)
时间可加性:多期对数收益率可直接相加。近似等于简单收益率(小波动时)。
import numpy as np prices = [100, 102, 99, 105] log_returns = np.diff(np.log(prices)) print(log_returns) # [ 0.01980, -0.02985, 0.05884]
公式: \( R_{cum} = \prod_{i=1}^{n}(1+R_i) - 1 \)
体现真实资产增长,常用于净值曲线。若用对数收益率,则 \( R_{cum} = e^{\sum r_i} - 1 \)
# 累计收益率 (基于简单收益)
R_simple = [0.02, -0.02941, 0.06061]
cum = 1
for r in R_simple:
cum *= (1 + r)
cum_ret = cum - 1
print(f"{cum_ret:.4f}") # 0.0499
公式: \( R_{ann} = (1+R_{cum})^{1/T} - 1 \) (T为年数)
将不同时间跨度的回报统一为年度标准,便于横向比较。
# 年化收益率 (252交易日/年)
days = 252
total_return = 0.05 # 假设累计5%
annual_return = (1 + total_return) ** (1/(days/252)) - 1
print(f"{annual_return:.4f}") # 0.0500
🔁 转换关系:若已知对数收益率序列,累计收益率 = exp(Σr) - 1;年化收益率 = (1+累计)^(1/T) - 1。
💡 小贴士:回测中常用对数收益率进行统计推断,展示时多转换为累计/年化收益率。