量化人必备工具:一键获取A股交易日历

用户头像sh_***388rgt
2025-11-25 发布

什么是交易日历?

简单来说,它就是一份A股市场开门营业的日期清单。这份日历排除了所有周六、周日以及国家法定节假日,只保留真实的交易日子。

为什么它如此重要?

回测准确性的基石:确保你的策略只在真实交易日期进行买卖计算,避免在节假日产生“幽灵交易”。

数据对齐与清洗:在下载历史行情数据时,用它作为基准日期轴,轻松识别并过滤掉数据中的缺失日期(即非交易日)。

任务调度与自动化:如果你写了一个定时运行的脚本,可以用它来判断今天是否是交易日,从而决定是否执行数据下载或分析任务。

如何用Baostock免费获取?

无需手动查找整理,我发现Baostock提供了非常便捷的 query_trade_dates 接口,几行Python代码就能搞定!

import baostock as bs
import pandas as pd

#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)

#### 获取交易日信息 ####
rs = bs.query_trade_dates(start_date="2024-01-01", end_date="2024-12-31")
print('query_trade_dates respond error_code:'+rs.error_code)
print('query_trade_dates respond  error_msg:'+rs.error_msg)

#### 打印结果集 ####
data_list = []
while (rs.error_code == '0') & rs.next():
    # 获取一条记录,将记录合并在一起
    data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)

#### 结果集输出到csv文件 ####   
result.to_csv("D:\\trade_datas.csv", encoding="gbk", index=False)
print(result)

#### 登出系统 ####
bs.logout()

评论