news 2026/8/15 15:44:21

量化策略绩效评估体系:收益、风险与决策能力指标(Python 实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
量化策略绩效评估体系:收益、风险与决策能力指标(Python 实战)

量化策略绩效评估体系:收益、风险与决策能力指标(Python 实战)

阶段三:量化内核 · 配套代码code/stage3/metrics.py
本文所有数值均由脚本在固定随机种子下真实运行得出,图表由matplotlib(Agg)离线生成。


一、量化投资全流程概览

一个完整的量化策略从想法到上线,通常经历以下闭环:

数据接入 → 因子/信号处理 → 组合构建 → 回测验证 → 绩效评估 → 风控迭代 → 实盘

其中绩效评估(Performance Evaluation)是回测与实盘之间的"质检关":它用一套可量化的指标,回答三个核心问题——

  1. 赚了多少?(收益类指标)
  2. 为赚这些承担了多大风险?(风险类指标)
  3. 靠运气还是靠能力?(风险调整后收益 / 决策能力指标)

四大策略类型

策略类型核心逻辑典型指标/工具
基本面策略低估值、高盈利、稳定成长PE/PB/ROE(见fundamental.md
技术面策略价格形态、趋势与动量SMA/EMA/RSI/KDJ(见indicators.md
统计套利价差均值回归、配对交易协整、z-score、相关性
AI 策略用模型学习非线性规律机器学习/深度学习预测收益

无论哪一类策略,最终都要用同一套绩效指标来横向比较优劣。本文聚焦这套通用评估体系。


二、指标定义与 Python 实现

我们用合成数据构造一条"策略日收益"序列和一条"基准日收益"序列(宽基指数近似),全部基于几何布朗运动(GBM)叠加正态噪声,并用固定种子SEED=123保证可复现。

数据生成方式(无网络依赖):

rng=np.random.default_rng(SEED)ret=mu/252+sigma/np.sqrt(252)*rng.standard_normal(N)

策略参数:年化漂移 16%、年化波动 16%,并注入 2 次 -4.5% 的黑天鹅冲击;
基准参数:年化漂移 10%、年化波动 14%。样本长度N=756(约三年交易日)。

2.1 收益类指标

defcumulative_return(r):# 累计收益 = Π(1+r) - 1returnfloat((1.0+r).prod()-1.0)defannualized_return(r,p=252):# 年化收益(几何)returnfloat((1.0+r).prod()**(p/len(r))-1.0)defexcess_return(s,b):# 超额累计收益returncumulative_return(s)-cumulative_return(b)

2.2 风险类指标

defannualized_vol(r,p=252):# 年化波动率 = 日波动 × √252returnfloat(r.std(ddof=1)*np.sqrt(p))defmax_drawdown(r):# 最大回撤eq=(1.0+r).cumprod()dd=eq/eq.cummax()-1.0returnfloat(dd.min())

2.3 风险调整后收益(决策能力指标)

defsharpe_ratio(r,rf=0.02,p=252):rf_d=rf/p ex=r-rf_dreturnfloat(ex.mean()/ex.std(ddof=1)*np.sqrt(p))defsortino_ratio(r,rf=0.02,p=252):rf_d=rf/p ex=r-rf_d down=ex[ex<0]dvol=down.std(ddof=1)*np.sqrt(p)returnfloat(ex.mean()*p/dvol)defcalmar_ratio(r,p=252):mdd=max_drawdown(r)returnfloat(annualized_return(r,p)/abs(mdd))

关于无风险利率:本文取年化2%,用于 Sharpe / Sortino 的超额收益计算。


三、真实运行结果

运行python code/stage3/metrics.py,得到如下核心图表与指标表。

3.1 净值曲线(Equity Curve)

3.2 回撤曲线(Drawdown Curve)

3.3 完整指标表(脚本真实打印)

指标策略 Strategy基准 Benchmark
累计收益 Cumulative Return0.66490.4163
年化收益 Annualized Return0.18520.1230
年化波动率 Annualized Volatility0.16700.1428
最大回撤 Max Drawdown-0.1408-0.1663
Sharpe 比率0.98140.7442
Sortino 比率1.47931.1917
Calmar 比率1.31520.7399

超额累计收益 Excess Cumulative Return = 0.2486(策略三年累计跑赢基准约 24.86 个百分点)。
样本天数N=756,随机种子SEED=123


四、每个指标的含义与用法解读

收益类

  • 累计收益:回测期内总盈亏,最直观但不含时间维度。本策略三年累计+66.49%,基准+41.63%
  • 年化收益:把不同周期收益折算到"每年",方便跨策略比较。策略约18.52%/年,基准约12.30%/年
  • 超额收益:相对基准的增量,是证明"策略有 alpha"的关键证据。

风险类

  • 年化波动率:收益标准差的年化,衡量"颠簸程度"。策略16.70%略高于基准14.28%,说明策略更激进。
  • 最大回撤(MDD):从历史最高点到最低点的最大亏损。策略-14.08%,基准-16.63%——策略在更赚钱的同时回撤更小,这是优质策略的特征。

决策能力(风险调整后)类

  • Sharpe 比率=(年化收益−无风险)/ 年化波动。衡量"每承担一单位总风险换来的超额回报"。策略0.98> 基准0.74,说明风险使用效率更高。经验阈值:>1 合格,>2 优秀,>3 卓越。
  • Sortino 比率:与 Sharpe 类似,但只对下行波动(亏损)计罚,上行波动不计。因此对"赚得多、偶尔大涨"的策略更友好。策略1.48明显高于基准1.19,说明其下行风险被控制得更好。
  • Calmar 比率= 年化收益 / |最大回撤|。直接把"收益"和"最痛的亏损"挂钩,是实盘使用者最关心的比率之一。策略1.32远高于基准0.74,意味着同样承受回撤,策略产出收益的能力约为基准的 1.8 倍。

一句话总结:本策略在收益、回撤、风险调整后收益三个维度全面跑赢基准,且 Sharpe≈0.98、Calmar≈1.32 已接近"优秀"区间,是一套经得起指标检验的策略原型。


五、小结与延伸

  • 绩效评估不是"算完数字就结束",而是多指标交叉验证:单看累计收益会被高波动误导,必须配合 MDD、Sharpe、Sortino、Calmar 一起看。
  • 指标对参数敏感:TRADING_DAYSRISK_FREE_ANNUAL、回测长度都会改变数值,比较策略时务必统一口径
  • 下一步:把这些指标封装成evaluate(strategy_returns, benchmark_returns)函数,接入你的回测框架,作为策略准入的"硬门槛"。

下一篇:《技术指标全实现》(indicators.md)将带你用纯 Python 复现 SMA/EMA/RSI/KDJ/ATR/BOLL/OBV,并把它们画成真实图表。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 15:42:55

不想再手动数抽数?实测一款一键导出原神祈愿记录的开源工具

不想再手动数抽数&#xff1f;实测一款一键导出原神祈愿记录的开源工具 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 如果你也玩原神&#xff0c;大概经…

作者头像 李华
网站建设 2026/8/15 15:40:56

SQLAdvisor终极指南:3步跑通智能索引优化建议

SQLAdvisor终极指南&#xff1a;3步跑通智能索引优化建议 【免费下载链接】SQLAdvisor 输入SQL&#xff0c;输出索引优化建议 项目地址: https://gitcode.com/gh_mirrors/sq/SQLAdvisor 线上业务半夜又卡了&#xff0c;慢查询日志刷出满屏红字&#xff0c;你盯着 EXPLAI…

作者头像 李华
网站建设 2026/8/15 15:38:04

彻底解决Git跨平台换行符问题:CRLF与LF的终极配置指南

1. 项目概述&#xff1a;换行符的“隐形战争”与Git的调和之道如果你在团队协作开发中&#xff0c;遇到过代码文件莫名其妙地出现大量修改&#xff0c;但实际内容几乎没变&#xff0c;或者在不同操作系统间切换时&#xff0c;文本文件的格式突然变得混乱不堪&#xff0c;那么你…

作者头像 李华
网站建设 2026/8/15 15:34:57

旧对话为什么没有恢复代码:Pi Session Tree 与上下文投影

回到旧对话为什么没有恢复代码&#xff1a;Pi Session Tree 与上下文投影 你让 Coding Agent 修复登录问题。它先改了 Token 校验&#xff0c;测试失败&#xff1b;你退回到“读取认证模块”那条消息&#xff0c;换成检查数据库时区。对话看起来回到了过去&#xff0c;但工作区…

作者头像 李华
网站建设 2026/8/15 15:34:10

PDF补丁丁怎么用?三个真实场景看懂这个免费PDF工具箱的价值

PDF补丁丁怎么用&#xff1f;三个真实场景看懂这个免费PDF工具箱的价值 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱&#xff0c;可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档&#xff0c;探查文档结构&#xff0c;提取图片、转成图片等等 项目地址: https…

作者头像 李华