PyFolio实战:Quantopian遗留下的分析引擎,揭示苹果11.5年收益分布的肥尾真相

Quantopian 遗留下来的组合分析引擎

PyFolio 是 Quantopian 开源的投资组合分析库。Quantopian 这个名字对于做量化的老手来说应该不陌生——它曾经是全球最大的众包量化对冲基金平台,2016 年管理规模超过 2.5 亿美元,2020 年关停后将其核心分析工具开源。PyFolio 就是其中最实用的一部分:它专门做一件事——把一串收益率数字变成一份完整的风险收益分析报告

和 QuantStats 不同,PyFolio 更精简、更聚焦——13 个核心指标加上一张九面板 Tearsheet,不追求全面覆盖,但每个数字都直击量化研究的核心问题:收益够不够、风险值不值、分布正不正常。我拿它对苹果过去 11.5 年的日收益率做了完整分析:年化 25.17%、累计 1229 倍、夏普 0.93、最大回撤 -38.52%。峰度 6.41 说明收益分布有明显的肥尾特征——极端涨跌比正态分布预期的要频繁得多。

起步

EasyClaw 官网下载安装。不需要手动装 PyFolio、不需要配 Jupyter Notebook。

打开后左侧找「Skill」→「Skill Creator」。灰显的话去「设置 → 通用」打开「开发者模式」重启。

创建 Skill

在 Skill Creator 里告诉 EasyClaw:

帮我把 GitHub 上的 PyFolio(https://github.com/quantopian/pyfolio)做成一个组合分析 Skill。我希望输入股票代码和起止日期,自动拉取历史收益率数据,生成 perf_stats 完整统计表、五段最差回撤明细和九面板 Tearsheet 图表。

EasyClaw 会自动拉代码、配置数据源、封装成 Skill。

Skill 创建好后:

用 PyFolio 对 AAPL 从 2015 年到现在做完整的收益分析

image

分析结果:11.5 年 1229 倍回报,但有过五次 30% 以上的回撤

核心绩效——13 项指标

类别指标怎么看
收益 年化收益 25.17% 极高的年化——已超过巴菲特长期记录
累计收益 1,229.58% 1 万变 13.3 万
风险 年化波动率 28.73% 高波动——是标普的两倍以上
最大回撤 -38.52% 三次腰斩级别的回撤
风险调整 夏普比率 0.93 接近 1——优秀水平
索提诺比率 1.36 高于夏普,说明下行波动控制得比上行好
卡玛比率 0.65 收益/最大回撤——每承受 1% 回撤获得 0.65% 年化收益
分布 偏度 0.13 轻微正偏——收益略向右偏
峰度 6.41 显著肥尾——极端事件比正态分布多得多
尾部比率 1.05 最右 5% 和最左 5% 的收益几乎对称
基准 Alpha(vs SPY) 9.41% 独立于大盘的年化超额——相当显著

五次最严重的回撤

PyFolio 会自动列出历史上最严重的五次回撤,精确到起止日期和恢复日期:

#回撤高点低点恢复持续天数
0 -38.52% 2018-10-03 2019-01-03 2019-10-10 267
1 -33.36% 2024-12-26 2025-04-08 2025-10-20 213
2 -31.43% 2020-02-12 2020-03-23 2020-06-05 83
3 -30.91% 2022-01-03 2023-01-05 2023-06-02 370
4 -30.44% 2015-05-22 2016-05-12 2017-02-01 444

五次回撤全部超过 30%,最长的从高点到恢复用了 444 天。但每轮回撤之后都创了新高——苹果的长期回报是建立在一轮又一轮 30%+ 回撤的废墟上的。这和 QuantStats 那篇文章发现的规律完全一致:在苹果这种超级牛股上,持有不动是最优策略,但前提是你能扛住每隔一两年就来一次的大回撤。

pyfolio_aapl_tearsheet

九面板 Tearsheet 包含了:累计收益、回撤、月度收益热力图、收益分布直方图、滚动夏普(6 个月)、年度收益、季度收益、最差五日收益、水下期分布——一张图覆盖了评估一个资产需要的全部视觉信息。

峰度 6.41 意味着什么

正态分布的峰度是 3。峰度 6.41 意味着苹果的日收益率分布比正态分布多了两倍以上的极端事件——暴涨暴跌的频率远超你的直觉预期。这个数字在实际交易中的含义是:你以为止损设在 -5% 够用了,但苹果历史上出现过多次 -5% 以上的单日暴跌。肥尾提醒你——回测里看到的最大回撤不是最坏情况,只是历史记录。真实的最坏情况永远在历史之外

偏度 0.13 说明苹果的涨跌基本对称,微微向右偏。这和一些量化策略的偏度特征完全不同——比如 FinRL 强化学习策略的偏度是 1.218,明显右偏。买入持有的收益分布更接近正态,择时策略的收益分布则有更强的偏度和峰度。

PyFolio 和 QuantStats 的区别

很多人会搞混这两个工具——名字像、功能都是"组合分析 + Tearsheet"。但它们的定位有明确的差异:

 PyFolioQuantStats
出身 Quantopian(已关停的对冲基金平台) 独立开源项目
风格 精简、聚焦,13 个核心指标 全面、详尽,70+ 指标
Tearsheet 9 面板,偏学术风 10+ SVG 嵌入 HTML,偏商业风
最差回撤明细 自动列出五次最严重回撤+起止日期 仅给出最大回撤数值
适合 快速诊断——"这个策略有没有硬伤" 深度报告——"给投资人看"

PyFolio 的"最差回撤明细"是它最实用的功能——不仅有最大回撤数值,还把每一次超过 30% 的回撤精确到起止日期和恢复日期。这比只看一个 -38.52% 的数字有用得多——你知道最坏的时候是什么时候、持续了多久、什么时候能回本

常见报错

错误原因解决方法
Tearsheet 生成后九面板中有空白 某些面板所需数据不足(如月度热力图需要足够长的历史) 拉长回测区间,至少覆盖 3 年以上
perf_stats 中 Alpha 为 NaN 没有传入基准收益率序列 确认 benchmark 参数已设置

下一步

  • 把自己策略的收益率序列喂给 PyFolio,看策略和买入持有的分布特征有什么不同
  • 用 PyFolio 的 event study 模块分析财报发布前后的异常收益

资源链接:

你投资的标的历史上最大回撤是多少?你能接受的最大回撤又是多少?欢迎聊聊。

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