QuantStats实战:33年数据揭示苹果749倍回报背后是五次腰斩以上回撤
一个能生成专业级 Tearsheet 的组合分析库
QuantStats 是一个专门做投资组合分析和报告生成的 Python 库。和那些专注于"回测"的框架不同,QuantStats 的强项是把回测结果变成一份专业的、可直接用于报告演示的 Tearsheet——里面嵌入了 10 多张 SVG 图表,覆盖了从累计收益到月度热力图到滚动夏普的全部分析维度。
我拿它对苹果和标普 500 做了 33 年的对比分析。苹果年化 19.42%,同期标普年化仅 0.11%——累计回报差了 25 倍(749 倍 vs 30 倍)。但代价是苹果的最大回撤达到了 -81.80%,有三次回撤持续超过 1,000 天。这篇用自然语言驱动的方式把 QuantStats 变成了一个可以直接对话的分析 Skill,不需要写 Python 代码、不需要手动调图表参数。
起步
从 EasyClaw 官网下载安装。不需要手动装 QuantStats、不需要配数据源。
打开后左侧找「Skill」→「Skill Creator」。灰显的话去「设置 → 通用」打开「开发者模式」重启。
创建 Skill
在 Skill Creator 里告诉 EasyClaw:
帮我把 GitHub 上的 QuantStats(https://github.com/ranaroussi/quantstats)做成一个组合分析 Skill。我希望输入股票代码和基准代码,自动拉取历史数据,生成一份包含 70+ 指标的完整 Tearsheet——含累计收益曲线、回撤曲线、逐年收益对比、月度热力图、滚动夏普等全部图表,输出一个可以直接在浏览器打开的 HTML 文件。
EasyClaw 会自动拉代码、理解 QuantStats 的 report 模块、封装成 Skill。不需要手动下载数据、不需要写分析脚本、不需要调 matplotlib 参数。
Skill 创建好后:
用 QuantStats 对 AAPL 做组合分析,基准用 SPY,从上市到现在全周期

分析结果:33 年 749 倍回报的背后,是四次腰斩以上的回撤
核心指标——双列对比
QuantStats 的 Tearsheet 把所有指标按"基准(SPY)"和"策略(AAPL)"双列并排展示。摘几个最重要的:
| 指标 | SPY(基准) | AAPL(策略) | 差距 |
|---|---|---|---|
| 累计收益(倍) | 29.61 | 749.03 | 25 倍 |
| CAGR | 0.11% | 19.42% | 176 倍 |
| 夏普比率 | 0.64 | 0.69 | 接近 |
| 索提诺比率 | 0.92 | 1.01 | 接近 |
| 最大回撤 | -55% | -81.80% | 多亏了 27% |
| 年化波动率 | 19% | 43.71% | 2.3 倍 |
| 最佳单日 | +15% | +33.23% | |
| 最差单日 | -11% | -51.87% | |
| 胜率(日) | 54% | 51.67% | 几乎一样 |
一个很有意思的发现:苹果的夏普比率(0.69)和标普(0.64)差别不大——更高的收益几乎完全被更高的波动所抵消。但索提诺比率(只考虑下行波动)苹果是 1.01 vs 标普 0.92——说明苹果的波动更多来自上行。
历史上五次最大回撤
33 年里苹果经历了五次腰斩以上的回撤,最深的两次都超过了 -80%:
| 时间段 | 持续天数 | 回撤幅度 | 相当于 |
|---|---|---|---|
| 2000-03 → 2005-01 | 1,770 天 | -81.80% | 近五年在水下 |
| 1991-04 → 1999-09 | 3,074 天 | -81.24% | 八年半在水下 |
| 1983-06 → 1987-02 | 1,348 天 | -76.89% | 三年半 |
| 1980-12 → 1983-01 | 751 天 | -69.44% | 两年 |
| 2007-12 → 2009-10 | 660 天 | -60.87% | 近两年 |
最极端的一次是 1991 年到 1999 年——八年半,账户一直在水下。假设你在 1991 年买入苹果,要到 1999 年才能回本。这就是高收益的代价:你不仅需要选对标的,还需要能扛得住以年为单位计的亏损期。
逐年回报——苹果的"超级年"和"灾难年"
47 个完整年度中,苹果的年份差异极度悬殊:
| 年份 | SPY | AAPL |
|---|---|---|
| 1998 | +28.69% | +211.90% |
| 2004 | +10.70% | +201.36% |
| 2007 | +5.15% | +133.47% |
| 2009 | +26.35% | +146.90% |
| 1993 | +8.71% | -50.44% |
苹果在"超级年"可以一年涨 200%+,在"灾难年"可以腰斩。标普的波动相比之下温和得多——最好的年份 +38%,最差的 -37%。这两个标的的风险收益特征完全不在一个量级上。



生成的 HTML 文件约 2.9MB,内含 10 多张 SVG 格式嵌入的图表。因为图表是矢量的,放大不会模糊,可以直接截图放到投资报告或 PPT 里。
QuantStats 和之前那些回测框架的区别
之前写过的回测框架(Backtrader、VNPY、LEAN 等)是做"策略评估"的——你写一个策略逻辑,它跑回测告诉你赚了多少。QuantStats 是做"标的分析"的——你给它一个股票的收益率序列,它告诉你这个标的的风险收益特征:波动多大、回撤多深、肥尾多严重、和基准的相关性多高。
两者的关系可以这样理解:回测框架回答"这个策略好不好",QuantStats 回答"这个标的好不好"。通常是先用 QuantStats 分析标的是否值得交易,再用回测框架验证策略在这个标的上的效果。
常见报错
| 错误 | 原因 | 解决方法 |
|---|---|---|
| HTML 生成后图表区域空白 | 浏览器拦截了本地 SVG 加载 | 用 Chrome 打开,或检查浏览器安全设置 |
| 逐年收益表年份缺失 | 该股票上市时间短于回测区间 | 调整起止日期到股票实际上市后 |
| 基准数据拉取失败 | SPY 等美股基准在特定网络环境下超时 | 检查网络,重试 |
这个工具适合什么场景
最适合的场景:你想快速了解一只股票的"性格"——它是波动温和型还是大起大落型?它和标普的相关性多高?历史上最大回撤是多少、持续了多久?这些信息对仓位大小和止损策略的设定有直接影响。比如你知道苹果历史上最大回撤是 -82%,那你建仓的时候就会想:如果我也遇到 -80% 的回撤,我的资金和心理能不能扛住。
不太适合的场景:你需要评估一个复杂交易策略的表现。QuantStats 分析的是买入持有策略的收益特征,而不是你的择时策略。如果你跑了均线策略回测想分析效果,应该把回测结果(收益率序列)喂给 QuantStats,而不是直接给它原始股价。
下一步
- 把 MAG7 七只股票各跑一份 QuantStats Tearsheet,横向对比谁的风险调整后收益最优
- 把自己回测策略的收益率序列喂给 QuantStats,看看策略是否真的改善了风险收益比
资源链接:
- EasyClaw 下载:https://easyclaw.cn/?f=729
- QuantStats GitHub:https://github.com/ranaroussi/quantstats
你知道自己持仓股票的最大历史回撤吗?如果是 -80%,你会选择减仓还是加仓?欢迎聊聊你的风控思路。

浙公网安备 33010602011771号