因子投资-18-回测偏差交易成本与容量

QUANT RESEARCH NOTE LESSON 18

回测收益常在三处被虚增:信息提前、失败样本消失、交易假设过于理想。统计显著不能修复这些结构错误。本讲用时间线审计未来函数、幸存者偏差、修订与选择,再把毛收益转换为含成本和容量的净收益。

类型核心课程
模块研究工程
阅读约 5 分钟
材料10 节 · 1 段代码

本节解决什么问题

回测收益常在三处被虚增:信息提前、失败样本消失、交易假设过于理想。统计显著不能修复这些结构错误。本讲用时间线审计未来函数、幸存者偏差、修订与选择,再把毛收益转换为含成本和容量的净收益。

前置知识与学习目标

需要第 08、17 讲。学完后能识别未来函数、幸存者/选择偏差与过拟合,能分解佣金、卖出印花税、滑点、冲击和借券成本,并用成交额参与率做容量情景。

直觉与手算

策略月毛收益 1%,单边换手 80%。假设买卖佣金各 3bp、卖出印花税 5bp、双边平均滑点各 10bp。粗略每月成本:

净收益约 0.752%。若交易量放大使冲击再增加 30bp,净收益只剩 0.452%。毛 Sharpe 不代表资金可实现 Sharpe。

时间线同样重要:财报 4 月 28 日盘后公告、4 月 30 日形成月末信号、5 月首日成交,收益从成交后开始。任何把它放回 3 月 31 日的连接都是未来函数。

定义与公式

五类偏差

  1. 未来函数: 决策使用当时未公开数据、未来成分或同收盘成交。
  2. 幸存者偏差: 只保留期末仍上市、仍存续基金或有完整历史者。
  3. 数据修订偏差: 使用后来重述财报、回填行业或最终复权版本。
  4. 选择偏差: 样本进入规则与未来结果相关,如删除退市收益缺失股票。
  5. 过拟合/数据窥探: 同一样本反复选变量、参数和起止点。

审计时间线:

成本模型

令买入、卖出权重分别为 B(t)、S(t):

印花税通常方向不对称;费率需按历史日期与品种重建。冲击可用参与率的非线性函数:

Q 是订单金额,ADV 是平均日成交额,σ 是波动代理。它是情景模型,不是普遍定律。

容量

设每只股票最大日成交额参与率 p,允许 D 天完成,目标权重绝对值 |w(i)|,则资金规模 AUM 必须近似满足:

真正容量还受价格冲击、组合集中、赎回、涨跌停和借券限制影响。应报告净 Alpha 随 AUM 的曲线,而非单一容量数字。

Python 最小实验

PYTHON 可复现实验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import numpy as np

gross = np.array([0.012, 0.008, -0.006, 0.015])
buy = np.array([0.4, 0.7, 0.5, 0.6])
sell = np.array([0.4, 0.7, 0.5, 0.6])
commission = 0.0003
stamp_tax = 0.0005
slippage = 0.0010

cost = (
commission * (buy + sell)
+ stamp_tax * sell
+ slippage * (buy + sell)
)
net = gross - cost

assert np.all(net <= gross)
print(cost, gross.mean(), net.mean())

A 股实现注意事项

历史佣金下限、过户费、印花税、涨跌停幅度、T+1、融资融券和板块制度会变化,不能用今天参数覆盖全历史。停牌、涨停买不到、跌停卖不出需要订单状态机;“成交额足够”也不保证收盘价成交。微盘策略容量应以个股尾部 ADV 和压力日流动性约束。

常见错误与边界

  • 今天成分回溯、报告期连接、同收盘成交。
  • 退市股票最后一天无损消失。
  • 交易成本只用佣金,忽略税、价差、冲击和借券。
  • 用平均成交额估容量,忽略最拥挤持仓。
  • 先看结果再选择成本参数。
  • 最终测试集反复查看。
  • 净收益高于毛收益却没有返佣/做市机制解释。

成本模型也可能过拟合。保守、中性、乐观三组参数和实际成交校准比精细但不可验证的冲击公式更诚实。

原书与论文

原书第 5 章(192–223)是实践风险主线,第 7 章(291–377)讨论前沿。Hou、Xue、Zhang(2020)复现异象:DOI;McLean、Pontiff(2016)研究发现与发表后衰减:DOI。

练习

  1. 画财报、信号、成交、收益时间轴并列出可用字段。
  2. 用当前存续股票与历史股票池回测同一信号。
  3. 对 10/30/100bp 滑点和 1%/5%/10% 参与率做二维情景。
  4. 加入退市损失和无法卖出天数。
  5. 写一份不查看最终测试集的模型选择协议。

小结与下一步

回测先审信息与样本,再谈统计;先算可成交毛收益,再扣完整成本与容量。未来函数和幸存者偏差会制造不存在的信号,冲击和约束会把纸面 Alpha 变成更小净收益。下一讲进入风险模型、优化与归因。


因子投资-18-回测偏差交易成本与容量
https://www.polarishaw.top/2026/07/17/因子投资-18-回测偏差交易成本与容量/
作者
Polaris
发布于
2026年7月17日
许可协议