4. 收益率计算:简单收益率、对数收益率、超额收益率、日频与月频收益率转换
收益率是量化风险归因与绩效评估的基础输入。不同的收益率定义对应不同的统计假设与计算场景,错误的选择会导致风险分解失真。本节系统梳理四种核心收益率形态及其转换方法。
4.1 简单收益率(Simple Return)
简单收益率又称百分比收益率,是最直观的收益度量方式,适用于单期、无复利假设的场景。
| 属性 | 说明 |
|---|---|
| 公式 | R_t = (P_t - P_{t-1}) / P_{t-1} |
| 取值范围 | [-1, +∞),亏损下限为 -100% |
| 对称性 | 不对称:先涨 50% 再跌 50% 不等于零 |
| 适用场景 | 单期绩效报告、基准对比、资金加权收益 |
⚠ 常见陷阱: 多期简单收益率不能直接相加求平均,必须使用几何连乘:
R_cum = (1+R₁)(1+R₂)...(1+Rₙ) - 1。
4.2 对数收益率(Log Return)
对数收益率是连续复利假设下的标准形式,在时间序列建模与风险归因中占据核心地位。
| 属性 | 说明 |
|---|---|
| 公式 | r_t = ln(P_t / P_{t-1}) |
| 取值范围 | (-∞, +∞),无下限约束 |
| 对称性 | 时间可加:多期对数收益率可直接求和 |
| 适用场景 | VaR 建模、因子回归、波动率估计、正态性假设 |
转换关系: 当收益率较小时(|R| < 5%),
r ≈ R;精确转换:r = ln(1+R),R = e^r - 1。
4.3 超额收益率(Excess Return)
超额收益率是资产收益减去无风险收益后的净收益,用于衡量主动管理能力与风险调整后表现。
| 类型 | 公式 | 说明 |
|---|---|---|
| 简单超额 | ER_t = R_t - R_f,t | 直接相减,适用于单期对比 |
| 对数超额 | er_t = r_t - r_f,t | 连续复利形式,用于因子模型 |
| 累计超额 | CAR = Σ ER_t | 事件研究中的标准度量 |
⚠ 无风险利率对齐: 必须保证无风险利率与资产收益率的频率一致。日频超额收益使用日化无风险利率(年化/252),月频使用月化无风险利率(年化/12)。
4.4 日频与月频收益率转换
不同分析场景需要不同频率的收益率数据。转换时需区分简单收益率与对数收益率,采用不同的聚合方式。
4.4.1 简单收益率的频率转换
简单收益率不具备时间可加性,必须使用几何连乘进行转换。
# 日频简单收益率 → 月频简单收益率(几何连乘)
import numpy as np
daily_simple_returns = np.array([0.001, -0.002, 0.003, ...]) # 假设一个月有21个交易日
monthly_simple_return = np.prod(1 + daily_simple_returns) - 1
# 月频简单收益率 → 年化简单收益率
annual_simple_return = np.prod(1 + monthly_returns) - 1
4.4.2 对数收益率的频率转换
对数收益率具有时间可加性,可直接求和完成频率转换。
# 日频对数收益率 → 月频对数收益率(直接求和)
daily_log_returns = np.array([0.001, -0.002, 0.003, ...])
monthly_log_return = np.sum(daily_log_returns)
# 月频对数收益率 → 年化对数收益率
annual_log_return = np.sum(monthly_log_returns)
# 年化对数收益率 → 年化简单收益率(如需报告)
annual_simple_return = np.exp(annual_log_return) - 1
4.4.3 转换对照表
| 转换方向 | 简单收益率 | 对数收益率 |
|---|---|---|
| 日 → 月 | ∏(1+Rᵢ) − 1 | Σ rᵢ |
| 月 → 年 | ∏(1+Rₘ) − 1 | Σ rₘ |
| 日 → 年 | ∏(1+R_d) − 1 | Σ r_d |
| 年化(假设平稳) | (1+R_d)^252 − 1 | r_d × 252 |
4.5 实践建议:组合风险归集中的收益率选择
- 风险建模(VaR、波动率聚类): 强制使用对数收益率,保证时间可加性与分布对称性。
- 绩效归因与基准对比: 使用简单超额收益率,便于投资者理解百分比含义。
- 因子回归(CAPM、Fama-French): 使用对数超额收益率,满足线性回归的同方差假设。
- 频率转换: 统一使用对数收益率进行日→月→年聚合,最后在报告层转换为简单收益率。
✅ 推荐工作流: 原始价格 → 日频对数收益率 → 日频超额收益率(减日化无风险利率) → 月频对数超额收益率(求和) → 因子模型回归 → 结果转换为简单收益率用于报告。