QuantStats · Benchmark

QuantStats基准对比:与 SPY 等基准对比相对绩效

QuantStats 的 benchmark 参数贯穿报告与绘图:qs.reports.html(stock, 'SPY') 或 qs.plots.rolling_beta(stock, benchmark),可对比净值、回撤、相对收益,并输出信息比率、滚动 beta 等相对绩效指标。

策略收益
基准 SPY
相对绩效

QuantStats 基准对比示意;基于官方 README,非实测对比。

Relative metrics

相对绩效指标对照表

衡量「相对基准」的绩效,而非只看绝对收益。

指标方法含义适用场景注意点
信息比率qs.stats.information_ratio(returns, benchmark)单位跟踪误差的超额收益判断主动管理是否持续跑赢基准基准不匹配时结果失真
qs.stats.r_squared(returns, benchmark)与基准的相关程度(0-1)看策略是否只是「复制」基准高 R² 说明超额主要来自 beta
滚动 betaqs.plots.rolling_beta(returns, benchmark)相对基准的滚动敏感度看风格暴露随时间变化需足够长的收益序列
对比qs.stats.compare(returns, benchmark)策略与基准并列对比快速并排查看两者指标需传基准收益序列
累计收益对比qs.stats.compsum(returns)收益序列转为累计净值画策略与基准净值叠加曲线compsum 本身不含基准,需分别对两者调用后叠加
回撤序列qs.stats.to_drawdown_series(returns)收益序列转为回撤序列对比策略与基准的回撤深度/时长可与 plots.drawdowns_periods 配合看回撤区间
口径提示:相对指标都需要一个「基准收益序列」。benchmark 参数可传 ticker(如 'SPY')或 pandas Series,两者收益口径需一致(同为日/周/月收益),否则相对指标无意义;具体以官方实现为准。
Steps

基准对比分步用法

1. 导入并取策略收益:import quantstats as qs; stock = qs.utils.download_returns('META') —— 得到策略的日收益序列。

2. 取基准收益:benchmark = qs.utils.download_returns('SPY') —— 得到基准日收益序列,与策略同频。

3. 生成带基准的 HTML 报告:qs.reports.html(stock, benchmark) —— 报告内并排展示策略与基准的净值、回撤、指标。

4. 单独算相对指标:qs.stats.information_ratio(stock, benchmark) —— 返回信息比率数值。

5. 看滚动暴露:qs.plots.rolling_beta(stock, benchmark) —— 画出滚动 beta 曲线,观察风格暴露变化。

Benchmark choice

怎么选基准

基准要与策略的市场、风格匹配,否则相对指标失真。

策略类型建议基准为什么这么选
美股多空/选股SPY(标普500)代表大盘 beta,衡量选股带来的超额
美股成长/科技QQQ(纳斯达克100)与科技成长风格更匹配,避免把风格误判为 alpha
A股组合沪深300 等宽基指数收益序列覆盖大盘蓝筹,衡量相对 A股市场整体
加密货币BTC 或主流指数收益序列BTC 是加密市场主导资产,衡量相对加密大盘
绝对收益/CTA可无基准,或选同类策略指数目标是绝对收益,不追求跑赢单一指数
注意:基准选择影响信息比率、滚动 beta 等相对指标的口径,应选与策略市场/风格匹配的基准;多资产组合可自建加权基准,具体以官方文档为准。
Relative vs absolute

相对绩效 vs 绝对绩效

先分清要看「跑赢多少」还是「赚了多少」。

维度绝对绩效相对绩效
关注点赚了/亏了多少跑赢/跑输基准多少
核心指标夏普比率、最大回撤、CAGR信息比率、滚动 beta、超额收益
适用绝对收益目标(如 CTA)相对收益目标(如指数增强、选股)
例子策略年化 15%,最大回撤 10%策略年化 15%,跑赢 SPY 5 个百分点
信息比率 vs 夏普:夏普衡量单位总波动的超额收益(对无风险利率),信息比率衡量单位跟踪误差的超额收益(对基准)。主动管理型策略更应看信息比率,因为它剔除了「跟着基准涨」的部分;具体口径以官方实现为准。
Scenarios

适用场景

验证超额收益

用信息比率看策略是否持续跑赢基准、跑赢多少,而不是只看绝对涨幅。信息比率越高,说明单位跟踪风险换来的超额越稳定,越能证明主动管理能力。

衡量风格暴露

用滚动 beta 看策略相对基准的敏感度随时间怎么变,识别策略是否在某段行情悄悄加杠杆或转向,避免把市场 beta 当成自身 alpha 来汇报。

汇报相对表现

报告里同时展示策略与基准的净值、回撤、相对收益,让读者一眼看清「跑赢还是跑输」,比只报绝对收益更有说服力,也更能对齐投资者预期。

FAQ

常见问题

benchmark 参数能传什么?

可传基准 ticker(如 'SPY')或 pandas Series,官方 README 示例用 'SPY';传 Series 时需与策略收益同频同口径。具体以官方 README/实现为准。

信息比率怎么算?

qs.stats.information_ratio(returns, benchmark) 返回单位跟踪误差的超额收益,衡量主动管理的质量,口径以官方实现为准。

一定要有基准吗?

不必。绝对收益类策略(如 CTA)可不设基准;但若要衡量相对绩效、算信息比率/滚动 beta,则必须传基准收益序列。

和 EasyClaw 的量化分析技能比有什么不同?

EasyClaw 的 quant-analyst 技能也能做回测并输出 Sharpe/最大回撤等指标,但 QuantStats 是独立的 Python 库,两者无已证实集成;QuantStats 的 benchmark 参数可精细对比基准相对绩效,EasyClaw 技能输出形式不同,选择前以各自能力为准。

结果能用于实盘吗?

不能。相对绩效仅代表历史表现,信息比率/滚动 beta 都基于历史收益序列,不构成收益保证或投资建议。

看完基准对比,看蒙特卡洛风险

用蒙特卡洛模拟估算破产/目标概率,补充风险视角。