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,从上市到现在全周期

image

分析结果: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 个完整年度中,苹果的年份差异极度悬殊:

年份SPYAAPL
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%。这两个标的的风险收益特征完全不在一个量级上。

image

image

image

 

生成的 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,看看策略是否真的改善了风险收益比

资源链接:

你知道自己持仓股票的最大历史回撤吗?如果是 -80%,你会选择减仓还是加仓?欢迎聊聊你的风控思路。

posted @ 2026-07-27 15:37  PC修复电脑医生  阅读(13)  评论(0)    收藏  举报