回测方法论 (Backtesting Methodology)

模块编号:第⑥模块

前置知识:机器学习基础、特征工程、树模型实战、深度学习模型

难度等级:⭐⭐⭐⭐

预计学习时间:7-9 小时


模块简介

回测(Backtesting)是量化投资中至关重要的一环。它用历史数据模拟交易过程,验证策略的有效性。但回测不仅仅是”写代码模拟交易”——更重要的是识别回测中的陷阱,避免被虚假的策略表现所欺骗。

💡 核心理念:回测的目的是发现策略的问题,而不是证明策略有效。一个诚实的回测应该让你对策略的局限性有清晰的认识。


学习目标

完成本模块后,你将能够:

  1. 理解回测的完整流程:从数据准备到绩效评估的各个环节
  2. 构建投资组合:掌握多种仓位分配方法(等权、IC加权、均值方差优化等)
  3. 建模交易成本:理解并计算佣金、印花税、滑点、冲击成本
  4. 评估策略表现:计算并解读各类绩效指标(Sharpe、最大回撤、换手率等)
  5. 识别回测陷阱:防范过拟合、前视偏差、幸存者偏差等常见问题
  6. 独立完成回测:用纯 Python 实现完整的端到端回测系统

回测在量化流程中的位置

┌─────────────────────────────────────────────────────────────────────┐
│                        量化投资完整流程                               │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐      │
│  │  数据    │ →  │  研究    │ →  │  回测    │ →  │  实盘    │      │
│  │  获取    │    │  开发    │    │  验证    │    │  交易    │      │
│  └──────────┘    └──────────┘    └──────────┘    └──────────┘      │
│                      │                                     │         │
│                      ↓                                     ↓         │
│              ┌──────────┐                         ┌──────────┐      │
│              │ 特征工程 │                         │ 风险管理 │      │
│              │ 模型训练 │                         │ 监控报警 │      │
│              └──────────┘                         └──────────┘      │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘
                         ↑ 本模块聚焦于此区域

回测承上启下

  • 向上:验证研究结果是否有效
  • 向下:为实盘交易提供信心和参数

文件导航

文件内容预计时间难度
01-回测理论回测的基本概念、目的、流程,以及与实盘的关系1小时⭐⭐
02-投资组合构建从信号到持仓:等权、Top-K、IC加权、均值方差优化等方法1.5小时⭐⭐⭐
03-交易成本模型佣金、印花税、滑点、冲击成本的建模与计算1小时⭐⭐⭐
04-绩效评估指标收益、风险、风险调整收益等各类指标的计算与解读1.5小时⭐⭐⭐
05-回测陷阱与防范过拟合、前视偏差、幸存者偏差等七大陷阱及防范方法1.5小时⭐⭐⭐⭐
06-实战案例完整的端到端回测项目,从数据生成到绩效报告2.5小时⭐⭐⭐⭐

总计:约 9 小时


推荐学习路径

起点
  │
  ├→ 01-回测理论 ─────────────────────────────────┐
  │     [建立基本概念]                            │
  │                                              │
  ├→ 02-投资组合构建 ─────────────────────────────┤
  │     [如何从信号到持仓]                        │
  │                           │                  │
  ├→ 03-交易成本模型 ────────────┼→ 04-绩效评估指标 ─┐
  │     [真实成本有多高]        │   [如何评估表现]   │
  │                           │                  │
  ├→ 05-回测陷阱与防范 ────────┴→ 06-实战案例 ←───┘
  │     [批判性思维]            [综合应用]
  │
  └→ 终点:具备独立完成回测的能力

学习建议

  1. 顺序学习:每个章节都建立在前一章基础上
  2. 动手实践:每看完一节,运行代码示例
  3. 批判思考:回测方法论的核心是”怀疑”——永远质疑回测结果
  4. 对照实盘:理解回测与实盘的差异,避免过度自信

为什么不使用 qlib/backtrader?

本模块所有代码使用纯 Python + pandas/numpy 实现,不引入专门的回测框架。原因如下:

  1. 理解底层原理:直接写代码能让你明白回测的每一个细节
  2. 灵活性:框架往往有特定假设,自己写可以完全定制
  3. 调试方便:出现问题时,你完全知道代码在做什么
  4. 通用技能:掌握 pandas/numPy 技能可迁移到任何场景

💡 在掌握本模块内容后,你可以:

  • 用这些知识理解 qlib/backtrader 的设计
  • 根据需要选择合适的框架
  • 也可以继续用纯 Python 实现自己的回测系统

代码环境准备

# 安装必要的包
pip install numpy pandas scipy matplotlib empyrical
 
# empyrical 是专业的量化绩效计算库
# 如果安装失败,可以用纯 Python 实现(本模块会提供)

本模块使用的包

包名用途
numpy数值计算
pandas数据处理
scipy优化求解(均值方差)
matplotlib可视化
empyrical绩效指标计算(可选)

核心知识点预览

回测的五大支柱

┌────────────────────────────────────────────────────────────┐
│                    回测系统五大支柱                          │
├────────────────────────────────────────────────────────────┤
│                                                            │
│  1. 数据质量       →  垃圾进,垃圾出(GIGO)               │
│                                                            │
│  2. 组合构建     →  信号如何转化为仓位                     │
│                                                            │
│  3. 成本模型    →  决定策略是否可行                         │
│                                                            │
│  4. 绩效评估   →  全面评估风险收益                          │
│                                                            │
│  5. 偏差控制   →  确保回测诚实可靠                          │
│                                                            │
└────────────────────────────────────────────────────────────┘

A股市场特殊注意事项

特性说明影响
T+1当日买入次日才能卖出调仓延迟
印花税卖出时 0.1%增加交易成本
涨跌停单日 ±10%(创业板/科创板 ±20%)可能无法成交
停牌股票暂停交易组合中可能有”死”仓位
ST股风险警示股票通常需要过滤

开始学习

准备好进入回测的世界了吗?记住:一个好的量化投资者,首先是回测的批判者

开始学习:01-回测理论


补充资源

推荐阅读

  • 《主动投资组合管理》- Grinold & Kahn
  • 《量化投资:策略与技术》- 丁鹏
  • 《打开量化投资的黑箱》- Rishi K. Narang

在线资源

  • Quantopian Lectures(已停止更新,但内容经典)
  • towardsdatascience.com 上的回测系列文章

版本信息

  • 创建日期:2026-03-28
  • 最后更新:2026-03-28
  • 作者:mlqt 团队
  • 许可:CC BY-NC-SA 4.0

此文件夹下有6条笔记。