第 11 册 量化交易综合实战 · 本册导读
1. 本册定位
1.1 底本
本册没有原书底本。前 10 册各自按一本经典教材重写,讲透了一门学科;本册把这些学科串成一条完整的量化研究与交易流程,由编写组按「问题 → 方法 → 代码 → 陷阱」的结构原创编写。全册 11 章、11 个文件,约 33 万字符(含代码、公式和输出),66 段 Python 代码全部用代码内生成的合成数据运行,不依赖网络和行情数据库。
因为没有底本,本册各章末尾没有「原书对照」,取而代之的是「延伸阅读」:先列前面各册的对应章节,再列少数确信存在的经典文献,如 Fama–MacBeth(1973)、Ledoit–Wolf(2004)、Almgren–Chriss(2000)、Bailey–López de Prado(2014)、López de Prado《Advances in Financial Machine Learning》(2018)和 Grinold–Kahn《Active Portfolio Management》。正文中凡是用到前面各册已经推导过的结论,都直接注明出处(如「推导见第 04 册第 12 章 12.10 节」),不再重复推导。
1.2 在量化交易中的作用
前 10 册回答的是「这个工具是什么、为什么成立」;本册回答的是「做一个策略时,第几步用哪个工具、最容易在哪里出错」。全册围绕第 01 章提出的研究循环展开:
想法 → 数据 → 信号 → 风险 → 组合 → 回测 → 执行 → 监控 → 回到想法。
每一环对应一章或几章:数据是第 02 章,信号是第 03 章(横截面因子)、第 08 章(时间序列与统计套利)、第 10 章(机器学习),风险是第 04 章,组合是第 05 章,回测是第 06 章,执行是第 07 章,监控与风控是第 11 章,第 09 章把同一套流程用到衍生品和波动率策略上。
本册有三条贯穿全书的主线,读完后应当形成习惯:
- 时间方向:任何一个数据点,都要问「它在当时是否已经可得」。第 01 章的未来扰动测试、第 02 章的时点数据、第 06 章的前视偏差、第 10 章的标签重叠与剔除,都是这条主线在不同环节的表现。
- 统计误差:Sharpe、IC、回撤、alpha 都是估计值,都有标准误;试过的配置越多,最好的结果越可能是运气。第 03 章的多重检验、第 05 章的样本外比较、第 06 章的 Deflated Sharpe、第 11 章的绩效评估反复回到这一点。
- 成本与容量:毛收益不是收益。第 01 章的换手示例、第 03 章的因子衰减、第 05 章的成本惩罚、第 06 章的容量曲线、第 07 章的冲击模型、第 08 章的统计套利成本敏感度,讲的是同一件事在不同环节的样子。
1.3 与其他各册的关系
本册不重复前面各册的推导,而是把它们当作「零件库」。下表列出各册在本册中的主要用途。
| 相关册 | 在本册中的用途 | 主要用到的章 |
|---|---|---|
| 第 01 册 线性代数 | 特征分解、条件数、Woodbury 公式、特征值不等式,用于协方差估计和组合优化的数值稳定性 | 本册第 04、05 章 |
| 第 02 册 概率论 | 多元正态、条件期望、随机模拟,是合成数据和风险度量的基础 | 全册 |
| 第 03 册 数理统计 | Bootstrap、多重检验与策略过拟合(第 10b 章)、贝叶斯收缩(第 11、12 章)、交叉验证(第 22b 章),Sharpe 标准误(第 01 章 1.6 节) | 本册第 03、05、06、10、11 章 |
| 第 04 册 数值最优化 | KKT 条件(第 12 章)、二次规划(第 16a、16b 章)、附录 A.3 的因子模型快速求解 | 本册第 05、07 章 |
| 第 05 册 计量经济学 | FWL 定理、面板与聚类标准误、HAC 标准误、岭回归与主成分、单位根与协整 | 本册第 03、08、10 章 |
| 第 06 册 金融时间序列 | 收益率性质、GARCH、VaR 与 EVT、协整与配对交易、因子模型、多元波动率、Kalman 滤波 | 本册第 02、04、08、09、11 章 |
| 第 07 册 市场微观结构 | 订单类型、价差、交易成本度量(第 21a、21b 章)、绩效评估(第 22a、22b 章)、崩盘与熔断 | 本册第 06、07、11 章 |
| 第 08 册 期权期货 | BSM、希腊字母、波动率微笑、方差互换、期货展期、VaR、衍生品事故 | 本册第 09、11 章 |
| 第 09 册 算法与数据结构 | 优先队列与基本数据结构(订单簿)、动态规划(最优执行)、摊还分析(滚动计算) | 本册第 01、07 章 |
| 第 10 册 神经网络 | 反向传播、泛化与提前停止、实际训练问题、金融预测案例 | 本册第 10 章 |
与前面各册存在内容交叉的地方,本册只讲工程用法并给出引用:例如配对交易的协整理论在第 06 册第 08b 章,本册第 08 章只讲筛选中的多重检验、Kalman 对冲比和交易规则;VaR 的定义和回测检验在第 06 册第 07a 章与第 08 册第 22 章,本册第 11 章只讲五种方法的组装和比较。
1.4 本册内部的分工
本册由三位编写者分段完成(第 01–04、05–08、09–11 章),统稿时已核对以下几处容易重复的内容,读者可以按下面的分工只精读一处:
- 验证方法:走步验证和 purged/embargo 交叉验证的原理与基本实现在第 06 章 6.5 节;第 10 章 10.4 节把同一思路用到带重叠标签的机器学习模型上,并加入「真实样本外准确率」作对照。
- Sharpe 的统计误差与过拟合:Sharpe 标准误、自相关调整、块 bootstrap、PSR、DSR、PBO 集中在第 06 章 6.6、6.7 节;第 05 章 5.8 节只用简化的标准误判断方法差异是否显著;第 11 章 11.6 节引用第 06 章,只补充负偏策略和实盘–回测对照。
- 最大回撤:统计性质(随样本长度增长、置信区间)在第 06 章 6.7 节;回撤限额和控制规则在第 11 章 11.5 节。
- 因子与组合:第 03 章负责「信号是否有效」(IC、分组、Fama–MacBeth、衰减与换手、多重检验);第 05 章负责「有了信号怎么变成权重」(alpha 的量纲与收缩、约束、成本惩罚、各种构建方法)。第 03 章 3.7 节的换手估计是第 05 章 5.5 节成本惩罚的输入。
- 交易成本:第 06 章 6.4 节把平方根冲击放进回测并画容量曲线;第 07 章讲成本的度量、估计和最优执行;第 05 章 5.5 节把成本写进优化目标。三处使用同一套参数口径。
2. 前置知识与自测
2.1 开始前应当会什么
本册默认读者已经掌握以下内容;不熟悉的部分,正文在用到时都注明了出处,可以边读边查。
- 概率与统计:期望、方差、协方差、条件期望;正态、t、卡方分布;中心极限定理;OLS 的矩阵形式与 t 检验;p 值和多重检验的基本概念;Bootstrap 的思想。
- 线性代数:矩阵乘法、逆、特征值分解、正定矩阵、Cholesky 分解。
- 时间序列:自相关、AR(1)、平稳性与单位根、GARCH(1,1) 的形式。
- 金融常识:收益率、Sharpe 比率、多空组合、市价单与限价单、期权的看涨看跌。
- 编程:能读写 numpy 和 pandas 代码,理解
groupby、rolling、shift、merge,会用scipy.optimize.minimize。
2.2 自测题
做不出 3 道以上,建议先按 4.3 节的路径回到前面各册补课。
题 1 日收益独立同分布,日 Sharpe 为 0.06。年化 Sharpe 约是多少?若用 10 年日数据估计,年化 Sharpe 的标准误约是多少?
要点:年化 Sharpe 约 \(0.06\times\sqrt{252}\approx0.95\)。正态近似下年化 Sharpe 的标准误约 \(\sqrt{(1+SR^2/2)/\text{年数}}=\sqrt{1.45/10}\approx0.38\)。也就是说,10 年数据下 Sharpe 0.95 的 95% 置信区间大约是 0.2 到 1.7(第 03 册第 01 章 1.6 节,本册第 06 章 6.7 节)。
题 2 用 OLS 对因子 \(x\) 做行业中性化:每期把 \(x\) 对行业哑变量回归取残差。证明此时残差等于「减去行业均值」。若再加入市值作为回归元,还成立吗?
要点:只有哑变量时,设计矩阵的列空间就是「各行业内常数」,投影等于行业均值,残差即去行业均值。加入市值后,残差同时与行业和市值正交,不再等于简单去均值。由 FWL 定理,中性化后再做单变量检验,等价于在回归中加入这些控制变量(第 05 册第 06 章 6.9 节,本册第 03 章 3.3 节)。
题 3 \(N=400\) 只股票,用 \(T=500\) 天收益估计样本协方差并求最小方差组合。样本协方差的条件数会出什么问题?这个组合的预测风险和真实风险哪个更大?
要点:\(q=N/T=0.8\) 很大,样本特征值向两端散开,最小特征值被严重低估,条件数爆炸。最小方差组合恰好把权重放在被低估的方向上,所以预测风险约为最优的 \((1-q)\) 倍、真实风险约为最优的 \(1/(1-q)\) 倍,预测严重偏乐观(本册第 04 章 4.2 节)。
题 4 每天给每只股票打一个「未来 20 日收益」的标签,再用随机打乱的 5 折交叉验证训练树模型。为什么验证分数会偏高?应当怎样改?
要点:相邻样本的标签区间重叠 19 天,特征也高度持续,测试样本的「邻居」几乎必然出现在训练集里,模型只要记住邻居就能得分。应当用连续切块的 K 折,并从训练集中剔除标签区间与测试期重叠的样本(purge),在测试期之后再空出一段禁区(embargo);或者直接用走步验证(本册第 06 章 6.5 节、第 10 章 10.4 节)。
题 5 一笔买入母单的到达价是 10.00 元,决策后价格涨到 10.05 元才开始下单,最终以均价 10.12 元买入 80%,剩余 20% 因价格涨到 10.30 元放弃。写出执行差额的组成。
要点:执行差额以决策时的纸面组合为基准,分为延迟成本(10.00 → 10.05,按已成交部分计)、交易成本(10.05 → 10.12,含冲击和价差)、机会成本(未成交的 20% 按 10.30 − 10.00 计)和显性费用。VWAP 基准看不到延迟成本和机会成本(第 07 册第 21a 章,本册第 07 章 7.2 节)。
3. 章节地图
学时按「读正文 + 跑通代码 + 做基础练习」估计。必学是做任何量化策略都绕不开的环节;选学按研究方向取舍(统计套利、衍生品、机器学习)。本册没有「速读」章节:各章都只讲工程用法,理论推导已经留在前面各册。「前置章节」一栏列出本章最依赖的前 10 册章节,完整列表见各章「延伸阅读」。
| 文件 | 前置章节(前 10 册) | 内容 | 学时 | 标记 |
|---|---|---|---|---|
| 01 量化研究全流程与工程环境 | 第 03 册第 10b 章;第 07 册第 08 章 | 研究循环七环节与理论出处地图、最小端到端示例、Python 工具栈、项目组织与试验日志、可复现性、未来扰动测试 | 5 | 必学 |
| 02 数据 | 第 06 册第 01 章;第 05 册第 10 章;第 03 册第 07、21 章 | 简单与对数收益、复权因子、长表与宽表、停牌与交易日历、幸存者偏差、时点数据与 merge_asof、截尾与标准化 |
5 | 必学 |
| 03 因子研究 | 第 05 册第 06、10、16 章;第 06 册第 09 章;第 03 册第 10b 章 | 因子预处理、行业市值中性化与 FWL、IC/RankIC/ICIR 与 Newey–West、分组回测、Fama–MacBeth 与聚类标准误、衰减与换手、多重检验 | 6 | 必学 |
| 04 风险模型 | 第 01 册第 00、04a 章;第 06 册第 09、10 章;第 04 册附录 A | 维度灾难与 GMV 风险偏差、Ledoit–Wolf 收缩、统计与基本面因子模型、Woodbury、偏差统计量、EWMA 与 DCC、随机矩阵去噪 | 7 | 必学 |
| 05 组合构建与优化 | 第 04 册第 12、16a、16b 章;第 01 册第 04a 章;第 03 册第 11 章 | 均值–方差的误差放大与条件数、数值稳定性、凸约束与影子价格、线性与二次成本、最小方差、ERC、HRP、Black–Litterman、样本外比较 | 8 | 必学 |
| 06 回测方法论 | 第 03 册第 01、08、10b、22b 章;第 07 册第 21a、21b 章 | 向量化与事件驱动回测、四种前视偏差、成本与容量曲线、purged/embargo 交叉验证与走步验证、DSR 与 PBO、指标的置信区间 | 8 | 必学 |
| 07 交易执行与交易成本 | 第 07 册第 04a、14、19、21a、21b 章;第 09 册第 06 章 | 执行差额分解、有效价差与 Roll 估计、平方根律与传播子、TWAP/VWAP、Almgren–Chriss、限价单逆向选择、订单簿模拟器 | 7 | 必学 |
| 08 时间序列与统计套利策略 | 第 06 册第 02a、03a、08b、11a、11b 章;第 05 册第 17b 章 | 方差比与 TSMOM、目标波动策略、配对筛选的多重检验、OU 半衰期与阈值、Kalman 时变对冲比、PCA 残差统计套利 | 7 | 选学 |
| 09 衍生品与波动率策略 | 第 08 册第 15a、15b、19a、19b、20、26b 章 | 可靠的 BSM 与 IV 引擎、SVI 曲面与无套利检查、方差风险溢价、gamma–theta 盈亏分解、期货展期与 carry、尾部对冲 | 8 | 选学 |
| 10 机器学习与神经网络在量化中的应用 | 第 03 册第 22a、22b 章;第 05 册第 14 章;第 10 册第 11、12、13a、22 章 | 时点特征与秩标准化、固定期限与三重障碍标签、平均唯一性、四种验证方案、岭回归/树/神经网络比较、概念漂移与监控、置换重要性 | 8 | 选学 |
| 11 风险管理与绩效评估 | 第 06 册第 07a、07b 章;第 08 册第 22、36 章;第 07 册第 22a、22b、28 章 | 五种 VaR/ES、VaR 与 ES 回测、含期权账户的压力测试、回撤控制、因子归因与 Brinson、Carino 链接、事前风控引擎与事故教训 | 8 | 必学 |
全册约 77 学时,只学必学章节约 47 学时。
4. 学习路径
本册有两种读法,都成立:
- 作为全书最后一册:学完前 10 册后通读本册,把分散在各册的工具装配成一台能运行的机器。这时每一处「见第 XX 册第 YY 章」都是复习,读得最快。
- 作为全书的入口:先读本册第 01 章和第 06 章建立全局观,知道一个量化策略从想法到上线要经过哪些环节、每个环节最容易犯什么错,再带着问题回头学前面各册。第 01 章 1.2 节的「研究循环地图」把每一环对应到前面各册的具体章节,可以直接当作学习前 10 册的目录使用;第 06 章说明了为什么回测结果不可轻信,它是学习统计推断、多重检验和交易成本的最好动机。
下面三条路径分别对应不同的目标。
4.1 量化研究速成路径(约 47 学时)
适合已经有统计和编程基础、想尽快能独立做横截面股票策略研究的读者。按以下顺序学习:
- 第 01 章全读,跑通 1.3 节的端到端示例和 1.7 节的未来扰动测试。把 1.2 节的地图打印出来,后面每章都对照一次。
- 第 02 章精读 2.2 节(复权)、2.4 节(幸存者偏差)、2.5 节(时点数据),2.6 节的截尾方法会用即可。
- 第 03 章全读。这是横截面研究的核心:中性化、IC 与 Newey–West、Fama–MacBeth、换手、多重检验。
- 第 06 章全读。在学组合之前先学回测,是为了从一开始就养成「先怀疑、再相信」的习惯。
- 第 04 章精读 4.2–4.4 节,4.5 节(EWMA、DCC)和 4.6 节(随机矩阵)可略读。
- 第 05 章精读 5.2、5.4、5.5、5.8 节,5.6–5.7 节的几种构建方法会用即可。
- 第 07 章精读 7.2 节(执行差额)和 7.4 节(平方根律),其余节按需阅读。
- 第 11 章精读 11.2–11.3 节(VaR/ES 与回测)和 11.6 节(绩效评估),11.7 节的风控引擎跑通一遍。
4.2 完整系统路径(约 77 学时)
按章节顺序 01 → 11 全读,每章跑通所有代码并做完练习。建议的节奏是每周两章,选学的第 08–10 章可以按兴趣调整顺序:
- 做期货和宏观策略的读者,第 08 章(时间序列动量、波动率择时)和第 09 章 9.6 节(展期与 carry)优先;
- 做股票统计套利的读者,第 08 章 8.4–8.5 节优先;
- 做期权和波动率的读者,第 09 章全读,并配合第 11 章 11.4 节的压力测试;
- 做机器学习选股的读者,第 10 章紧接第 06 章读,两章的验证方法互为补充。
4.3 全局观优先路径(先读本册,再回前面各册)
适合刚开始接触量化、还没有学前 10 册的读者。
- 先读本册第 01 章(5 学时):研究循环、工具栈、可复现性。不必理解每个公式,重点是 1.2 节的地图和 1.3 节的端到端示例。
- 再读本册第 06 章(8 学时):回测的四类偏差、过拟合与 Deflated Sharpe、指标的统计误差。读不懂的推导先跳过,记下出处。
- 回到前面各册:按第 01 章 1.2 节地图上「理论出处」一栏,或第 00 册给出的学习路线学习前 10 册。建议的顺序是第 02、03 册(概率与统计)→ 第 05、06 册(计量与时间序列)→ 第 01、04 册(线性代数与优化)→ 第 07、08 册(微观结构与衍生品)→ 第 09、10 册(算法与神经网络)。
- 每学完一册,回到本册对应的章节:学完第 03、05 册读本册第 03 章;学完第 06 册读第 04、08 章;学完第 04 册读第 05 章;学完第 07 册读第 07 章;学完第 08 册读第 09、11 章;学完第 10 册读第 10 章。
- 最后把本册第 01、06 章重读一遍。第二遍读时,每一处出处引用都应当能对上已经学过的内容。
5. 本册核心公式与概念速查表
| # | 概念 | 公式 / 要点 | 出处 |
|---|---|---|---|
| 1 | 时间约定 | \(t\) 行数据在 \(t\) 日收盘后可得;\(t\) 日形成的权重赚 \(t+1\) 日收益 | 第 01 章 |
| 2 | 换手成本 | 年化成本 ≈ 日均单边换手 × 单位成本 × 252 | 第 01 章 |
| 3 | 未来扰动测试 | 改动 \(t_0\) 之后的数据,\(t_0\) 及之前的信号必须完全不变 | 第 01 章 |
| 4 | 收益口径 | 时间上加对数收益,截面上加简单收益;\(\mathbb E[r]\approx\mathbb E[R]-\tfrac12\mathrm{Var}(R)\) | 第 02 章 |
| 5 | 复权因子 | \(a_t=P_{t-1}/[(P_{t-1}-D_t)/s_t]\),\(A_t=\prod_{u\le t}a_u\);后复权 \(P_tA_t\),前复权 \(P_tA_t/A_T\) | 第 02 章 |
| 6 | MAD 截尾 | \(\mathrm{med}\pm k\cdot1.4826\,\mathrm{MAD}\),常取 \(k=5\) | 第 02 章 |
| 7 | 秩正态化 | \(\Phi^{-1}(\text{百分位秩})\),对单调变换不变 | 第 02 章 |
| 8 | 中性化 | \(\tilde x=(I-B(B^\top WB)^{-1}B^\top W)x\);由 FWL 定理等价于在回归中加控制变量 | 第 03 章 |
| 9 | IC 与 t 值 | \(\mathrm{IC}_t=\mathrm{corr}(x_t,r_{t+1})\);\(t=\mathrm{ICIR}\sqrt T\);重叠持有期用 Newey–West | 第 03 章 |
| 10 | 主动管理基本定律 | \(\mathrm{IR}\approx\mathrm{IC}\sqrt{\mathrm{BR}}\)(理想上限);alpha \(=\mathrm{IC}\cdot\sigma\cdot z\) | 第 03、05 章 |
| 11 | Fama–MacBeth | 每期截面回归得 \(\hat b_t\),\(t=\bar b/(s_b/\sqrt T)\);等价于按时间聚类 | 第 03 章 |
| 12 | 因子衰减与换手 | \(\mathrm{IC}(h)\approx\mathrm{IC}(1)\phi^{h-1}\),半衰期 \(\ln0.5/\ln\phi\);换手 \(\propto\sqrt{1-\rho}\) | 第 03 章 |
| 13 | 多重检验 | Bonferroni/Holm 控制 FWER,BH 控制 FDR;经验门槛 \(\lvert t\rvert>3\) | 第 03 章 |
| 14 | MP 边界 | \(\lambda_\pm=\sigma^2(1\pm\sqrt q)^2\),\(q=N/T\) | 第 04 章 |
| 15 | GMV 风险偏差 | 预测/最优 \(\approx1-q\),真实/最优 \(\approx1/(1-q)\) | 第 04 章 |
| 16 | Ledoit–Wolf 收缩 | \(\hat\Sigma=\hat\delta mI+(1-\hat\delta)S\) | 第 04 章 |
| 17 | 因子风险模型与 Woodbury | \(\Sigma=XFX^\top+D\);\(\Sigma^{-1}=D^{-1}-D^{-1}X(F^{-1}+X^\top D^{-1}X)^{-1}X^\top D^{-1}\) | 第 04 章 |
| 18 | 偏差统计量 | \(b=\mathrm{sd}(r_{p,t}/\hat\sigma_{p,t})\),理想值 1,误差约 \(\sqrt{1/(2T)}\) | 第 04 章 |
| 19 | EWMA 与 DCC | \(\hat\Sigma_t=\lambda\hat\Sigma_{t-1}+(1-\lambda)r_{t-1}r_{t-1}^\top\);\(Q_t=(1-a-b)\bar Q+a\epsilon_{t-1}\epsilon_{t-1}^\top+bQ_{t-1}\) | 第 04 章 |
| 20 | 均值–方差的误差放大 | \(w^*=\frac1{2\lambda}\sum_k\frac{v_k^\top\alpha}{\ell_k}v_k\);相对误差放大上界为 \(\kappa(\Sigma)=\ell_1/\ell_n\) | 第 05 章 |
| 21 | 成本与调仓 | 线性成本 → 不交易区间;二次成本 → 部分调整;成本与收益的时间尺度必须对齐 | 第 05 章 |
| 22 | 风险贡献与 ERC | \(RC_i=w_i(\Sigma w)_i/(w^\top\Sigma w)\),\(\sum_iRC_i=1\);ERC 令各 \(RC_i\) 相等 | 第 05 章 |
| 23 | Black–Litterman | \(\mu_{BL}=[(\tau\Sigma)^{-1}+P^\top\Omega^{-1}P]^{-1}[(\tau\Sigma)^{-1}\pi+P^\top\Omega^{-1}q]\) | 第 05 章 |
| 24 | Sharpe 标准误 | 年化约 \(\sqrt{(1+SR^2/2)/\text{年数}}\)(正态近似);10 年日度约 0.3 | 第 05、06 章 |
| 25 | Lo 自相关调整 | \(SR_{\text{年}}=\eta(q)SR_{\text{日}}\),\(\eta(q)=q/\sqrt{q+2\sum_{k=1}^{q-1}(q-k)\rho_k}\) | 第 06 章 |
| 26 | Deflated Sharpe | \(DSR=\widehat{PSR}(SR_0)\),\(SR_0=\sqrt{\mathbb V[\widehat{SR}_n]}\big((1-\gamma)\Phi^{-1}(1-\tfrac1N)+\gamma\Phi^{-1}(1-\tfrac1{Ne})\big)\) | 第 06 章 |
| 27 | purged/embargo | 标签用到 \([i+1,i+H]\)、测试折 \([a,b]\)、禁区 \(h\) 时,训练集只保留 \(i+H<a\) 或 \(i>b+h\) | 第 06、10 章 |
| 28 | 执行差额 | 纸面组合与实际组合之差 = 延迟成本 + 交易成本 + 机会成本 + 显性费用 | 第 07 章 |
| 29 | 有效价差与 Roll | 有效价差 \(2q_t(P_t-M_t)\);Roll 估计 \(s=2\sqrt{-\mathrm{cov}(\Delta P_t,\Delta P_{t-1})}\) | 第 07 章 |
| 30 | 平方根冲击律 | \(I(Q)/\sigma_d\approx Y(Q/V)^{\delta}\),\(\delta\approx0.5\);总冲击成本 \(\propto Q^{1.5}\) | 第 07 章 |
| 31 | Almgren–Chriss | \(x_k=X\sinh(\kappa(T-t_k))/\sinh(\kappa T)\),\(\tilde\kappa^2=\lambda\sigma^2/\tilde\eta\);\(\lambda=0\) 退化为 TWAP | 第 07 章 |
| 32 | OU 与半衰期 | \(X_{t+1}=a+bX_t+\zeta_t\),\(b=e^{-\kappa}\),\(\sigma_{\text{eq}}=\mathrm{sd}(\zeta)/\sqrt{1-b^2}\),\(h_{1/2}=\ln0.5/\ln b\) | 第 08 章 |
| 33 | s-score | \(s_i=(X_{i,t}-m_i)/\sigma_{\text{eq},i}\);\(s<-1.25\) 开多、\(s>1.25\) 开空 | 第 08 章 |
| 34 | 目标波动 | 仓位 \(w_t=\sigma^*/\hat\sigma_t\),设杠杆上限;期望收益不随波动同比上升时提高 Sharpe | 第 08、11 章 |
| 35 | gamma–theta 分解 | 单期对冲盈亏 \(\approx\tfrac12\Gamma S^2(R_t^2-\sigma_i^2\Delta t)\);累计是 dollar gamma 加权的「实现方差减隐含方差」 | 第 09 章 |
| 36 | 方差互换 | 公平方差由整条虚值期权曲线按 \(1/K^2\) 加权得到,模型无关(第 08 册第 26b 章式 (26.6)) | 第 09 章 |
| 37 | 期货收益分解 | 期货收益 = 现货收益 + 展期收益;展期收益只有在期货价格有偏时才是溢价 | 第 09 章 |
| 38 | 平均唯一性 | 每个时点的标签并发数 \(c_t\),样本唯一性为其区间内 \(1/c_t\) 的平均;有效样本数 ≈ 名义样本数 × 平均唯一性 | 第 10 章 |
| 39 | VaR/ES 回测 | Kupiec \(LR_{uc}\sim\chi^2_1\);Christoffersen 检验独立性;\(Z_2=1-\frac1{T\alpha}\sum_t L_tI_t/\mathrm{ES}_t\) | 第 11 章 |
| 40 | 绩效归因 | 收益型 \(r_t=\alpha+\beta^\top f_t+\varepsilon_t\),贡献 \(\hat\beta_k\bar f_k\);Brinson 分为配置、选择与交互;多期用 Carino 链接 | 第 11 章 |
6. 勘误汇总
6.1 原书错误
本册没有原书底本,因此没有「原书错误」一项。各章的模拟结果都是代码实际运行的输出,正文中的数字与代码输出一致。
6.2 统稿时更正的交叉引用
本册编写时部分前册尚未完成,有些引用按原书章号书写,或指向当时尚未拆分的章节。统稿时已对照最新的全书目录逐条核对并改为实际存在的「第 XX 册第 YY 章」(含 a/b/c 篇),各章节号也逐一核对过目标文件的标题。具体修改如下:
05_组合构建与优化.md:「第 04 册第 16 章」「第 16 章(上、下)」「第 16 章上下篇」共 4 处改为第 16a、16b 章(内点法单指第 16b 章);「第 04 册 16.11 / 16.11.1 / 16.11.2 节」共 4 处补上所在的第 16b 章。06_回测方法论.md:「第 07 册 21.6 节」补为第 21b 章 21.6 节。07_交易执行与交易成本.md:「第 04 册第 16 章」2 处改为第 16a 章(无约束二次规划)和第 16a、16b 章(二次规划);「第 07 册 21.4 节」「21.2.2 节」补为第 21a 章。09_衍生品与波动率策略.md:「第 08 册式 (26.6)」2 处补为第 08 册第 26b 章式 (26.6);「回撤规则(本册第 11 章 11.4 节)」改为 11.5 节(11.4 节是压力测试,回撤控制在 11.5 节)。10_机器学习与神经网络在量化中的应用.md:「第 10 册第 11–13 章(按原书章号)」改为第 11、12、13a、13b 章;「第 10 册第 13 章」2 处改为第 13a 章;延伸阅读中删去两处「按原书章号」的过渡说法。- 全册:本册内部的章引用统一写成「本册第 NN 章」(第 01–08 章约 50 处原写作「第 NN 章」);第 01 章 1.2 节地图和 1.4 节工具栈表中「本册」一栏保持原样。
01–04章:「常见陷阱与检查清单」补上节号(1.9、2.7、3.9、4.7),与第 05–11 章一致。
6.3 统稿时补充的衔接
05_组合构建与优化.md5.2 节:Grinold 公式处补充「IC 的估计见本册第 03 章 3.4 节」;5.8 节 Sharpe 标准误处补充「含偏度、峰度与自相关修正的完整处理见本册第 06 章 6.7 节」。11_风险管理与绩效评估.md11.5.1 节:补一句承接第 06 章 6.7 节关于最大回撤统计性质的讨论,说明本节转向限额与控制规则。04_风险模型.md4.1 节末:补充说明本章代码须在同一会话中按顺序运行,以及后面各段依赖的函数定义在哪一节。
6.4 口径说明与需要注意的地方
- 第 05、06 章的 Sharpe 标准误用正态近似 \(\sqrt{(1+SR^2/2)/\text{年数}}\)。负偏、厚尾的策略(如第 09 章的卖方差)应当用第 03 册第 01 章 1.6.2 节含偏度、峰度修正的版本,第 11 章 11.6 节对此有提醒。
- 第 04 章与第 05 章都讨论样本协方差的条件数:第 04 章从估计角度(特征值偏差、GMV 风险偏差),第 05 章从优化角度(误差放大上界、按块降低条件数),两处结论一致,可互相印证。
- 第 08 章的 OU 过程与第 08 册第 31 章的 Vasicek 利率模型是同一个过程,参数记号不同(本册 \(b=e^{-\kappa}\) 为离散 AR 系数)。
- 第 10 章的 purged K 折实现按每个样本的标签区间 \([t_0,t_1]\) 剔除,可用于三重障碍这类长度不定的标签;第 06 章按固定持有期 \(H\) 剔除,是它在固定期限标签下的特例。
6.5 建议人工核对
- 正文引用的事故数字和文献细节(如第 11 章 11.7 节 Knight Capital 的亏损金额与持续时间、2010 年闪电崩盘的跌幅,第 05 章的 Chopra–Ziemba 1993,第 11 章的 Grossman–Zhou 1993,第 10 章的 Gu–Kelly–Xiu 2020),出版前建议对照原始文献核对年份、卷期和数字。
- 各章模拟输出在 numpy/pandas/scikit-learn 版本变化时可能在末几位小数上不同;第 10 章的神经网络和梯度提升树结果对版本更敏感,排序结论应当不变,具体 IC 数值可能略有差异。
7. 配套代码说明
7.1 运行环境
本册 66 段 Python 代码全部使用代码内生成的合成数据、固定随机种子,不需要下载行情。合成数据保留了真实市场的关键特征(厚尾、波动聚集、因子结构、交易成本),各章都写明了它与真实数据的差别;模拟出来的收益只用于说明方法,不代表真实市场能获得的收益。
pip install numpy pandas scipy statsmodels scikit-learn arch
编写时已在 Python 3.14、numpy 2.5、pandas 3.0、scipy 1.18、statsmodels 0.15、scikit-learn 1.9、arch 8.0 下逐段运行通过。除第 10 章全章约需 6 分钟(前推训练树模型与神经网络)外,其余各章都能在较短时间内跑完。各章用到的库如下:
| 章 | 代码段数 | 主要库 |
|---|---|---|
| 01 | 5 | numpy、pandas、scipy |
| 02 | 5 | numpy、pandas、scipy |
| 03 | 7 | numpy、pandas、scipy、statsmodels |
| 04 | 5 | numpy、pandas、scipy、scikit-learn、arch |
| 05 | 7 | numpy、pandas、scipy |
| 06 | 7 | numpy、pandas、scipy、scikit-learn |
| 07 | 7 | numpy、pandas、scipy |
| 08 | 5 | numpy、pandas、statsmodels、arch |
| 09 | 6 | numpy、pandas、scipy、statsmodels |
| 10 | 6 | numpy、pandas、scipy、scikit-learn |
| 11 | 6 | numpy、pandas、scipy、statsmodels、arch |
7.2 代码之间的依赖
各章之间互不依赖:本册每章代码都是自包含的,不 import 其他章节的文件,也不需要先运行其他章的代码。章内的依赖如下,运行时请在同一个 Python 会话(例如一个 Jupyter notebook)中按顺序执行:
- 第 01 章:全部代码按顺序在同一会话中运行,后面的代码块用到前面生成的
R、S_obs等变量。 - 第 02 章:每段代码独立。
- 第 03 章:全部代码按顺序在同一会话中运行(第一段生成合成面板,后续各段定义并使用
mad_z、quantile_backtest等函数)。 - 第 04 章:按顺序在同一会话中运行。4.2 节的代码定义了
make_true_cov、gmv和随机数生成器rng,后面各段都会用到;4.6 节的代码还要用到 4.4 节定义的pca_model。 - 第 05 章:先运行代码 5.0(公共数据生成器和工具函数),代码 5.1–5.5 各自只依赖 5.0;代码 5.6 还需要代码 5.4 中 ERC、HRP 等函数的定义。
- 第 06 章:先运行代码 6.0(带开盘价的合成日线),代码 6.1–6.6 各自只依赖 6.0。
- 第 07、08、09 章:每段代码独立。
- 第 10 章:先运行代码 10.1(合成面板与特征),代码 10.4–10.6 在同一会话中接着运行,使用
R, F, X, y, fwd, mu_true, feat_names, T, N, H等变量;代码 10.2、10.3 独立。 - 第 11 章:代码 11.2 接在代码 11.1 之后运行(使用
L, out, idx, p_var, p_es);其余各段独立。
练习中有几处跨章组合(如第 08 章练习 8 把第 06 章代码 6.3 的平方根冲击模型加到代码 8.5 上),需要读者自己把相应函数复制过来。