news 2026/7/14 3:49:22

Tushare接口文档:A股日线行情(daily)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Tushare接口文档:A股日线行情(daily)
  • 官方文档:https://tushare.pro/document/2?doc_id=27

  • 功能描述:获取股票日行情数据,包括高开低收、成交量、成交额等数据

  • 返回限量:单次请求最大返回6000行,足够获取某天所有A股上市公司的日行情。如果单次请求一支股票的话,也相当于23年的历史行情。

  • 接口权限:基础积分每分钟内可调取500次

  • 说明

1. 每个交易日16:00-17:00更新;

2. 为了更快将大量股票许多交易日的日线行情加载到变量中,本文作者建议先将历史数据依据trade_date进行遍历获取数据后存储在本地,然后再在每日收盘后依据trade_date获取当日的行情并存储在本地,使用时从本地加载将会快非常多。而且也会减轻Tushare的服务器压力,从而更好为大家服务。

输入参数:

名称

类型

必选

描述

ts_code

str

N

股票代码(支持多个股票同时提取,逗号分隔)

trade_date

str

N

交易日期(YYYYMMDD)

start_date

str

N

开始日期(YYYYMMDD)

end_date

str

N

结束日期(YYYYMMDD)

start_dateend_date字段组成了一个时间段,该时间区间左闭右闭(两端日期都包含),是对trade_date的限定。

输出参数:

名称

类型

默认显示

描述

ts_code

str

Y

股票代码

trade_date

str

Y

交易日期

open

float

Y

开盘价

high

float

Y

最高价

low

float

Y

最低价

close

float

Y

收盘价

pre_close

float

Y

昨收价【除权价】

change

float

Y

涨跌额

pct_chg

float

Y

涨跌幅(%) 【基于除权后的昨收计算的涨跌幅:(今收-除权昨收)/除权昨收 】

vol

float

Y

成交量 (手)

amount

float

Y

成交额 (千元)

ah_vol

float

N

盘后成交量 (手)

ah_amount

float

N

盘后成交额 (千元)

  1. volamount字段并不含盘后固定价格成交的数据,盘后固定价格成交数据记录在ah_volah_amount字段中。在下面示例1和示例2进行了较为详细的讲解;

  2. pre_close是前一个交易日收盘价的除权参考价,而非前一个交易日实际的收盘价。该字段作为当日股票价格变动的基准,涨跌幅/额、涨跌停价等均是以此为基础计算的。除此之外该字段在计算复权因子、验证分红配股等除息除权事件中起到了关键作用。在下面示例4中进行了展示;

示例:

示例1:传入trade_date参数,获取某一交易日全市场股票日行情

2026/07/06 A股市场上交所和深交所实施盘后固定价格交易机制(北交所暂不实施),Tushare的日行情数据接口中也包含了该数据。用户之前使用该接口很可能并没有对此进行适配,为了向前兼容,Tushare将盘后成交量(ah_vol)和盘后成交额(ah_amount)从机制实施后的总体统计数据中独立出来,并默认不展示。由此,volamount和以前一样统计的是9:15~15:00之间的成交数据,而ah_volah_amount则统计盘后固定价格成交数据。因此,今后获取日行情的所有字段时需要显式传入全部字段名。

import tushare as ts pro = ts.pro_api() # 显式传递所有字段 fields = 'ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount,ah_vol,ah_amount' df = pro.daily(trade_date='20260710', fields=fields) df

输出结果:

ts_code trade_date open high low close pre_close change pct_chg vol amount ah_vol ah_amount 0 000001.SZ 20260710 10.50 10.51 10.40 10.45 10.49 -0.04 -0.3813 957320.35 999718.24932 638.0 666.710 1 000002.SZ 20260710 2.99 3.14 2.95 3.11 2.98 0.13 4.3624 2160145.13 665318.28634 901.0 280.211 2 000004.SZ 20260710 0.45 0.46 0.45 0.46 0.42 0.04 9.5238 36305.89 1667.18694 1.0 0.046 3 000006.SZ 20260710 6.86 7.39 6.83 7.08 6.84 0.24 3.5088 329705.44 237936.45909 14.0 9.912 4 000007.SZ 20260710 10.85 11.42 10.80 11.10 10.85 0.25 2.3041 71319.00 79701.60300 1.0 1.110 ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5516 920978.BJ 20260710 20.41 20.71 20.10 20.41 20.22 0.19 0.9397 15223.42 31064.70322 NaN NaN 5517 920981.BJ 20260710 40.40 41.36 35.90 36.21 40.21 -4.00 -9.9478 64446.83 245896.82885 NaN NaN 5518 920982.BJ 20260710 115.00 121.70 113.09 118.20 115.30 2.90 2.5152 13458.45 158464.55291 NaN NaN 5519 920985.BJ 20260710 4.55 4.79 4.48 4.72 4.52 0.20 4.4248 32469.12 15227.60896 NaN NaN 5520 920992.BJ 20260710 11.28 12.06 10.98 12.03 11.27 0.76 6.7436 20566.98 24084.52592 NaN NaN 5521 rows × 13 columns

示例2:计算全天的成交数据

如需全天的成交额,则需要将ah_amountamount相加,全天的成交量也是将ah_volvol相加

注意:北交所暂未实施盘后固定价交易机制,因而有些盘后数据为空值,相加的时候需要注意。

df['all_vol'] = df['vol'].add(df['ah_vol'], fill_value=0) df['all_amount'] = df['amount'].add(df['ah_amount'], fill_value=0) df[['ts_code', 'trade_date', 'vol', 'ah_vol', 'all_vol', 'amount', 'ah_amount', 'all_amount']]

输出结果:

ts_code trade_date vol ah_vol all_vol amount ah_amount all_amount 0 000001.SZ 20260710 957320.35 638.0 957958.35 999718.24932 666.710 1.000385e+06 1 000002.SZ 20260710 2160145.13 901.0 2161046.13 665318.28634 280.211 6.655985e+05 2 000004.SZ 20260710 36305.89 1.0 36306.89 1667.18694 0.046 1.667233e+03 3 000006.SZ 20260710 329705.44 14.0 329719.44 237936.45909 9.912 2.379464e+05 4 000007.SZ 20260710 71319.00 1.0 71320.00 79701.60300 1.110 7.970271e+04 ... ... ... ... ... ... ... ... ... 5516 920978.BJ 20260710 15223.42 NaN 15223.42 31064.70322 NaN 3.106470e+04 5517 920981.BJ 20260710 64446.83 NaN 64446.83 245896.82885 NaN 2.458968e+05 5518 920982.BJ 20260710 13458.45 NaN 13458.45 158464.55291 NaN 1.584646e+05 5519 920985.BJ 20260710 32469.12 NaN 32469.12 15227.60896 NaN 1.522761e+04 5520 920992.BJ 20260710 20566.98 NaN 20566.98 24084.52592 NaN 2.408453e+04 5521 rows × 8 columns

示例3、传入证券代码和起始日期

如果要查看某支股票某天以来的日行情,可以指定start_date而不指定end_date(或者将end_date指定为今天,效果也一样)。注意,daily等接口返回的数据是按照日期倒序的。

df = pro.daily(ts_code='000001.SZ', start_date='20260101', fields=fields) df

输出结果:

ts_code trade_date open high low close pre_close change pct_chg vol amount ah_vol ah_amount 0 000001.SZ 20260710 10.50 10.51 10.40 10.45 10.49 -0.04 -0.3813 957320.35 9.997182e+05 638.0 666.710 1 000001.SZ 20260709 10.55 10.59 10.43 10.49 10.60 -0.11 -1.0377 747191.01 7.853871e+05 288.0 302.112 2 000001.SZ 20260708 10.44 10.63 10.34 10.60 10.47 0.13 1.2416 950760.22 1.002625e+06 410.0 434.600 3 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 8.404658e+05 423.0 442.881 4 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e+06 46.0 48.300 ... ... ... ... ... ... ... ... ... ... ... ... ... ... 119 000001.SZ 20260109 11.53 11.53 11.44 11.46 11.51 -0.05 -0.4344 983390.04 1.128077e+06 NaN NaN 120 000001.SZ 20260108 11.64 11.65 11.49 11.51 11.64 -0.13 -1.1168 1100085.11 1.268647e+06 NaN NaN 121 000001.SZ 20260107 11.66 11.82 11.62 11.64 11.67 -0.03 -0.2571 966236.24 1.131166e+06 NaN NaN 122 000001.SZ 20260106 11.50 11.68 11.48 11.67 11.50 0.17 1.4783 1304648.42 1.512912e+06 NaN NaN 123 000001.SZ 20260105 11.42 11.51 11.41 11.50 11.41 0.09 0.7888 875491.18 1.003479e+06 NaN NaN 124 rows × 13 columns

示例4:传递股票代码、起始日期和结束日期

在没有将日行情数据下载到本地的情况下,直接使用daily接口查看某支股票历史上一段时间的日行情,除了要指定start_date外还要指定end_date。日期区间是左闭右闭的。

本示例除了演示如何查看某支股票历史上一段时间的日行情外,还演示了pre_close的深刻理解。观察20251015的pre_close和20251014的close,发现这两个不一样,而其余pre_close都和上一个交易日的close是一样的。这明确说明了pre_close字段作为“昨收价”,并非“前一个交易日真实的(名义)收盘价”,而是考虑了除权除息的“上一个交易日收盘价的除权参考价”。

df = pro.daily(ts_code='000001.SZ', start_date='20251010', end_date='20251020', fields=fields) df[['ts_code', 'trade_date', 'close', 'pre_close']]

输出结果:

ts_code trade_date close pre_close 0 000001.SZ 20251020 11.42 11.40 1 000001.SZ 20251017 11.40 11.54 2 000001.SZ 20251016 11.54 11.40 3 000001.SZ 20251015 11.40 11.33 4 000001.SZ 20251014 11.57 11.40 5 000001.SZ 20251013 11.40 11.43 6 000001.SZ 20251010 11.43 11.40

示例5:仅传递股票代码

如果不考虑盘后固定价格交易数据,仅传入股票代码(ts_code)可获得该股票最近超过23年的日行情数据。

df = pro.daily(ts_code='000001.SZ') df

输出结果:

ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20260710 10.50 10.51 10.40 10.45 10.49 -0.04 -0.3813 957320.35 9.997182e+05 1 000001.SZ 20260709 10.55 10.59 10.43 10.49 10.60 -0.11 -1.0377 747191.01 7.853871e+05 2 000001.SZ 20260708 10.44 10.63 10.34 10.60 10.47 0.13 1.2416 950760.22 1.002625e+06 3 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 8.404658e+05 4 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e+06 ... ... ... ... ... ... ... ... ... ... ... ... 5995 000001.SZ 20010227 14.25 14.28 14.05 14.10 14.21 -0.11 -0.7700 23521.05 3.317735e+04 5996 000001.SZ 20010226 14.15 14.36 14.14 14.21 14.12 0.09 0.6400 18624.35 2.649251e+04 5997 000001.SZ 20010223 13.80 14.12 13.80 14.12 13.86 0.26 1.8800 18374.23 2.555811e+04 5998 000001.SZ 20010222 13.90 14.00 13.84 13.86 14.00 -0.14 -1.0000 34421.42 4.785641e+04 5999 000001.SZ 20010221 14.25 14.25 13.95 14.00 14.27 -0.27 -1.8900 36539.27 5.127413e+04 6000 rows × 11 columns

示例6:传递多个股票代码

如果仅想获取几支特定股票的行情,可以向ts_code传入以英文逗号分割的股票代码列表。

df = pro.daily(trade_date='20260710', ts_code='000001.SZ,600519.SH,600036.SH,000002.SZ') df

输出结果:

ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20260710 10.50 10.51 10.40 10.45 10.49 -0.04 -0.3813 957320.35 9.997182e+05 1 000002.SZ 20260710 2.99 3.14 2.95 3.11 2.98 0.13 4.3624 2160145.13 6.653183e+05 2 600036.SH 20260710 36.61 36.92 36.33 36.88 36.55 0.33 0.9029 793771.53 2.911441e+06 3 600519.SH 20260710 1182.20 1204.98 1170.28 1204.98 1182.19 22.79 1.9278 52212.55 6.223344e+06

示例7:循环调用

实际使用数据的时候我们往往需要很多天很多股票的数据,由于接口每次仅返回6000条数据,故而我们需要使用到循环调用接口。我们推荐依据trade_date进行循环调用,理由是以前十几年的数据存储在本地调用仅需2s左右,新的一天数据调用一次接口也仅需要零点几秒。以下演示按照日期调用接口的方式。

示例代码中使用了给定的日期列表,实战中可使用Tushare的交易日历(trade_cal)接口获取需要的交易日列表。

dates = ['20260706', '20260707', '20260708', '20260709', '20260710'] # 显式指定返回的字段 fields = 'ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount,ah_vol,ah_amount' # 这里先用list将结果存起来,等所有数据下载完毕之后再一次性合并 # list添加的DataFrame的时候,添加进去的实际上是指针,并没有数据的转移,会很快 # 但如果每获得数据时就进行DataFrame的合并,可能会导致更多额外空间的分配 lst_data = [] for d in dates: df = pro.daily(trade_date=d) lst_data.append(df) df_data = pd.concat(lst_data, ignore_index=True) df_data

输出结果:

ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e+06 1 000002.SZ 20260706 3.08 3.11 3.05 3.07 3.09 -0.02 -0.6472 931973.11 2.868322e+05 2 000004.SZ 20260706 0.45 0.50 0.41 0.41 0.45 -0.04 -8.8889 69960.73 3.103588e+03 3 000006.SZ 20260706 7.41 7.42 7.08 7.09 7.41 -0.32 -4.3185 210631.59 1.516639e+05 4 000007.SZ 20260706 12.10 13.31 12.10 12.88 12.10 0.78 6.4463 177208.00 2.303126e+05 ... ... ... ... ... ... ... ... ... ... ... ... 27588 920978.BJ 20260710 20.41 20.71 20.10 20.41 20.22 0.19 0.9397 15223.42 3.106470e+04 27589 920981.BJ 20260710 40.40 41.36 35.90 36.21 40.21 -4.00 -9.9478 64446.83 2.458968e+05 27590 920982.BJ 20260710 115.00 121.70 113.09 118.20 115.30 2.90 2.5152 13458.45 1.584646e+05 27591 920985.BJ 20260710 4.55 4.79 4.48 4.72 4.52 0.20 4.4248 32469.12 1.522761e+04 27592 920992.BJ 20260710 11.28 12.06 10.98 12.03 11.27 0.76 6.7436 20566.98 2.408453e+04 27593 rows × 11 columns

示例8:其他参数

对于上市比较早的股票,由于日行情数据大于6000条,仅传递股票代码是不能够获取所有日行情数据的,但一般也不会需要这么久的日行情。如果真要获取超过6000条数据的日行情,则可以通过加上offsetlimit字段进行分页调取。

import pandas as pd df1 = pro.daily(ts_code='000001.SZ', limit=6000, offset=0) df2 = pro.daily(ts_code='000001.SZ', limit=6000, offset=6000) df_all = pd.concat([df1, df2], ignore_index=True) df_all

输出结果:

ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20260710 10.50 10.51 10.40 10.45 10.49 -0.04 -0.3813 957320.35 9.997182e+05 1 000001.SZ 20260709 10.55 10.59 10.43 10.49 10.60 -0.11 -1.0377 747191.01 7.853871e+05 2 000001.SZ 20260708 10.44 10.63 10.34 10.60 10.47 0.13 1.2416 950760.22 1.002625e+06 3 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 8.404658e+05 4 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e+06 ... ... ... ... ... ... ... ... ... ... ... ... 8384 000001.SZ 19910410 47.56 47.56 47.56 47.56 47.80 -0.24 -0.5000 15.00 7.100000e+01 8385 000001.SZ 19910409 47.80 47.80 47.80 47.80 48.04 -0.24 -0.5000 4.00 1.900000e+01 8386 000001.SZ 19910408 48.04 48.04 48.04 48.04 48.52 -0.48 -0.9900 2.00 1.000000e+01 8387 000001.SZ 19910405 48.52 48.52 48.52 48.52 48.76 -0.24 -0.4900 2.00 1.000000e+01 8388 000001.SZ 19910404 48.76 48.76 48.76 48.76 49.00 -0.24 -0.4900 3.00 1.500000e+01 8389 rows × 11 columns

说明:

本文说明

本文旨在对Tushare的A股日线行情daily数据接口进行介绍,提供更多参考示例和使用说明。

本接口可以获取股票日行情数据,包括高开低收、成交量、成交额等数据。本文介绍了接口不同参数一般的使用方法,并推荐了实战中将历史行情按照trade_date循环遍历获取后存储在本地,之后再在每日更新。本文还对pre_close字段、盘后固定价格成交数据进行了强调。

本文目的是为了让用户和AIGC工具能够更便捷、准确地使用该接口。大家在使用过程中遇到什么问题和建议可在线留言,作者会进行数据探索将结果更新到文章中,并将建议反馈给Tushare团队。本文另一个目的也是为了聚集大家的智慧以创建“我为人人,人人为我”的共创氛围。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 3:48:24

Makefile快速上手笔记

一、为什么需要 Makefile? 在linux开发过程中,当项目只有一两个 .c 文件时,手动执行 gcc 命令并不麻烦: gcc main.c hello.c -o app但随着项目规模增长,源文件越来越多,手动编译变得难以维护,特…

作者头像 李华
网站建设 2026/7/14 3:47:02

数字绘画与AI绘画流程全解析:从工具配置到作品输出

这次我们来看一个名为"命运的双鱼-绘画过程"的技术项目。从标题来看,这应该是一个与数字绘画、AI绘画或绘画教程相关的技术内容,可能涉及绘画软件使用、AI绘画工具操作或绘画流程展示。对于这类绘画过程展示项目,我们需要重点关注几…

作者头像 李华
网站建设 2026/7/14 3:45:47

大模型技术演进:从Prompt工程到多模态应用实战

1. 大模型技术全景图:从Prompt到多模态的演进脉络2017年Transformer架构的诞生,标志着大模型技术进入快车道。作为从业者,我们见证了从单一文本处理到多模态理解的范式迁移。这种演进不是简单的功能叠加,而是AI认知能力的质变——…

作者头像 李华
网站建设 2026/7/14 3:44:43

2026年全面的兼容性测试平台推荐:适配全行业场景的选型指南

在软件产品迭代提速、终端生态趋于碎片化的行业背景下,兼容性测试是保障APP、网页、客户端、智能终端产品跨设备、跨系统稳定运行的基础质量环节。各类终端系统、内核版本、硬件参数的差异,容易引发界面错乱、功能异常、闪退卡顿、数据同步失败等线上质量…

作者头像 李华
网站建设 2026/7/14 3:42:11

optimizerDuck:开源Windows系统优化工具一键提升性能与隐私

你的电脑是否经常遇到这样的问题:刚装完系统时运行流畅,但用了一段时间后就开始卡顿?玩游戏时帧率不稳定,明明配置不错却总感觉有延迟?系统后台总有各种莫名其妙的进程在消耗资源,却不知道如何关闭&#xf…

作者头像 李华
网站建设 2026/7/14 3:41:42

系统引导修复工具使用指南:EasyBCD一键解决启动问题

遇到电脑无法启动、系统引导丢失的问题时,很多人的第一反应就是重装系统。但重装不仅耗时耗力,还可能导致重要文件丢失。其实大多数启动问题都可以通过专业的系统引导修复工具快速解决,无需重装系统。本文将详细介绍系统引导修复工具的使用方…

作者头像 李华