看净值与回撤
用 snapshot + drawdown 组合,先看整体净值走势,再定位最大回撤出现在哪个阶段、跌了多深,是复盘策略的第一组图。
QuantStats · quantstats.plots
quantstats.plots 提供约 17 种绘图:snapshot 综合快照、drawdown 回撤、monthly_heatmap 月度热力图、rolling_beta/sharpe/sortino/volatility 滚动指标、distribution/histogram 分布等,帮你可视化绩效结构。
QuantStats plots 绘图分类示意;基于官方 README,非实测图表。
quantstats.plots 的完整方法列表可用 [f for f in dir(qs.plots) if f[0] != '_'] 查看;以下按展示内容与使用场景展开,具体以官方 README 为准。
| 绘图 | 方法 | 展示内容 | 使用场景 |
|---|---|---|---|
| 综合快照 | qs.plots.snapshot(stock) | 净值曲线 + 回撤 + 核心指标总览 | 快速了解策略整体表现,作为第一张图 |
| 回撤 | qs.plots.drawdown(stock) | 历史回撤水下曲线 | 评估策略的亏损深度与修复时间 |
| 回撤区间 | qs.plots.drawdowns_periods(stock) | 标注每次回撤的起止区间 | 定位哪些阶段发生了显著回撤 |
| 月度热力图 | qs.plots.monthly_heatmap(stock) | 按年月排列的收益热力矩阵 | 识别季节性/哪些月份赚或亏 |
| 年度收益 | qs.plots.yearly_returns(stock) | 各年度收益率柱状 | 比较不同年份的绩效强弱 |
| 滚动 beta | qs.plots.rolling_beta(stock, benchmark) | 相对基准的滚动敏感度曲线 | 观察策略对市场/基准的暴露是否漂移 |
| 滚动夏普/索提诺/波动 | qs.plots.rolling_sharpe / rolling_sortino / rolling_volatility | 风险调整收益与波动的时间序列 | 评估绩效是否稳定,避免只看单点指标 |
| 收益分布 | qs.plots.distribution(stock) | 收益率的分布曲线 | 判断收益是否正态、尾部是否肥厚 |
| 直方图 | qs.plots.histogram(stock) | 收益率频数直方图 | 直观查看收益集中在哪些区间 |
| 收益/对数收益 | qs.plots.returns / log_returns / daily_returns | 累计收益、对数收益、日收益曲线 | 查看收益的时间演化与日度波动 |
| 蒙特卡洛图 | qs.plots.montecarlo / montecarlo_distribution | 模拟路径与模拟分布 | 可视化风险的概率分布(详见蒙特卡洛页) |
1. 导入并扩展 pandas:import quantstats as qs; qs.extend_pandas() —— 扩展后可 stock.plot_snapshot() 直接调用。
2. 获取收益序列:stock = qs.utils.download_returns('META') —— 或传入你自己的日/周/月收益率 Series。
3. 画综合快照:qs.plots.snapshot(stock, title='Meta Performance', show=True) —— 生成净值+回撤+指标总览图。
4. 画回撤与热力图:qs.plots.drawdown(stock)、qs.plots.monthly_heatmap(stock) —— 分别看亏损深度与月度分布。
| 分类 | 包含绘图 | 分析目的 |
|---|---|---|
| 走势类 | snapshot / returns / log_returns / daily_returns / earnings | 看净值与收益如何随时间累积、日度如何波动 |
| 回撤类 | drawdown / drawdowns_periods | 量化亏损深度与回撤发生的时间区间 |
| 分布类 | distribution / histogram | 检查收益分布形态与尾部风险 |
| 滚动类 | rolling_beta / rolling_sharpe / rolling_sortino / rolling_volatility | 看风险调整收益与基准暴露是否随市场漂移 |
| 周期/汇总类 | monthly_heatmap / yearly_returns | 看月度/年度表现,识别季节性与强弱年份 |
| 蒙特卡洛类 | montecarlo / montecarlo_distribution | 用模拟分布做概率化风险分析 |
1. 安装可选依赖:pip install plotly>=5.0 —— plotly 为可选项,不装不影响其他绘图。
2. 转交互图:qs.plots.to_plotly() —— 把当前静态图转成可缩放/悬停的 Plotly 图。
3. 适用场景:需要交互式查看数据点、嵌入网页或 Notebook 展示时使用。
用 snapshot + drawdown 组合,先看整体净值走势,再定位最大回撤出现在哪个阶段、跌了多深,是复盘策略的第一组图。
monthly_heatmap 一眼看清哪些月份赚钱/亏损,yearly_returns 比较各年强弱,帮助识别策略的季节性或某年失效。
rolling_sharpe/sortino 观察风险调整收益是否随时间稳定,rolling_beta 看基准暴露是否漂移,避免被单点指标误导。
约 17 种:snapshot、drawdown、monthly_heatmap、rolling_beta/sharpe/sortino/volatility、distribution、histogram、returns、yearly_returns、montecarlo 等,完整列表以 dir(qs.plots) 与官方 README 为准。
安装可选依赖 plotly≥5.0 后,可用 qs.plots.to_plotly() 转为交互式 Plotly 图;未安装 plotly 不影响静态图功能,具体以官方 README 为准。
可用 savefig 参数控制保存;部分图(如 monthly_heatmap)在保存时可能仍会弹出显示,属官方 README Known Issues 记录的已知问题,以官方文档为准。
EasyClaw 的 stock-technical-mastery 技能画的是 A股 K 线/技术指标图(MACD/RSI/布林带),面向 A股技术分析;QuantStats 画的是任意收益序列的绩效图(回撤/热力图/滚动指标)。两者市场与任务不同,且 QuantStats 与 EasyClaw 无已证实集成。
不能。图仅可视化历史收益序列,不构成收益保证或投资建议;实盘需自行核验数据与风险。