第 11 课 · 我们的机器:八个部件与”层层设卡”

【这课你会明白什么】

  • 从原始档案到最终判决,数据流过哪八个工位
  • 每个部件是怎么被独立验收的
  • “结论的可信度=脚下最不可信的那一层”这句话的分量

正文

前十课的概念现在可以拼成一张全景图。工厂里,数据沿着八个工位流动:

① 原始档案库。18GB 的 .scid 逐笔文件(第 5 课),只进不改,是一切的原件。

② 翻译官(解析器)。把二进制档案逐字节翻译成程序能算的表格。验收方式:第 6 课那桩侦探案——165 笔独立日志 100% 匹配。它管着地基,所以用了最重的证据。

③ 库存审计员(盘点)。扫描全部文件,输出覆盖范围、空洞、异常清单。战果:抓出 2025 年 7–9 月的空洞和那 28,723 条混入记录(第 5 课)。它把”我以为有”变成”我确认有”。

④ 粮仓(Parquet 转换)。把 12GB 逐笔转存成 1.29GB 的列式仓库。行式存储像流水账(一条记录的所有字段挨在一起),列式像把同类货物打包上架——研究通常”只要价格这一列”,列式只搬这一包货,读取快一个量级。原则:转换中剔除的每条脏数据都逐条记数写进报告——清洗必须留痕。

⑤ 磨坊(K 线聚合)。把逐笔磨成任意周期的 K 线(第 5 课)。验收方式:拿手工算好答案的人造数据喂它,输出必须精确一致。约定:没成交的时段不造空 K 线——宁缺毋假。

⑥ 缝纫师(连续合约)。把一段段合约用第 6 课的复权法缝成连续序列。验收方式:双文件拼接价差恰好 0.00 那次自检。

⑦ 考场(回测引擎)。执行第 7 课的六条反放水规则。验收方式:7 个手算场景,分毫不差。

⑧ 考试院(检验框架)。组织 walk-forward、按预注册协议执行门槛评分、管理台账与考试额度(第 9、10 课)。它还有一项特殊职责——给考试本身出一次考试,第 13 课揭晓那是什么。

现在说这张图的灵魂:层层设卡

回测结论的可信度 = 它脚下最不可信的那一层。

翻译官错一个字节、缝纫师漏一道缝、考场开一个后门——楼上无论多精密的统计都是空中楼阁。所以每一层都必须有独立于它自己的验收证据:翻译官靠外部日志、磨坊靠手算答案、缝纫师靠两条独立数据链、考场靠手算场景。”独立”是关键——用一个部件的输出去验证它自己,等于同一个人出题又阅卷(第 6 课已经见过这个原则)。

将来你看到”期望 −0.84 点/笔”这样的判决敢不敢信,取决于这串数字脚下的每一层是否都被这样审过。我们的答案是:都审过,且证据都在报告里。

【与我们项目的连接】

八个工位对应仓库里的真实文件:scid.py(翻译官)、inventory.py(审计员)、scid_to_parquet.py(粮仓)、bars.py(磨坊)、continuous.pylonghist.py(缝纫师)、backtest.py(考场)、wf.py(考试院)。《初学者手册》第二部分是每个部件的详细档案——读完本课程后,它是你的进阶参考。

【三个自测问题】

  1. “可信度=最不可信的一层”——请用翻译官举一个例子。
  2. 为什么每层的验收证据必须”独立”?
  3. 列式粮仓为什么比行式流水账快?

(答案:1. 若解析器把时间字段翻译错 1 小时,则所有”开盘后 60 分钟”类规则全部错位,之后的回测、统计再严谨也全部作废。2. 用部件自己的输出验证自己=出题人兼阅卷人,错误会自我掩盖;独立证据链(外部日志、手算答案)才能暴露它。3. 研究查询通常只需要少数几列,列式只读那几包货,还能整段跳过无关时间,行式则要翻整个仓库。)