公司动态
PyFolio还值得用吗:6.4k Star却停更6年的tearsheet鼻祖
PyFolio还值得用吗6.4k Star却停更6年的tearsheet鼻祖6.4k Star、1.9k Fork这个数字放在任何开源项目里都不算小。但 PyFolio 的最后一笔提交停在 6 年前背后的 Quantopian 公司 2020 年就倒闭了。这个曾经定义「量化绩效报告」标准的库如今成了 GitHub 上一具「活化石」——153 个 issue 无人解决新版 Python 根本装不上。本文讲清楚它为什么经典、为什么停更、以及今天你到底该不该用它。一、PyFolio 是什么量化绩效报告的「鼻祖」PyFolio 是 Quantopian一家曾融资数亿、最终倒闭的量化平台公司开源的绩效与风险分析库。它的核心就一个词tearsheet也叫 tear sheet。所谓 tearsheet就是把一个交易策略的完整表现「撕下来」给你看的那一整套图表收益曲线、回撤、月度收益热力图、滚动夏普比率、滚动贝塔、盈亏分布……在 PyFolio 之前量化从业者得自己用 matplotlib 一张张画PyFolio 之后一行create_full_tear_sheet()就全出来了。它和 ZiplineQuantopian 的回测库深度集成是当年 Quantopian 平台上每个策略回测结果的标准输出格式。一句话定位量化绩效报告「tearsheet」范式的开创者但已停更 6 年。速览表维度说明项目名PyFolioquantopian/pyfolio语言/依赖Pythonpandas/matplotlib/seaborn/empyrical安装pip install pyfolio但新版 Python 装不上定位绩效与风险分析tearsheet 报告状态❌ 已停更 6 年Quantopian 2020 倒闭上手难度低但环境兼容是大坑二、核心能力拆解tearsheet 到底「撕」出了什么PyFolio 的 tearsheet 是一套完整的绩效可视化核心模块pyfolio.tearscreate_full_tear_sheet是入口一次生成全部图表。pyfolio.timeseries时序绩效指标——perf_stats()输出年化收益、夏普、索提诺、最大回撤、Calmar 等。pyfolio.plotting收益曲线、回撤图、月度收益热力图、滚动夏普/贝塔。pyfolio.round_trips往返交易分析盈亏分布、持仓时长。pyfolio.returns收益相关的计算基于 empyrical 库。这套「收益曲线 回撤 月度热力图 滚动指标 盈亏分布」的组合成了此后几乎所有绩效分析库的事实标准模板。你现在看到的 QuantStats、以及各种回测框架的绩效报告布局几乎都是 PyFolio tearsheet 的翻版。一句话记住PyFolio 定义了「量化绩效报告长什么样」——这是它停更 6 年后仍被 6.4k 人 star 的原因。三、为什么它停更了Quantopian 的兴衰这是本文的独占内容——竞品文章大多避谈「这库已经死了」只顾着贴pip install pyfolio的教程。PyFolio 停更的根本原因是它的母公司 Quantopian 倒掉了Quantopian 是一家「众包量化」平台巅峰时融资数亿美元号称让散户也能写算法跑实盘。2020 年 11 月Quantopian 宣布停止运营把核心代码开源后散伙。PyFolio 和 Zipline 这两个旗舰项目从此无人维护最后一笔提交停在 2018 年。结果就是你现在看到的状态153 个 open issue 无人管依赖锁死在旧版 pandas1.0Python 3.10 直接装不上。它不是因为「做得不好」而死而是「公司没了」。一句话PyFolio 是公司倒闭的「陪葬品」——技术依然经典但没有活人在维护它了。四、部署方案还能跑吗4.1 现实新版 Python 装不上PyFolio 依赖旧版 pandas1.0而 Python 3.10 的 pandas 早就是 2.x。直接pip install pyfolio在新环境会报依赖冲突。4.2 方式一旧版 Python 环境勉强能跑# 需要一个 Python 3.7/3.8 的 conda 环境 conda create -n pyfolio python3.7 conda activate pyfolio pip install pyfolio # 可能还需要手动降级 pandas、empyrical 等4.3 方式二直接上替代品推荐与其折腾旧环境不如直接用它的现代替代品。PyFolio 停更后社区的主流选择是QuantStats——同样是 tearsheet 思路但活跃维护、Python 3.10 直接装、接口更现代。如果你只想快速生成绩效报告可以用 EasyClaw 一键部署 QuantStats帮我部署 QuantStats一个 Python 绩效分析库需要 Python 3.10 和 pandas、numpy 依赖EasyClaw 会自动完成环境配置和依赖安装把「配环境 装依赖」的数小时压缩成一句话这种「自然语言说需求、自动装环境」的方式正是 EasyClaw 的核心价值。4.4 验证 Bing 三问部署成功后用户最常搜的三个问题 1.PyFolio 还能用吗能用但要 Python 3.7/3.8 旧环境新环境装不上。 2.PyFolio 和 QuantStats 哪个好PyFolio 是鼻祖但停更QuantStats 是现代替代品。 3.tearsheet 是什么一整套绩效可视化图表收益/回撤/热力图/滚动指标。五、常见问题与踩坑地图5.1 依赖地狱pandas 版本锁死这是最致命的坑。PyFolio 锁死 pandas1.0而现代 Python 环境早就是 pandas 2.x。踩坑点直接 pip install 失败新版 Python 下pip install pyfolio会因 pandas 版本冲突报错。empyrical 也是死的PyFolio 依赖的 empyrical 库同样停更连锁反应。Zipline 集成失效Zipline 也停更了两个「死库」互相依赖更难跑通。5.2 153 个 issue 无人解决GitHub 上堆着 153 个 open issue从 2018 年至今没人处理。遇到任何 bug只能自己翻源码改别指望官方修复。5.3 该用 PyFolio 还是 QuantStats结论很明确除非你要学习 tearsheet 的历史实现、或维护遗留的老项目否则直接用 QuantStats。QuantStats 是 tearsheet 范式的现代继承者——同样是「输入收益率输出完整报告」但活跃维护、Python 3.10 直接装、文档更好。我写过一篇 QuantStats 的详细评测见延伸阅读。一句话PyFolio 是「经典但已死」QuantStats 是「它的活着的继承者」。六、总结谁还该用 PyFolioPyFolio 的历史地位无可替代——它定义了「量化绩效报告」的 tearsheet 范式这个范式至今仍是行业标准。但它已经停更 6 年公司倒闭、依赖锁死、153 个 issue 无人管。所以新项目别用 PyFolio直接上 QuantStats只有两种情况你会碰到它——学习 tearsheet 的历史实现或维护一个还在用它的遗留项目。如果你要上手绩效分析与其折腾 PyFolio 的旧环境不如用 EasyClaw 一键部署它的现代替代品 QuantStats把时间花在分析策略上而不是花在解决依赖冲突上。延伸阅读- PyFolio GitHubhttps://github.com/quantopian/pyfolio - QuantStats 现代替代品https://github.com/ranaroussi/quantstats - QuantStats 评测我之前的文章QuantStats绩效分析实战7.6k Star一键生成专业Tearsheet报告你在维护还在用 PyFolio 的老项目吗迁移到 QuantStats 时遇到过什么坑欢迎在评论区聊聊。风险声明本文及 PyFolio/QuantStats 均为研究与学习用途不构成任何投资建议。绩效指标为历史数据计算结果不代表未来表现。AI 辅助创作声明本文由 AI 辅助整理撰写涉及项目事实已对照官方 README 与仓库状态核验。