跳转至

陈第 3 章 → M03

书:Ernest P. Chan,《量化交易——从入门到精通》第 3 章。 对应教材:M03 数据与回测工程 笔记记回测陷阱怎样落到本仓库的时点和费用,不摘录原文。

原书核心命题与论证链

陈把回测写成一条会在细节上撒谎的流水线:复权、成交时点、成本和参数搜索都会把曲线抬高。教材用同一条 SPY 10 个月均线把前视量化出来:shift(1) 的夏普是 0.51,用当月收盘赚当月是 1.77。书里的警告停留在例子,这个差额是种子数据上的计算结果,不是书中的表。 参数搜索在书里对应「高原而不是孤岛」。教材的 6 到 18 个月夏普落在 0.51 到 0.71,没有孤峰,但 10 个月在这窗里是谷底。全样本最高的 18 个月不能叫做样本外。五年滚动里冠军长度从 8 跳到 15,接起来的夏普 0.74 仍低于同一段买入持有的 0.82。 陈用具体券商费率说明小账户的最低收费。教材把费率写成 FeeSchedule 的输入,并要求 label 说明它不是券商合同。港股印花税用买卖各方 0.1%。其他征费以港交所收费表为准,教学合计数 0.85 个基点会过期。 docs/workflow.md 开头写明,本轮不把夏普 > 1 当作通用门槛。若书里或旧讲义把某个夏普写成准入线,以仓库这份流程文件的开头为准。 第 3 章把回测看成一条会在细节上撒谎的流水线。复权方式、成交时点、成本和参数搜索都能把曲线抬高。教材用同一条均线把其中的时点谎言算成两个夏普,并用滚动说明「高原」仍不等于样本外战胜买入持有。

个人港美股账户裁剪提示。同一根 K 线既发信号又算盈亏,就是前视。引擎已经把成交放到下一期时,策略里不要再延迟一次。下单用未复权价;新分红若重写历史,旧信号就变了。全样本里夏普最高的参数长度不是样本外。

原书与本仓库教材(M03)对照表

陈第 3 章 教材
流水线会撒谎 10 个月均线:推迟成交夏普 0.51,用当月收盘是 1.77
高原不是孤岛 6 到 18 个月的夏普在 0.51 到 0.71
券商费率举例 写成费用表的输入,并要求标签
可能把某个夏普当门槛 流程文件开头不用夏普大于 1

五年滚动里冠军长度从 8 跳到 15。接起来的夏普 0.74 仍低于同期买入持有的 0.82。1.77 与 0.51 是种子上的计算,不是书中的表。

精读重点与可跳过部分

精读时盯住这些段落。

  • 成交价用的是信号形成之前还是之后。
  • 参数搜索的例子里,测试段有没有参加挑选。
  • 小账户最低收费怎样改变表面费率。

这些部分可以跳过。

  • 某一家券商在印刷当年的价目。记下结构即可。
  • 把 1.77 当成优化成功。
  • 教学用的其他征费合计。那个基点数会过期,以收费表为准。

回到教材与代码的核对清单

  1. 0.51 是 shift(1) 或交给引擎下一交易日之后的夏普。
  2. 1.77 是前视对照。
  3. 18 个月的 0.71 是全样本里较高的一档,不是样本外。
  4. 滚动夏普 0.74 对买入持有 0.82。
  5. 港股印花税买卖各方 0.1%。其他征费另列。
  6. 流程文件的开头优先于书里或旧讲义的夏普门槛。