什么是交易日历?
简单来说,它就是一份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()

