因子投资-05-投资组合基准与绩效指标

QUANT RESEARCH NOTE LESSON 05

“策略年化 20%”几乎不能单独说明好坏:它可能承受巨大波动,长期跑输可比指数,依赖一次幸运交易,或在扣除成本后消失。绩效评价必须同时回答赚了多少、承担了什么风险、相对谁、经历了怎样的路径,以及收益是否可实现。

类型核心课程
模块基础语言
阅读约 7 分钟
材料10 节 · 1 段代码

本节解决什么问题

“策略年化 20%”几乎不能单独说明好坏:它可能承受巨大波动,长期跑输可比指数,依赖一次幸运交易,或在扣除成本后消失。绩效评价必须同时回答赚了多少、承担了什么风险、相对谁、经历了怎样的路径,以及收益是否可实现。

前置知识与学习目标

前置知识是第 01 讲的复利、第 02 讲的协方差和第 03 讲的抽样不确定性。学完后你应该能:

  • 用权重计算组合收益和风险;
  • 区分绝对收益、无风险超额收益和主动收益;
  • 计算并解释 Sharpe、Sortino、信息比率、跟踪误差、最大回撤和 Calmar;
  • 为 A 股策略选择可比且可投资的基准;
  • 说明为什么绩效数字不能脱离样本、成本和约束。

直觉与手算

组合在资产 A 投 60%,在资产 B 投 40%。某期 A 涨 10%,B 跌 5%,期初权重下组合收益为:

若 A 年化波动 20%,B 为 10%,相关系数 0.25,则组合方差为:

组合波动约 13.56%,不是 0.6×20%+0.4×10%=16%。少掉的部分来自不完全相关。

现在假设策略年收益 12%、无风险收益 2%、年化波动 10%,Sharpe 为 1。若同期可比基准收益 10%,策略主动收益只有 2%。这两个比较没有冲突:Sharpe 问相对无风险资产的风险效率,主动收益问相对基准是否增加价值。

定义与公式

组合权重、收益与风险

N 个资产的期初权重 w 和同一期简单收益 R 都是 N×1:

多头完全投资组合通常满足权重和为 1 且每个权重非负;多空、杠杆和持有现金时必须另外报告总敞口、净敞口和融资方式。

基准与主动收益

基准是与策略投资范围和风险来源可比的参照。主动收益:

一个合格基准至少应当明确、可衡量、事前指定、与投资范围一致,并尽可能可投资。用沪深 300 评价全市场微盘策略,会把规模暴露误当作选股能力。

Sharpe 比率

R(e)=R(p)-R(f)。月频年化常乘根号 12,日频常乘根号 252,但只在收益频率一致、序列相关较弱时成立。Sharpe 无量纲;它把所有波动都视为风险,对非正态、卖期权和流动性策略可能过于乐观。

Sortino 比率

MAR 是最低可接受收益。Sortino 只惩罚低于目标的波动,但对目标和样本内少数亏损十分敏感。

跟踪误差与信息比率

TE 与收益使用相同频率单位,IR 无量纲。信息比率适合主动管理评价:它衡量每单位相对基准波动获得多少平均主动收益。

最大回撤与 Calmar

净值 W(t) 的回撤:

最大回撤 MDD 是样本中最负的 DD。若用正数绝对回撤报告:

回撤保留路径信息,能表达投资者经历;但只观察到一次最坏路径,估计非常不稳定。Calmar 也同时依赖年化收益和单次极端回撤,不能作为唯一排序指标。

Python 最小实验

PYTHON 可复现实验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import numpy as np

monthly = np.array([
0.02, -0.01, 0.03, 0.01, -0.04, 0.02,
0.01, 0.00, 0.03, -0.02, 0.02, 0.01
])
benchmark = np.array([
0.01, 0.00, 0.02, 0.01, -0.03, 0.01,
0.01, 0.00, 0.02, -0.01, 0.01, 0.01
])
rf_monthly = 0.001

wealth = np.cumprod(1 + monthly)
drawdown = wealth / np.maximum.accumulate(wealth) - 1
excess = monthly - rf_monthly
active = monthly - benchmark

sharpe = np.sqrt(12) * excess.mean() / excess.std(ddof=1)
tracking_error = np.sqrt(12) * active.std(ddof=1)
information_ratio = np.sqrt(12) * active.mean() / active.std(ddof=1)
maximum_drawdown = drawdown.min()

assert maximum_drawdown <= 0
print(sharpe, tracking_error, information_ratio, maximum_drawdown)

这个例子没有扣交易成本,也没有给指标置信区间,所以只能用来学习计算,不能据此评价真实策略。

A 股实现注意事项

  1. 基准口径。 价格指数与全收益指数的分红处理不同。长期股票策略应优先比较含分红再投资的可比基准,或明确解释差异。
  2. 投资范围。 沪深 300、中证 500、中证 1000、国证 2000 与全市场的市值、行业和流动性结构不同。基准应在研究前固定。
  3. 费用与税。 佣金、过户费、卖出印花税、冲击成本、基金管理费和融资融券成本应按策略实际结构进入净收益。
  4. 不可成交。 涨停买入失败、跌停卖出失败和停牌会让实际持仓偏离目标权重,不能只用理论组合收益。
  5. 现金收益。 未投资现金和保证金有收益或资金成本;默认现金收益为零会在不同利率时期扭曲绩效。
  6. 净值时间。 信号在收盘后生成却用同一收盘价建仓,会同时夸大收益并低估跟踪误差和回撤。
  7. 指数成分历史。 用今天的指数成分回测过去,会产生幸存者和前视偏差;基准和策略股票池都要使用历史成分。

常见错误与边界

  • 只报年化收益,不报区间长度、最大回撤和波动。
  • 用算术日均收益乘 252 作为复合年收益,却用复合净值解释。
  • 策略换了股票池或风格后仍沿用一个方便跑赢的基准。
  • 分子用净收益、分母用毛收益波动,或无风险利率频率不一致。
  • 忽略自相关,机械根号年化 Sharpe;平滑估值会让波动看起来过低。
  • 最大回撤取绝对值后又保留负号,导致 Calmar 符号混乱。
  • 同时比较几十个策略后只展示 Sharpe 最高者,不做选择偏差修正。

绩效指标有根本边界:它们是历史路径的压缩摘要。同一个 Sharpe 可以来自稳定小收益或少量大赢大亏;同一个最大回撤也可能对应完全不同的恢复时间。至少同时展示净值、月度收益分布、回撤、换手和暴露。

原书与论文

原书第 1 章(PDF 文件页 7–26)建立因子投资框架,第 4、5 章(158–223)进一步涉及组合管理与实践问题。绩效评价应贯穿研究,而不是只在最后添加一张表。

Sharpe(1964)给出市场均衡中风险与预期收益的基准关系:DOI 10.1111/j.1540-6261.1964.tb02865.x。Gibbons、Ross 与 Shanken(1989)进一步提醒我们,多资产模型评价需要联合检验而非逐个挑 Alpha:DOI 10.2307/1913625。

练习

  1. A、B 权重各 50%,收益分别为 8%、-2%,计算组合收益。若期末不再平衡,下一期期初两者权重是否仍各半?
  2. 某策略月均无风险超额收益 0.6%,月波动 2%,在独立近似下计算年化 Sharpe。
  3. 策略年收益 15%,基准 12%,主动收益年化标准差 6%,计算信息比率。
  4. 净值序列为 1、1.10、1.05、0.88、0.95、1.12,逐期计算回撤和最大回撤。
  5. 给一个全市场小盘选股策略选择基准,并写出你拒绝使用沪深 300 的理由。

校验:第 1 题组合收益 3%,上涨资产的期末权重会提高;第 2 题 Sharpe 约 1.04;第 3 题信息比率 0.5;第 4 题最大回撤为 0.88/1.10-1=-20%。

小结与下一步

组合收益是权重与简单收益的内积,组合风险还取决于完整协方差结构。Sharpe 和 Sortino评价绝对风险效率,信息比率和跟踪误差评价相对基准表现,最大回撤与 Calmar保留部分路径信息。所有指标都必须与样本、基准、成本、约束和置信度一起解释。

下一阶段将用这些基础进入 CAPM:Beta 表示什么,Alpha 又为什么不能简单等同于“真本事”。


因子投资-05-投资组合基准与绩效指标
https://www.polarishaw.top/2026/07/17/因子投资-05-投资组合基准与绩效指标/
作者
Polaris
发布于
2026年7月17日
许可协议