官方文档https://tushare.pro/document/2?doc_id27功能描述获取股票日行情数据包括高开低收、成交量、成交额等数据返回限量单次请求最大返回6000行足够获取某天所有A股上市公司的日行情。如果单次请求一支股票的话也相当于23年的历史行情。接口权限基础积分每分钟内可调取500次说明1. 每个交易日16:00-17:00更新2. 为了更快将大量股票许多交易日的日线行情加载到变量中本文作者建议先将历史数据依据trade_date进行遍历获取数据后存储在本地然后再在每日收盘后依据trade_date获取当日的行情并存储在本地使用时从本地加载将会快非常多。而且也会减轻Tushare的服务器压力从而更好为大家服务。输入参数名称类型必选描述ts_codestrN股票代码支持多个股票同时提取逗号分隔trade_datestrN交易日期YYYYMMDDstart_datestrN开始日期(YYYYMMDD)end_datestrN结束日期(YYYYMMDD)start_date和end_date字段组成了一个时间段该时间区间左闭右闭两端日期都包含是对trade_date的限定。输出参数名称类型默认显示描述ts_codestrY股票代码trade_datestrY交易日期openfloatY开盘价highfloatY最高价lowfloatY最低价closefloatY收盘价pre_closefloatY昨收价【除权价】changefloatY涨跌额pct_chgfloatY涨跌幅% 【基于除权后的昨收计算的涨跌幅今收-除权昨收/除权昨收 】volfloatY成交量 手amountfloatY成交额 千元ah_volfloatN盘后成交量 手ah_amountfloatN盘后成交额 千元vol和amount字段并不含盘后固定价格成交的数据盘后固定价格成交数据记录在ah_vol和ah_amount字段中。在下面示例1和示例2进行了较为详细的讲解pre_close是前一个交易日收盘价的除权参考价而非前一个交易日实际的收盘价。该字段作为当日股票价格变动的基准涨跌幅/额、涨跌停价等均是以此为基础计算的。除此之外该字段在计算复权因子、验证分红配股等除息除权事件中起到了关键作用。在下面示例4中进行了展示示例示例1传入trade_date参数获取某一交易日全市场股票日行情2026/07/06 A股市场上交所和深交所实施盘后固定价格交易机制北交所暂不实施Tushare的日行情数据接口中也包含了该数据。用户之前使用该接口很可能并没有对此进行适配为了向前兼容Tushare将盘后成交量ah_vol和盘后成交额(ah_amount)从机制实施后的总体统计数据中独立出来并默认不展示。由此vol和amount和以前一样统计的是9:15~15:00之间的成交数据而ah_vol和ah_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_date20260710, fieldsfields) 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_amount和amount相加全天的成交量也是将ah_vol和vol相加注意北交所暂未实施盘后固定价交易机制因而有些盘后数据为空值相加的时候需要注意。df[all_vol] df[vol].add(df[ah_vol], fill_value0) df[all_amount] df[amount].add(df[ah_amount], fill_value0) 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.000385e06 1 000002.SZ 20260710 2160145.13 901.0 2161046.13 665318.28634 280.211 6.655985e05 2 000004.SZ 20260710 36305.89 1.0 36306.89 1667.18694 0.046 1.667233e03 3 000006.SZ 20260710 329705.44 14.0 329719.44 237936.45909 9.912 2.379464e05 4 000007.SZ 20260710 71319.00 1.0 71320.00 79701.60300 1.110 7.970271e04 ... ... ... ... ... ... ... ... ... 5516 920978.BJ 20260710 15223.42 NaN 15223.42 31064.70322 NaN 3.106470e04 5517 920981.BJ 20260710 64446.83 NaN 64446.83 245896.82885 NaN 2.458968e05 5518 920982.BJ 20260710 13458.45 NaN 13458.45 158464.55291 NaN 1.584646e05 5519 920985.BJ 20260710 32469.12 NaN 32469.12 15227.60896 NaN 1.522761e04 5520 920992.BJ 20260710 20566.98 NaN 20566.98 24084.52592 NaN 2.408453e04 5521 rows × 8 columns示例3、传入证券代码和起始日期如果要查看某支股票某天以来的日行情可以指定start_date而不指定end_date或者将end_date指定为今天效果也一样。注意daily等接口返回的数据是按照日期倒序的。df pro.daily(ts_code000001.SZ, start_date20260101, fieldsfields) 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.997182e05 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.853871e05 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.002625e06 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.404658e05 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.103903e06 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.128077e06 NaN NaN 120 000001.SZ 20260108 11.64 11.65 11.49 11.51 11.64 -0.13 -1.1168 1100085.11 1.268647e06 NaN NaN 121 000001.SZ 20260107 11.66 11.82 11.62 11.64 11.67 -0.03 -0.2571 966236.24 1.131166e06 NaN NaN 122 000001.SZ 20260106 11.50 11.68 11.48 11.67 11.50 0.17 1.4783 1304648.42 1.512912e06 NaN NaN 123 000001.SZ 20260105 11.42 11.51 11.41 11.50 11.41 0.09 0.7888 875491.18 1.003479e06 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_code000001.SZ, start_date20251010, end_date20251020, fieldsfields) 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_code000001.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.997182e05 1 000001.SZ 20260709 10.55 10.59 10.43 10.49 10.60 -0.11 -1.0377 747191.01 7.853871e05 2 000001.SZ 20260708 10.44 10.63 10.34 10.60 10.47 0.13 1.2416 950760.22 1.002625e06 3 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 8.404658e05 4 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e06 ... ... ... ... ... ... ... ... ... ... ... ... 5995 000001.SZ 20010227 14.25 14.28 14.05 14.10 14.21 -0.11 -0.7700 23521.05 3.317735e04 5996 000001.SZ 20010226 14.15 14.36 14.14 14.21 14.12 0.09 0.6400 18624.35 2.649251e04 5997 000001.SZ 20010223 13.80 14.12 13.80 14.12 13.86 0.26 1.8800 18374.23 2.555811e04 5998 000001.SZ 20010222 13.90 14.00 13.84 13.86 14.00 -0.14 -1.0000 34421.42 4.785641e04 5999 000001.SZ 20010221 14.25 14.25 13.95 14.00 14.27 -0.27 -1.8900 36539.27 5.127413e04 6000 rows × 11 columns示例6传递多个股票代码如果仅想获取几支特定股票的行情可以向ts_code传入以英文逗号分割的股票代码列表。df pro.daily(trade_date20260710, ts_code000001.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.997182e05 1 000002.SZ 20260710 2.99 3.14 2.95 3.11 2.98 0.13 4.3624 2160145.13 6.653183e05 2 600036.SH 20260710 36.61 36.92 36.33 36.88 36.55 0.33 0.9029 793771.53 2.911441e06 3 600519.SH 20260710 1182.20 1204.98 1170.28 1204.98 1182.19 22.79 1.9278 52212.55 6.223344e06示例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_dated) lst_data.append(df) df_data pd.concat(lst_data, ignore_indexTrue) 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.103903e06 1 000002.SZ 20260706 3.08 3.11 3.05 3.07 3.09 -0.02 -0.6472 931973.11 2.868322e05 2 000004.SZ 20260706 0.45 0.50 0.41 0.41 0.45 -0.04 -8.8889 69960.73 3.103588e03 3 000006.SZ 20260706 7.41 7.42 7.08 7.09 7.41 -0.32 -4.3185 210631.59 1.516639e05 4 000007.SZ 20260706 12.10 13.31 12.10 12.88 12.10 0.78 6.4463 177208.00 2.303126e05 ... ... ... ... ... ... ... ... ... ... ... ... 27588 920978.BJ 20260710 20.41 20.71 20.10 20.41 20.22 0.19 0.9397 15223.42 3.106470e04 27589 920981.BJ 20260710 40.40 41.36 35.90 36.21 40.21 -4.00 -9.9478 64446.83 2.458968e05 27590 920982.BJ 20260710 115.00 121.70 113.09 118.20 115.30 2.90 2.5152 13458.45 1.584646e05 27591 920985.BJ 20260710 4.55 4.79 4.48 4.72 4.52 0.20 4.4248 32469.12 1.522761e04 27592 920992.BJ 20260710 11.28 12.06 10.98 12.03 11.27 0.76 6.7436 20566.98 2.408453e04 27593 rows × 11 columns示例8其他参数对于上市比较早的股票由于日行情数据大于6000条仅传递股票代码是不能够获取所有日行情数据的但一般也不会需要这么久的日行情。如果真要获取超过6000条数据的日行情则可以通过加上offset和limit字段进行分页调取。import pandas as pd df1 pro.daily(ts_code000001.SZ, limit6000, offset0) df2 pro.daily(ts_code000001.SZ, limit6000, offset6000) df_all pd.concat([df1, df2], ignore_indexTrue) 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.997182e05 1 000001.SZ 20260709 10.55 10.59 10.43 10.49 10.60 -0.11 -1.0377 747191.01 7.853871e05 2 000001.SZ 20260708 10.44 10.63 10.34 10.60 10.47 0.13 1.2416 950760.22 1.002625e06 3 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 8.404658e05 4 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e06 ... ... ... ... ... ... ... ... ... ... ... ... 8384 000001.SZ 19910410 47.56 47.56 47.56 47.56 47.80 -0.24 -0.5000 15.00 7.100000e01 8385 000001.SZ 19910409 47.80 47.80 47.80 47.80 48.04 -0.24 -0.5000 4.00 1.900000e01 8386 000001.SZ 19910408 48.04 48.04 48.04 48.04 48.52 -0.48 -0.9900 2.00 1.000000e01 8387 000001.SZ 19910405 48.52 48.52 48.52 48.52 48.76 -0.24 -0.4900 2.00 1.000000e01 8388 000001.SZ 19910404 48.76 48.76 48.76 48.76 49.00 -0.24 -0.4900 3.00 1.500000e01 8389 rows × 11 columns说明本文说明本文旨在对Tushare的A股日线行情daily数据接口进行介绍提供更多参考示例和使用说明。本接口可以获取股票日行情数据包括高开低收、成交量、成交额等数据。本文介绍了接口不同参数一般的使用方法并推荐了实战中将历史行情按照trade_date循环遍历获取后存储在本地之后再在每日更新。本文还对pre_close字段、盘后固定价格成交数据进行了强调。本文目的是为了让用户和AIGC工具能够更便捷、准确地使用该接口。大家在使用过程中遇到什么问题和建议可在线留言作者会进行数据探索将结果更新到文章中并将建议反馈给Tushare团队。本文另一个目的也是为了聚集大家的智慧以创建“我为人人人人为我”的共创氛围。