Portfolio Analytics 是一个投资组合层面的绩效分析技能,主要从权益曲线(equity curve)和交易日志出发,计算组合层面的绩效指标。
用途 该技能用于在策略回测之后进行绩效评估,例如与 vectorbt 或 strategy-framework 配合使用;也用于并排比较多个策略或参数组合、生成面向投资者的绩效报告、将实盘交易表现与基准进行对比,以及为组合配置决策评估风险调整后收益。
主要能力 收益指标:总收益、CAGR(复合年增长率)、日均收益与年化均值、累计收益。 风险指标:年化波动率、历史 VaR、条件 VaR(CVaR / 期望损失)、最大回撤、回撤时间序列、水下时间(Time Underwater)。 风险调整比率:Sharpe 比率、Sortino 比率、Calmar 比率、Omega 比率、信息比率。 滚动分析:滚动 Sharpe、滚动最大回撤。 交易级分析:基于单笔交易盈亏计算总交易数、胜率、平均盈利、平均亏损、最大盈利、最大亏损、盈亏比(profit factor)、期望值、总盈利、总亏损。 月度 / 年度收益表:将收益透视成年份为行、月份为列的表格,并附年度列。 基准对比:对比策略与基准的总收益、Sharpe、最大回撤,并计算信息比率、相关性、Beta、Alpha。 Quantstats HTML 报告:通过一次函数调用生成面向投资者的 HTML 报告,也可输出控制台 tearsheet 或单独打印各项指标。
使用方式 前置依赖安装命令:uv pip install pandas numpy quantstats 所有分析都从权益曲线开始,即一个以时间为索引的组合价值 Series。示例: import pandas as pd import numpy as np
equity = pd.Series( [10000, 10150, 10080, 10320, 10510, 10440, 10680], index=pd.date_range("2025-01-01", periods=7, freq="D"), name="strategy_equity" )
returns = equity.pct_change().dropna() 生成 HTML 报告示例: import quantstats as qs
qs.reports.html( returns, benchmark=benchmark_returns, # optional output="report.html", title="My Strategy", rf=0.0, periods_per_year=252 )
print(f"Sharpe: {qs.stats.sharpe(returns):.2f}") print(f"Sortino: {qs.stats.sortino(returns):.2f}") print(f"Max DD: {qs.stats.max_drawdown(returns):.2%}") print(f"Calmar: {qs.stats.calmar(returns):.2f}")
qs.reports.full(returns) 与 Vectorbt 集成示例: import vectorbt as vbt
portfolio = vbt.Portfolio.from_signals(close, entries, exits, init_cash=10000)
equity = portfolio.value() returns = portfolio.returns()
qs.reports.html(returns, output="backtest_report.html")
适用场景 回测后评估策略表现;多策略或参数集并排比较;生成投资者可用的绩效报告;评估实盘交易表现并与基准对比;为组合配置决策评估风险调整后收益。
限制 资料未提供具体的收费、价格、平台支持范围或效果保证等信息。使用前需安装 pandas、numpy、quantstats。部分指标(如 Sortino、Calmar、Omega)在特定边界条件下会返回 inf 或 0.0,需按代码逻辑处理。