1. 课程导入与数据对象界定
在量化投研、交易系统开发与数据中台建设中,交易日历与停复牌数据往往被归入"基础数据"一类,看起来简单,却几乎影响所有下游计算。一个回测策略的净值曲线、一只股票的复权因子、一次组合的持仓估值,甚至一条风控规则的触发时点,都依赖"某一天市场是否开市""某只股票当天能否交易"这两个判断。如果这两类数据出现偏差,后续再精细的模型也会建立在错误的时间轴上。因此本课程的第一节,先把这两类数据对象的业务含义、来源、处理目标和学习路径界定清楚,为后续章节的清洗、对齐与校验打下共同语言。
两类数据对象的业务含义
交易日历描述的是市场层面的"时间可用性"。它回答的核心问题是:在给定日期区间内,哪些自然日是交易日,哪些是休市日;交易日内的开市、收市、集合竞价等关键时点如何划分;不同市场(如上交所、深交所、北交所,乃至港股、美股)的节假日安排是否一致。交易日历不是简单的"周一到周五",因为法定节假日调休、临时休市、半日市等情况都会打破这一规律。它本质上是一张以日期为主键、以交易状态和时段为属性的维表。
停复牌数据描述的是证券层面的"个体可用性"。它回答的是:某只证券在某一天是否处于停牌状态、停牌原因是什么、是全天停牌还是盘中临时停牌、何时复牌。停牌可能由重大资产重组、信息披露、异常波动核查、股东大会等事件引发,持续时间从几分钟到数月不等。与交易日历的"市场统一"不同,停复牌是"逐证券、逐日"的稀疏事件数据,需要以证券代码和日期共同定位。
两者结合,才能完整回答"某证券在某日是否可交易"这一业务问题:先由交易日历判断当天是否开市,再由停复牌数据判断该证券当天是否可交易。缺少任何一方,判断都不完整。
数据来源与形态
在实际工程中,这两类数据通常来自交易所公告、行情资讯商接口或内部数据平台。交易日历多以年度或月度为单位发布,字段包括日期、是否交易日、前一交易日、下一交易日等;停复牌数据则以事件或日度快照形式提供,字段包括证券代码、停牌日期、复牌日期、停牌类型、公告日期等。需要特别注意的是,不同来源对"停牌起始日是否计入交易日""复牌日当天是否可交易"的口径可能不同,这正是后续清洗章节要重点处理的问题。
下面的示意图梳理了从数据来源到业务判断的整体关系:交易日历与停复牌数据分别从市场维度和证券维度进入,经过对齐后共同支撑"可交易性判断",并向下游的行情、估值、回测等场景输出。
处理目标:从原始数据到可信时间轴
把这两类数据"拿到手"并不等于"能用"。处理目标可以概括为三个层次。第一层是完整性:交易日历要覆盖目标区间内每一个自然日,不能有缺失日期;停复牌数据要能覆盖目标证券池,且停牌区间与复牌日期首尾衔接。第二层是一致性:同一日期在不同来源中的交易状态要一致,停牌区间的起止口径要统一,避免出现"日历说开市、停牌表却把当天当作休市"的矛盾。第三层是可用性:数据要能被下游以稳定接口查询,例如给定证券和日期区间,快速返回可交易日序列与可交易标记。
以教学示例说明:假设我们要为某只股票构建 2024 年 1 月至 3 月的可交易序列。交易日历显示 1 月 1 日为休市,2 月 9 日至 2 月 17 日为春节休市;停复牌数据显示该股票 2 月 20 日起停牌、3 月 5 日复牌。那么可交易序列应剔除休市日,并在 2 月 20 日至 3 月 4 日区间标记为不可交易,3 月 5 日起恢复。这里的关键不是计算本身,而是明确"复牌日当天是否可交易"的口径——本课程约定复牌日当天可交易,并在全文与图示中保持一致。上述日期与结论均为示例假设,用于说明处理逻辑,不代表真实市场安排。
整体学习路径
基于以上界定,本课程后续将沿着"认识对象—获取与清洗—对齐与校验—应用与复盘"的路径展开。先分别讲透交易日历和停复牌数据的字段语义与常见坑,再进入实际的数据获取、格式统一、缺失与冲突处理,随后讲解如何把两类数据对齐成可交易判断,最后落到回测、估值、风控等真实场景中的使用方式与异常排查。每一节都会围绕具体对象、具体字段和具体判断条件展开,而不是停留在概念层面。
需要强调的是,交易日历与停复牌数据虽然体量不大,但它们是典型的"高杠杆"基础数据:一处口径错误,会在成百上千只证券、数千个交易日上被放大。因此本课程在讲解处理方法时,会反复回到"口径定义"和"结果可验证"这两个原则,帮助读者建立可复现、可审计的数据处理习惯。