981 字
5 分钟
第 1 章:回测与自动化执行——策略的滤网
Chan 对回测的定位冷静得近乎泼冷水:回测的价值不在证明策略能赚钱,而在筛掉一定会亏钱的策略。通过回测只是拿到了准考证,不是录取通知书。
回测为什么会骗人:三大偏差
- 前视偏差(Look-ahead bias):用了决策时刻还不存在的信息。最常见的形态不是”偷看明天”这么明显,而是用当日收盘价计算信号、又假设按当日收盘价成交——信号算完市场已收盘。解法:信号永远用 T-1 及更早的数据,成交发生在 T。本平台回测引擎正是这么做的:前一日收盘决定持仓、当日结算收益;
- 数据窥探偏差(Data-snooping bias):同一份数据上反复调参,总能调出一条漂亮曲线。Chan 的药方朴素而有效:参数越少越好、模型越线性越好,再留出样本外数据验证。他有一句反直觉的话:样本外表现略差是正常的,样本外反而更好才可疑;
- 幸存者偏差(Survivorship bias):用”今天还活着的股票”回测历史,等于提前知道谁能活下来。对做多低价股、抄底类策略的高估尤其严重。
容易被忽视的数据细节
- 股票:拆股与分红必须复权,否则除权日会出现一根假暴跌——本平台把复权放在读取时(hfq 因子 × 未复权价),存储层永远是原始价,正是 Chan 推荐的做法;
- 期货:连续合约是人工拼接的,换月缺口若不回填调整,会凭空制造趋势或反转;
- 报价源:用主交易所报价还是全市场合并报价,高频策略结果可能天差地别;
- 做空约束:回测里”卖空”一行代码,实盘要有券可融——A 股个股融券池窄且贵,任何含做空腿的回测都要打折看。
回测显著性:这条曲线是运气吗
Chan 引入假设检验的视角:把”策略无效”当零假设,检验回测收益是否显著异于零。更实用的是蒙特卡洛检验——随机打乱入场时点或用随机信号跑同样的规则,若真策略跑不赢大多数随机对照组,那条漂亮曲线多半是运气。
但他同时警告:统计显著也不保证未来——政体转换(regime shift)会让一个真实存在过的规律失效。2008 年前后许多均值回归策略的参数完全变了。回测检验的是”过去是否为真”,不是”未来是否为真”。
自动化执行
策略验证后要能自动跑:从”收数据 → 算信号 → 下单”全链路无人值守。Chan 强调自动化不是为了炫技,而是为了纪律——手动执行迟早会在亏损日”再等等看”。本平台的调度守护进程(收盘后自动增量更新)正是这条链路的前半段。
对应本平台
- 回测引擎的 T-1 决策、双边换手成本,就是本章前视偏差与成本教训的代码化;
- 用
--cost 0.001 / 0.003跑两遍同一策略,是最便宜的”稳健性检验”; - 想复现蒙特卡洛检验:把因子值随机打乱后再跑回测,对照真因子的净值曲线。
本章带走的三句话
- 回测是滤网不是证明:它只能筛掉坏策略,不能担保好策略;
- 三大偏差各有一把钥匙——前视靠 T-1 决策,窥探靠少参数加样本外,幸存者靠全样本数据;
- 统计显著只说明”过去为真”,政体转换随时可以没收未来。