Tushare接口文档:交易日历(trade_cal)

简介: 本文旨在对Tushare的交易日历trade_cal数据接口进行介绍,提供更多参考示例和使用说明。交易日历可以用来作为获取其他数据的关键(迭代)参数,也可以进行其他的应用。本文还基于交易日介绍了如何获取每周及每月最后一个交易日。
  • 功能描述:获取股票及期货交易所交易日历数据,默认提取的是上交所
  • 返回限量:一次请求足以获取单一交易所所有的交易日历
  • 接口权限:每分钟访问次数因用户积分不同而不同
  • 说明

   1. 该数据从1991/01/01开始,每年年底以国家披露次年假期进行更新

   2. 该数据包含的是整年数据,例如2027/07/11日也可获取2026/12/31日的记录

   3. tushare的数据接口中,很多是以交易日、周最后一个交易日、月最后一个交易日作为传入参数来获取数据的,trade_cal接口在此就起到了关键性作用


输入参数:

名称

类型

必选

描述

exchange

str

N

交易所代码:SSE-上交所、SZSE-深交所、CFFEX-中金所、SHFE-上期所、CZCE-郑商所、DCE-大商所、INE-上能源

start_date

str

N

开始日期(格式:YYYYMMDD 下同)

end_date

str

N

结束日期

is_open

str

N

是否开市:'0'-休市、'1'-开市


输出参数:

名称

类型

默认显示

描述

exchange

str

Y

交易所代码

cal_date

str

Y

日历日期

is_open

str

Y

是否开市

pretrade_date

str

Y

上一个交易日


接口示例:

示例1:全默认参数

如果是对A股交易日的获取,通常情况下仅使用上交所交易日历足矣,此时仅使用默认参数将所有的交易日历获取之后存储在本地就可以在当年一直使用了。

import tushare as ts
pro = ts.pro_api()
df = pro.trade_cal()
df

输出结果:

exchange        cal_date        is_open        pretrade_date
0        SSE        20261231        1        20261230
1        SSE        20261230        1        20261229
2        SSE        20261229        1        20261228
3        SSE        20261228        1        20261225
4        SSE        20261227        0        20261225
...        ...        ...        ...        ...
13157        SSE        19901223        0        19901221
13158        SSE        19901222        0        19901221
13159        SSE        19901221        1        19901220
13160        SSE        19901220        1        19901219
13161        SSE        19901219        1        None
13162 rows × 4 columns

示例2:获取中金所一段时间里仅开市的交易日

向交易日历trade_cal接口传入exchange可指定交易所,传入start_dateend_date可指定时间段,传入is_open可仅获取开市的交易日。

由于年中的时候也能够获取到全年的交易日,所以如果不用日期进行限定的话可能会导致使用了未来交易日去请求数据,虽然请求了空数据问题不大,可以使用两种方案来杜绝这种无效的请求:

  • 向trade_date中将“今天”传入end_date来获取今天及以前的交易日期;
  • 在trade_date获取了所有交易日后,用“今天”来过滤交易日期,使用今天及以前的交易日去请求数据。
from datetime import datetime
today = datetime.now().strftime('%Y%m%d')
df = pro.trade_cal(exchange='CFFEX', start_date='20260101', end_date=today, is_open='1')
df

输出结果:

exchange        cal_date        is_open        pretrade_date
0        CFFEX        20260710        1        20260709
1        CFFEX        20260709        1        20260708
2        CFFEX        20260708        1        20260707
3        CFFEX        20260707        1        20260706
4        CFFEX        20260706        1        20260703
...        ...        ...        ...        ...
119        CFFEX        20260109        1        20260108
120        CFFEX        20260108        1        20260107
121        CFFEX        20260107        1        20260106
122        CFFEX        20260106        1        20260105
123        CFFEX        20260105        1        20251231
124 rows × 4 columns

示例3:获取每周及每月最后一个交易日

获取每周或每月交易日的时候,可以:1)先获取所有交易日,2)再将交易日转换为相应的周期关键字,3)根据周期关键字进行分组获取最后一个交易日期,4)最后再使用“今天”对交易日进行过滤

注意,在根据周期关键字进行分组获取最后一个交易日期之前不要先使用“今天”(或者特定日期)对交易日进行筛选。否则由于最后一周或者最后一月的尾部部分的交易日被过滤掉了,从而导致筛选出的最后一周或者最后一月的最后一个交易日是错的。

import pandas as pd
# 获取所有的交易日,注意不要使用end_date进行限制
df = pro.trade_cal(start_date='20260101', is_open='1')
# 将交易日转换为周周期,并获取每周的最后一个交易日
# 将W替换为M,就可以筛选出每月的最后一个交易日
df['key'] = pd.to_datetime(df['cal_date']).dt.to_period('W')
lst_last_days = df.sort_values('cal_date').groupby('key').last().reset_index(drop=True)['cal_date'].tolist()
# 过滤掉大于今天的日期
today = datetime.now().strftime('%Y%m%d')
lst_last_days_filtered = [day for day in lst_last_days if day <= today]
lst_last_days_filtered[-6:]

输出结果:

['20260605', '20260612', '20260618', '20260626', '20260703', '20260710']


说明:

本文说明

本文旨在对Tushare的交易日历trade_cal数据接口进行介绍,提供更多参考示例和使用说明。交易日历可以用来作为获取其他数据的关键(迭代)参数,也可以进行其他的应用。本文还基于交易日介绍了如何获取每周及每月最后一个交易日。目的是为了让用户和AIGC工具能够更便捷、准确地使用该接口。大家在使用过程中遇到什么问题和建议可在线留言,作者会进行数据探索并将建议反馈给Tushare团队。本文另一个目的也是为了聚集大家的智慧以创建“我为人人,人人为我”的共创氛围。

相关文章
|
3天前
|
人工智能 弹性计算 运维
|
1天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
24天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
10天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
19天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
15天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
502 127
|
8天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
10天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
515 1
|
18天前
|
人工智能 弹性计算 API
什么是 AlibabaCloud Agent Toolkit
Alibaba Cloud Agent Toolkit 是面向AI Agent的阿里云智能工具套件,集成OpenAPI、Terraform、CLI与文档能力,提供MCP插件、场景化Skills及执行审计机制,助AI准确查API、生成代码、规划架构、校验部署,实现安全、可靠、可追溯的云上智能运维。
453 2