首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >量化补数据别拿工作日当交易日:用交易日历避开假缺口

量化补数据别拿工作日当交易日:用交易日历避开假缺口

原创
作者头像
量化行业新引擎
发布于 2026-09-29 10:19:53
发布于 2026-09-29 10:19:53
520
举报
文章被收录于专栏:AI量化视界AI量化视界

做日更行情时,有个误判很常见:程序发现某天没有K线,就当成接口漏数,反复重试甚至用前一日收盘价补齐。问题往往不在数据源,而是代码把“周一到周五”直接当成了交易日。

上交所、深交所公布的2026年安排显示,国庆节10月1日至7日休市,10月8日起开市;9月20日、10月10日虽然是调休工作日,证券市场仍休市。可见办公日历和交易日历不是一回事。pd.date_range(freq="B") 只能排除普通周末,识别不了交易所休市。

按开市日检查缺口

我会把官方日历保存成一张表,至少包含 trade_date 和 is_open,补数据前先筛出应有日期,再与本地行情做集合差:

代码语言:javascript
复制
calendar = pd.read_csv("trade_calendar.csv")
open_days = set(pd.to_datetime(
    calendar.loc[calendar.is_open == 1, "trade_date"]
))
have_days = set(pd.to_datetime(bars["trade_date"]))
missing = sorted(open_days - have_days)

检查区间也要限制好:起点取本地首条行情日期,终点取最近一个已经结束的交易日。否则拿全年日历比较,会把未来日期也报成缺失。

日历也需要版本管理

交易日历不应永久写死在代码中。每年根据交易所公告更新,并记录来源、更新时间和适用市场。港股通、期货和海外市场也不能共用A股日历,因为休市与交收安排可能不同。

多维护一张小表,可以避免无效重试、错误告警,以及把休市日补成“零成交K线”后污染收益率。量化补数的第一步不是下载,而是先判断这一天是否本来就该有数据。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 按开市日检查缺口
  • 日历也需要版本管理
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档