交易日历
获取区间内全部交易日列表(升序)。用于按交易日循环、对齐回测窗口、判断某日是否开盘
接口说明
区间内全部 A 股交易日列表(升序),1990-12-19 起全量,自动延伸至当年年末。
回测按交易日循环、对齐窗口、判断某日是否开盘都先取它
按自然日循环会在节假日空跑浪费配额;SDK 侧另有 pro.is_trading_day / pro.last_trading_day 直判
快速调用
同一调用的三种等价写法,按接入习惯任选其一,复制即可运行。
今年以来的交易日
import top369 as gp
pro = gp.pro_api("sk-xxxxxxxxxxxx") # 安装: pip install top369
df = pro.trade_calendar() # → 单列DataFrame(date, 升序)
print(df.tail())
指定区间
import top369 as gp
pro = gp.pro_api("sk-xxxxxxxxxxxx") # 安装: pip install top369
df = pro.trade_calendar(start_date="2024-01-01",
end_date="2024-12-31")
今年以来的交易日
import requests
API = "https://api.369.top/api"
KEY = "sk-xxxxxxxxxxxx"
r = requests.get(f"{API}/a/market/trade_calendar",
headers={"X-API-Key": KEY},
timeout=30)
r.raise_for_status()
data = r.json()["data"] # 信封解包, 本接口数据在 data["rows"]
指定区间
import requests
API = "https://api.369.top/api"
KEY = "sk-xxxxxxxxxxxx"
r = requests.get(f"{API}/a/market/trade_calendar",
headers={"X-API-Key": KEY},
params={"start_date": "2024-01-01", "end_date": "2024-12-31"},
timeout=30)
r.raise_for_status()
data = r.json()["data"] # 信封解包, 本接口数据在 data["rows"]
今年以来的交易日
curl -H "X-API-Key: sk-xxxxxxxxxxxx" \ "https://api.369.top/api/a/market/trade_calendar"
指定区间
curl -H "X-API-Key: sk-xxxxxxxxxxxx" \ "https://api.369.top/api/a/market/trade_calendar?start_date=2024-01-01&end_date=2024-12-31"
输入参数
| 名称 | 类型 | 必选 | 描述 |
|---|---|---|---|
| start_date | str | False | 起始日期 YYYY-MM-DD, 缺省当年1月1日 |
| end_date | str | False | 结束日期 YYYY-MM-DD, 缺省今天 |
返回字段
| 名称 | 类型 | 描述 |
|---|---|---|
| rows[].date | str | 交易日期 YYYY-MM-DD, 升序 |
| total | int | 区间内交易日数量 |
| start_date | str | 实际首日(区间内第一个交易日; 区间无交易日则为请求起始日) |
| end_date | str | 实际末日(区间内最后一个交易日) |
返回数据样例
{
"rows": [
{
"date": "2026-10-08"
},
{
"date": "2026-10-09"
},
{
"date": "2026-10-12"
}
],
"total": 17,
"start_date": "2026-10-08",
"end_date": "2026-10-30"
}
样例取自平台实时数据,rows共 17 条,样例仅展示前 3 条。
最佳实践:批量任务请按交易日循环而非自然日(节假日空跑浪费配额); 判断某天是否开盘: 取该日单日区间, total=1即为交易日。