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团队。本文另一个目的也是为了聚集大家的智慧以创建“我为人人,人人为我”的共创氛围。

相关文章
|
1月前
|
存储 人工智能 关系型数据库
湖库一体:2026年数据库架构的“终极答案”还是新瓶装旧酒?
2026年6月,OceanBase发布湖库一体AI数据库,阿里云PolarDB年初已推出AI数据湖库(Lakebase),Databricks也在6月推出了LTAP架构。“湖库一体”成为2026年数据库圈最热的概念之一。本文从湖库一体的概念定义出发,拆解其技术原理,对比“湖仓一体”与“湖库一体”的差异,分析三大厂商的落地路径,并讨论这一趋势对DBA和架构师的现实意义。
|
2月前
|
存储 运维 监控
阿里云无影云电脑完整使用指南:从账号开通到配置、接入、管理与运维全流程
阿里云无影云电脑是一种基于云计算的虚拟桌面服务,用户可以通过网络访问位于云端的完整桌面环境,包括操作系统、应用程序、文件资源和网络能力。与传统本地电脑不同,云电脑的计算、存储和管理主要集中在云端,终端设备更多承担输入、输出和展示角色。
484 1
|
1月前
|
存储 算法
Tushare接口文档:复权因子(adj_factor)
本文介绍的复权因子是“累计后复权因子”,存储的是每个交易日的快照。本文介绍了如何获取某个交易日全市场股票的复权因子、如何获取单只股票最近6000条复权因子、如何获取某段时间区间里的复权因子以及如何计算前复权和后复权价格。
330 8
|
1月前
|
人工智能 算法 数据可视化
告别单轮静态测评!WorldForge 多动态环境基准,量化 Agent 组件协同能力
WorldForge是开源动态Agent评测框架,首创情绪耗竭、意义危机、快速衰减三类可控压力环境,支持多轮交互鲁棒性量化评估。适配ModelScope大模型,提供标准化动作空间、WS综合评分及四大基线Agent,助力算法研究与工业落地。
|
1月前
|
人工智能 弹性计算 API
Hermes Agent 安装接入阿里云百炼教程:按量 / Coding Plan/Token Plan 三种配置方案
Hermes Agent 是一款开源终端AI编程工具,支持按量计费、Coding Plan 或 Token Plan 团队版三种方式接入阿里云百炼大模型,具备自主规划、多工具调用与持续进化能力,开箱即用。阿里云Hermes官方部署教程:https://t.aliyun.com/U/EfvSK0
|
1月前
|
存储
Tushare接口文档:A股日线行情(daily)
本接口可以获取股票日行情数据,包括高开低收、成交量、成交额等数据。本文介绍了接口不同参数一般的使用方法,并推荐了实战中将历史行情按照`trade_date`循环遍历获取后存储在本地,之后再在每日更新。本文还对`pre_close`字段、盘后固定价格成交数据进行了强调。
505 1
|
1月前
|
存储 缓存 人工智能
抖音多窗口管理与设备级环境隔离实践解析
未来的多平台运营管理,会从"工具堆叠"走向"一体化工程化"——环境、网络、行为、内容在一个可编排的体系里协同运转,运营者从重复劳动中解放出来,把精力放在策略与内容上。技术会继续演进,但"尊重平台规则、像真实用户一样运营"这条底线,不会变。
|
1月前
|
存储 人工智能 运维
企业AI知识库落地实操:IT运维视角下的六大能力部署与调优指南
本文从IT运维实战视角,详解企业AI知识库落地的六大核心能力:多云存储部署、全文检索调优、文件关联管理、多平台对接、文件溯源配置与数据隔离实施,结合佑桥平台案例,提供可复用的配置策略、监控要点与自动化运维方案。(239字)
178 1
|
1月前
|
人工智能 JSON 安全
AI Skill构建的十个层次——从提示词到业务闭环的体系化实践
title: AI Skill构建的十个层次——从提示词到业务闭环的体系化实践 author: 于兆鹏 date: 20260628 topic: AI Skill构建 word_count: 4200 target_audience: 通用技术读者 AIGC: ContentProducer: '001191110102MAD55U9H0F10002' ContentPropagator: '001191110102MAD55U9H0F10002' Label: '1' ProduceI
|
26天前
|
数据采集
Tushare接口文档:期货交易日历(fut_trade_cal)
`fut_trade_cal` 接口是 Tushare Pro 中用于查询各大期货交易所交易日历的工具。它提供了指定交易所每个日历日是否为交易日的明确标识,是进行期货数据清洗、确保策略在正确日期运行以及计算时间序列指标的基础。
129 0