开始之前
- 理解回测的基本概念,例如前视偏差、成本和绩效指标(如课程《系统化交易与回测》所讲)
- 熟悉移动平均线、RSI 和 ATR(如课程《深入技术分析》所讲)
- 一台可以安装软件的电脑;无需任何编程经验
学完后你将能够
- 搭建一个包含 pandas、numpy、matplotlib 和 Jupyter 的隔离 Python 环境,并保持其可复现
- 从文件和免费 API 加载、清洗并复权价格数据,并将其重采样到其他时间周期
- 计算简单收益率和对数收益率、年化收益率和波动率,并将标准指标写成向量化函数
- 构建一个向量化回测和一个事件驱动回测,并正确处理时序、成本、止损和仓位规模
- 用代码实现 CAGR、最大回撤、夏普比率和盈利因子等绩效指标,并为其编写单元测试
- 将每日观察列表脚本自动化,并对照前视偏差和过度拟合审查研究笔记本
本课程的课时
搭建研究环境:Python、虚拟环境、Jupyter 与 VS Code
安装 Python,创建一个隔离的项目环境,添加 pandas、numpy 和 matplotlib,并在笔记本中完成你的第一次计算。
一课掌握金融所需的 Python 基础:数据类型、列表、字典、循环、函数与错误信息
学习交易者所需的最少核心 Python 知识:数字、字符串、列表、字典、循环、函数,以及如何阅读回溯信息(traceback)。
pandas 基础:Series、DataFrame、DatetimeIndex、选择与筛选,以及把日线重采样为周线
理解 Series 和 DataFrame,按日期为价格数据建立索引,用 loc 和 iloc 选择行,用布尔掩码进行筛选,并把日线汇总为周线。
加载价格数据:CSV 文件与免费 API、复权与未复权价格、缺失值与时区
把价格文件和 API 下载的数据读入一个干净的 DataFrame,理解拆股和股息复权的原理,并正确处理数据缺口和时区。
用代码计算收益率:简单收益率与对数收益率、累计收益率、年化收益率与波动率,以及滚动窗口
在 pandas 中计算简单收益率和对数收益率,正确地进行复利计算,将收益率和波动率年化,并构建滚动统计量。
用代码实现指标:向量化的 SMA、EMA、RSI、ATR 和布林带,并对照图表平台进行验证
为五个最常用的指标编写向量化的 pandas 函数,了解为什么它们的数值可能与图表平台不同,以及如何使两者一致。
向量化回测:信号、仓位、用位移避免前视偏差、交易成本与资金曲线
在 pandas 中为一条移动平均线规则构建完整的向量化回测,包括仓位位移、每笔交易成本、资金曲线以及与基准的比较。
事件驱动回测:带 ATR 止损、仓位规模和 R 倍数交易清单的循环引擎
用 Python 构建一个逐根 K 线运行的回测循环:按 ATR 风险确定仓位规模,严格执行止损(包括跳空情形),并以 R 倍数记录每一笔交易。
把绩效指标写成可复用函数:CAGR、回撤、夏普比率、索提诺比率、盈利因子及其单元测试
编写一个正确处理年化的小型指标模块,添加滚动版本,并用 pytest 对照你手工算出的数值来验证这些函数。
用于分析的绘图:带指标的价格图、资金曲线与回撤图、收益率分布以及导出图表
使用 matplotlib 的“图形与坐标轴”接口构建每份回测报告都需要的四种图表,正确解读它们,并以印刷质量导出。
在 pandas 中做投资组合分析:相关系数矩阵与协方差矩阵、加权投资组合波动率和再平衡模拟
根据收益率计算年化协方差矩阵和相关系数矩阵,用 NumPy 推导投资组合波动率和风险贡献,并模拟权重漂移与日历再平衡的差异。
自动化每日观察列表:一个获取数据、计算信号并生成报告的定时脚本,以及 API 密钥与速率限制的陷阱
把笔记本代码改造成一个稳健的命令行脚本,包含配置、日志、带退避的重试、安全的 API 密钥管理和定时调度,并写出每日报告文件。
从数据到报告的完整研究笔记本项目,附针对前视偏差和过度拟合的代码审查清单
把一项完整的策略研究组织成可复现的项目,从原始数据一直运行到书面结论,并用一份能发现“美化回测”错误的清单审查代码。
自营交易公司、资助账户与把交易当作一门生意
请继续学习课程《自营交易公司、资助账户与作为一门生意的交易》,了解一套经过测试的方法如何契合考核规则、资金分配以及交易的商业层面。
查看课程大纲