一、四层结构,缺一层都跑不起来

量化系统通常由四部分组成:数据层负责获取与清洗行情;规则层把交易想法翻译成明确条件;执行层负责下单、撮合或模拟撮合;评估层负责统计结果并解释原因。四层之间靠统一的字段与口径衔接。

很多项目一开始只关注规则层,写出一段条件判断就认为完成了策略。真正上线后才发现,数据字段对不上、成交假设过于乐观、评估指标无法复现,问题逐层暴露。

二、数据层:先定义口径,再谈策略

数据层至少要回答三个问题:标的范围是什么、时间跨度有多长、复权与停牌如何处理。这些问题没有标准答案,但必须在项目开始时固定下来,并写进数据字典。

同一段逻辑,用前复权和不复权数据跑出来的结果可能完全不同。若口径没有记录,后续换人接手时几乎无法判断差异来自策略还是数据。

  • 字段定义:开高低收、成交量、成交额与复权因子
  • 时间口径:交易日历、时区与停牌标记
  • 版本管理:数据快照与清洗规则可回溯

三、规则层:把模糊描述变成可判定条件

“趋势向上时参与”不是规则,因为它无法被代码判定。可执行的规则需要明确指标、窗口、阈值与比较方式,例如“收盘价高于二十日均线,且二十日均线高于六十日均线”。

规则还要写清仓位与退出条件。只写进入条件、不写退出与仓位,回测结果就无法解释,也无法判断是逻辑有效还是参数偶然。

四、执行层与评估层:把理想假设拉回现实

回测中的成交假设决定结果的可信度。以收盘价成交、忽略滑点与手续费、假设任意时刻都能成交,都会系统性地高估结果。评估层则负责把收益、回撤、换手与成本分开呈现。

评估的目的不是证明策略“行”,而是回答它在什么条件下表现如何、成本来自哪里、结果能否被复现。指标只是描述,不是结论。

五、从想法到可运行代码的最小清单

一个可交付的最小版本,通常包含:数据读取与校验、规则计算、仓位与费用模型、结果输出、运行说明。每一部分都要能单独运行与单独检查。

如果团队只有一个人,也建议把数据、规则、评估拆成不同文件或模块。拆分不是为了架构好看,而是为了出问题时能定位到具体一层。

  • 一份固定的样例数据与预期输出
  • 一份说明参数含义与默认值的配置文件
  • 一份记录数据来源、复权方式与运行环境的说明

六、可复现比“看起来聪明”更重要

研究过程中最容易被忽略的是记录:改过哪个参数、换过哪段数据、为什么放弃某个版本。没有记录,三个月后连自己都无法解释结果是怎么来的。

可复现的最低要求是:同一份输入、同一套配置,任何人按说明都能得到同一份输出。做到这一点之后,讨论策略好坏才有共同基础。