← 返回《初阶量化交易:策略编写及系统搭建》
📑 查看全课大纲(第 30 / 38 节)

策略评价指标(1)

约 24 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

常用评价指标的工程实现:年化收益、夏普比率与最大回撤

小象实战讲义 · 初阶量化交易:策略编写及系统搭建 本讲义仅用于编程与量化方法教学,不构成任何投资建议。

在完成了策略的选股、择时、风控与仓位管理模块后,量化工程师面临的核心问题是:如何客观、严谨、多维度地判定一个策略的好坏? 初学者往往容易陷入”唯绝对收益论”的误区,认为一年赚 50% 的策略必然优于赚 20% 的策略。然而,如果赚 50% 的策略中途经历了高达 60% 的本金腰斩(爆仓风险极高),在机构投资实战中它将被直接判定为不可投的劣质策略。

本讲系统介绍量化策略评估的四大核心维度(收益、风险、稳定性、胜率与舒适度);深入推导复合年化收益率(CAGR)、年化夏普比率(Sharpe Ratio)、动态最大回撤(Max Drawdown)与信息比率(IR) 的数学公式;并基于 Python 构建标准化的绩效评估工程函数库。


💡 核心导读

  • 策略评估的四大核心维度收益性 (Profitability)×风险敞口 (Risk)×稳定性 (Stability)×胜率与心理舒适度 (Comfort)\text{收益性 (Profitability)} \times \text{风险敞口 (Risk)} \times \text{稳定性 (Stability)} \times \text{胜率与心理舒适度 (Comfort)}
  • 核心绩效评估指标的数学定义
    1. 复合年化收益率(CAGR / Annual Profit)Years=TradingDays245,CAGR=(NetValue)1/Years1Years = \frac{\text{TradingDays}}{245}, \quad CAGR = (NetValue)^{1 / Years} - 1 消除回测时间长短差异,统一折算为标准年化几何复合增长率。
    2. 年化夏普比率(Sharpe Ratio)Sharpe=CAGRRfσannual=CAGRRfσdaily245\text{Sharpe} = \frac{CAGR - R_f}{\sigma_{annual}} = \frac{CAGR - R_f}{\sigma_{daily} \cdot \sqrt{245}} 衡量每承担一单位总波动风险所能获得的超额风险溢价(RfR_f 为无风险利率,通常取 3%3% ~ 4.75%4.75%);分子采用 CAGR 复利口径,业界亦有以算术年化收益(日收益均值 ×245\times 245)为分子的流派,数值略有差异。
    3. 动态最大回撤(Max Drawdown)Drawdownt=1NetValuetmaxstNetValues,MaxDrawdown=maxt(Drawdownt)\text{Drawdown}t = 1 - \frac{NetValue_t}{\max{s \le t} NetValue_s}, \quad \text{MaxDrawdown} = \max_{t} (\text{Drawdown}_t) 衡量历史任意最高点买入后可能遭受的最极端资金缩水幅度,是评估爆仓破产风险的核心指标。
    4. 信息比率(Information Ratio, IR)IR=αpωp=对标基准的超额收益均值跟踪误差标准差IR = \frac{\alpha_p}{\omega_p} = \frac{\text{对标基准的超额收益均值}}{\text{跟踪误差标准差}}
  • 心理舒适度(Comfort Factor)与胜率
    • 胜率高(如 65%65%)但盈亏比一般的策略,回撤平缓,实盘心理压力小;
    • 胜率低(如 35%35%)但盈亏比极高(如 5:15:1)的趋势跟踪策略,虽然数学期望为正,但需要经历漫长的连续止损磨折,对执行者的心理韧性要求极高。
┌─────────────────────────────────────────────────────────────┐
│                    量化策略绩效评估多维体检坐标系               │
└──────────────────────────────┬──────────────────────────────┘

 ┌─────────────────────────────┼─────────────────────────────┐
 ▼                             ▼                             ▼
┌──────────────────┐   ┌──────────────────┐   ┌──────────────────┐
│ 1. 收益维度       │   │ 2. 风险收益比     │   │ 3. 极端底线风险   │
├──────────────────┤   ├──────────────────┤   ├──────────────────┤
│ • 累计收益率     │   │ • 年化波动率 σ   │   │ • 最大回撤 MaxDD │
│ • 复合年化 CAGR  │   │ • 夏普比率 Sharpe│   │ • 回撤修复期     │
│ • 月度胜率分布   │   │ • 信息比率 IR    │   │ • 极端黑天鹅抗性 │
└──────────────────┘   └──────────────────┘   └──────────────────┘

一、夏普比率与最大回撤的工程评级基准

在量化资产管理行业中,策略的夏普比率与最大回撤通常遵循以下评级标准:

指标类型优秀 (Tier 1)良好 (Tier 2)及格 (Tier 3)劣质/不可投
Sharpe Ratio>2.0> 2.01.52.01.5 \sim 2.01.01.51.0 \sim 1.5<1.0< 1.0
Max Drawdown<8%< 8%8%15%8% \sim 15%15%25%15% \sim 25%>25%> 25%
收益回撤比 (Calmar)>3.0> 3.02.03.02.0 \sim 3.01.02.01.0 \sim 2.0<1.0< 1.0

二、最大回撤算法的向量化优化

传统双重循环计算最大回撤的时间复杂度为 O(N2)O(N^2),在海量分钟或 Tick 级数据中极为低效;通过利用 np.maximum.accumulate 累积最大值,可将算法优化至 O(N)O(N) 线性复杂度。


📝 动手练一练

下面我们用 Python 编写一段 量化策略标准绩效评估与指标计算函数库,输入回测资产净值序列,自动输出全套工业级绩效指标:

import numpy as np
import pandas as pd

def compute_performance_metrics(net_values, rf=0.03, annual_days=245):
    """
    量化策略全套绩效指标计算引擎:
    1. 累计收益率与复合年化收益率 (CAGR)
    2. 最大回撤 (Max Drawdown)
    3. 年化波动率 (Annual Volatility)
    4. 年化夏普比率 (Sharpe Ratio)
    """
    nv = np.array(net_values)
    total_days = len(nv)
    years = (total_days - 1) / annual_days  # N 个净值点横跨 N-1 个收益区间
    
    # 1. 累计收益与年化复合收益 (CAGR)
    total_return = nv[-1] / nv[0] - 1.0
    cagr = (nv[-1] / nv[0]) ** (1.0 / years) - 1.0 if years > 0 else 0.0
    
    # 2. 计算单日收益率序列与年化波动率
    daily_returns = np.diff(nv) / nv[:-1]
    daily_std = np.std(daily_returns, ddof=1)
    annual_vol = daily_std * np.sqrt(annual_days)
    
    # 3. 年化夏普比率 (Sharpe Ratio)
    #    口径说明: 分子采用 CAGR (复利口径); 业界亦有以算术年化收益 (日收益均值 × 245) 为分子的流派, 数值略有差异
    sharpe = (cagr - rf) / annual_vol if annual_vol > 0 else 0.0
    
    # 4. 线性时间复杂度 O(N) 动态最大回撤计算
    peak = np.maximum.accumulate(nv)
    drawdowns = (peak - nv) / peak
    max_drawdown = np.max(drawdowns)
    
    return {
        "Total_Return%": round(total_return * 100.0, 2),
        "CAGR%": round(cagr * 100.0, 2),
        "Annual_Vol%": round(annual_vol * 100.0, 2),
        "Max_Drawdown%": round(max_drawdown * 100.0, 2),
        "Sharpe_Ratio": round(sharpe, 2)
    }

def test_metrics_run():
    # 模拟 245 个交易日 (1 年) 资产净值稳健上涨走势
    np.random.seed(42)
    daily_rets = np.random.normal(0.001, 0.012, 245)
    # 前置初始净值锚点 1.0 (第 0 天), 使净值序列与 245 个日收益一一对齐
    net_values = np.concatenate(([1.0], np.cumprod(1.0 + daily_rets)))
    
    metrics = compute_performance_metrics(net_values, rf=0.03, annual_days=245)
    
    print("================ 量化策略标准绩效评估报告 ================")
    for k, v in metrics.items():
        print(f"  - {k:<18}: {v}")
    print("--------------------------------------------------------")
    print("量化规范: 综合考量 CAGR、最大回撤与夏普比率,杜绝唯收益论!")
    print("========================================================")

if __name__ == "__main__":
    test_metrics_run()

运行结果输出:

================ 量化策略标准绩效评估报告 ================
  - Total_Return%     : 23.71
  - CAGR%             : 23.71
  - Annual_Vol%       : 18.17
  - Max_Drawdown%     : 14.58
  - Sharpe_Ratio      : 1.14
--------------------------------------------------------
量化规范: 综合考量 CAGR、最大回撤与夏普比率,杜绝唯收益论!
========================================================

本章小结

  1. 树立多维评估准则:摒弃单纯追求收益率的狭隘视角,将风险、夏普比率与回撤作为核心生命线。
  2. 掌握指标数学本质:深刻理解 CAGR、Sharpe 与 Max Drawdown 的公式定义与经济学含义。
  3. 高效工程实现:利用矢量化矩阵运算实现 O(N)O(N) 极速绩效归因,为大规模参数调优与策略体检提供强力工具。

📋 行动清单 (Action Checklist)

  • 运行本讲绩效评估代码,核验 CAGR 与最大回撤的计算输出;
  • 将此评估函数接入第三章和第四章的回测结果中,计算真实策略的 Sharpe 比率;
  • 预习下一讲,学习如何综合评判什么样的策略才是一个合格且具备实盘生命力的”好策略”。

— 小象教研组

配套学习资源与课件
  • 第5章课件:怎么评价和诊断交易策略(PDF · 1.5MB)
    下载
  • 第5章配套代码包:策略评价与优化(ZIP · 4KB)
    下载
  • 开发环境准备:软件安装指导(PDF · 0.9MB · 建议第3章动手实践前先通读)
    下载
  • 量化入门推荐书单(PDF · 318KB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问