- 功能描述:获取各类指数每日行情
- 返回限量:单次请求最大返回8000行
- 接口权限:2000积分200次/分钟;5000积分500次/分钟
- 说明:
1. 本接口不包含申万行业指数行情数据;
2. 每天9:00和19:00更新;
3. 部分指数的价格和成交跟行情软件的数据不一样。比如深证成指(399001.SZ),该指数普遍看作反映深证A股整体表现的大盘,而实际上只包含500只成分股。而各类行情软件上展示的成交量、成交金额是深市所有A股的股票成交情况,如果需要获得与行情软件上一样的成交数据,可以调取深证A指(399107.SZ);
4. 同样是0开头的指数,有一些后缀是CSI有一些是SH。这是根据指数的所属公司来定的:中证指数公司的指数为CSI,上交所的指数为SH。具体可根据数据接口
index_basic的symbol字段获取ts_code来进行使用;
输入参数:
名称 |
类型 |
必选 |
描述 |
ts_code |
str |
Y |
指数代码,来源指数基础信息接口 |
trade_date |
str |
N |
交易日期 (日期格式:YYYYMMDD,下同) |
start_date |
str |
N |
开始日期 |
end_date |
str |
N |
结束日期 |
输出参数:
名称 |
类型 |
默认显示 |
描述 |
ts_code |
str |
Y |
TS指数代码 |
trade_date |
str |
Y |
交易日 |
close |
float |
Y |
收盘点位 |
open |
float |
Y |
开盘点位 |
high |
float |
Y |
最高点位 |
low |
float |
Y |
最低点位 |
pre_close |
float |
Y |
昨日收盘点 |
change |
float |
Y |
涨跌点 |
pct_chg |
float |
Y |
涨跌幅(%) |
vol |
float |
Y |
成交量(手) |
amount |
float |
Y |
成交额(千元) |
示例:
示例1:仅传入`ts_code`获取单支指数日线行情
import tushare as ts pro = ts.pro_api() df = pro.index_daily(ts_code='000001.SH') df
输出结果:
ts_code trade_date close open high low pre_close change pct_chg vol amount 0 000001.SH 20260721 3864.3671 3812.1618 3864.6002 3743.3601 3796.2814 68.0857 1.7935 735021925.0 1.396518e+09 1 000001.SH 20260720 3796.2814 3791.6616 3831.6593 3741.1099 3764.1547 32.1267 0.8535 709234069.0 1.294652e+09 2 000001.SH 20260717 3764.1547 3865.3165 3869.2148 3745.1744 3882.4126 -118.2579 -3.0460 650450984.0 1.246445e+09 3 000001.SH 20260716 3882.4126 3912.3812 3940.4505 3867.6012 3955.5781 -73.1655 -1.8497 535281873.0 1.124208e+09 4 000001.SH 20260715 3955.5781 3963.7267 3981.6716 3943.6953 3967.1262 -11.5481 -0.2911 576209492.0 1.226298e+09 ... ... ... ... ... ... ... ... ... ... ... ... 7995 000001.SH 19930902 901.3900 894.2700 901.3900 893.0000 893.9700 7.4200 0.8300 171555.0 1.473712e+05 7996 000001.SH 19930901 893.9700 898.0100 900.1800 886.5700 895.6800 -1.7100 -0.1909 245553.0 1.919081e+05 7997 000001.SH 19930831 895.6800 895.7600 909.7200 893.9900 899.2700 -3.5900 -0.3992 169092.0 1.764461e+05 7998 000001.SH 19930830 899.2700 901.0900 911.1800 884.5100 894.5900 4.6800 0.5231 231770.0 2.523905e+05 7999 000001.SH 19930827 894.5900 903.4700 903.7700 886.3000 903.9100 -9.3200 -1.0311 411332.0 5.202411e+05 8000 rows × 11 columns
示例2:获取某支指数一段时间内的日线行情
通过增加传递start_date和end_date参数可以指定返回指数一段时间内的日线行情。
df = pro.index_daily(ts_code='399300.SZ', start_date='20250101', end_date='20251231') df
输出结果:
ts_code trade_date close open high low pre_close change pct_chg vol amount 0 399300.SZ 20251231 4629.9395 4656.4800 4667.0467 4622.0988 4651.2818 -21.3423 -0.4588 170760224.0 4.444915e+08 1 399300.SZ 20251230 4651.2818 4617.3163 4664.3305 4616.6323 4639.3721 11.9097 0.2567 180374974.0 4.571855e+08 2 399300.SZ 20251229 4639.3721 4658.2654 4672.0352 4629.0567 4657.2400 -17.8679 -0.3837 200397133.0 4.826135e+08 3 399300.SZ 20251226 4657.2400 4639.7895 4676.1310 4635.1052 4642.5357 14.7043 0.3167 175396565.0 4.604269e+08 4 399300.SZ 20251225 4642.5357 4629.3195 4651.1535 4621.9208 4634.0586 8.4771 0.1829 139434186.0 3.853561e+08 ... ... ... ... ... ... ... ... ... ... ... ... 238 399300.SZ 20250108 3789.2153 3781.2610 3810.7355 3731.1887 3796.1055 -6.8902 -0.1815 169166968.0 3.009657e+08 239 399300.SZ 20250107 3796.1055 3760.8660 3797.6020 3749.0581 3768.9697 27.1358 0.7200 146455779.0 2.668558e+08 240 399300.SZ 20250106 3768.9697 3775.9902 3788.8489 3743.0727 3775.1648 -6.1951 -0.1641 150946670.0 2.628035e+08 241 399300.SZ 20250103 3775.1648 3825.2426 3835.9353 3767.6653 3820.3952 -45.2304 -1.1839 175342676.0 3.043228e+08 242 399300.SZ 20250102 3820.3952 3931.8155 3934.2034 3796.3389 3934.9109 -114.5157 -2.9102 217898724.0 3.886366e+08 243 rows × 11 columns
示例3:指数行情趋势可视化
import matplotlib.pyplot as plt import pandas as pd # 解决中文显示问题(根据你的系统环境调整字体) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 获取沪深300指数日行情 df = pro.index_daily(ts_code='399300.SZ', start_date='20260101') # 将交易日期转为datetime类型并设为索引,便于后续分析 df['trade_date'] = pd.to_datetime(df['trade_date']) df = df.sort_values('trade_date').set_index('trade_date') # 绘图 plt.figure(figsize=(12, 6)) plt.plot(df.index, df['close'], label='沪深300收盘价') plt.title('沪深300指数2026年走势图') plt.xlabel('日期') plt.ylabel('收盘点位') plt.legend() plt.grid(True) plt.show()
输出结果:
示例4:简单的市场风险度量(VaR)
本示例使用沪深300指数2014年以来的日行情模拟VaR。
df = pro.index_daily(ts_code='399300.SZ', start_date=20140101) # 基于日收益率计算历史VaR (95%置信度) df['return'] = df['close'].pct_change() # 计算日收益率 confidence_level = 0.95 # 历史模拟法VaR:找到在置信水平下的最大损失(即收益率分布左侧的分位数) var_historical = df['return'].quantile(1 - confidence_level) # 假设投资组合价值为1000万元 portfolio_value = 10000000 var_amount = portfolio_value * var_historical print(f"95%置信度下,日VaR (历史模拟法): {var_historical:.4%}") print(f"相当于该投资组合单日最大可能损失约: {var_amount:,.0f} 元")
输出结果:
95%置信度下,日VaR (历史模拟法): -2.0993% 相当于该投资组合单日最大可能损失约: -209,928 元
说明:
本文说明
本文旨在对Tushare的指数日线行情index_daily数据接口进行介绍,提供更多参考示例和使用说明。
指数日线行情包含高开低收、涨跌幅、成交量和成交额等数据。在使用过程中如果不确定使用什么后缀作为ts_code可根据接口index_basic的symbol字段获取ts_code进行使用。如发现指数与一般行情软件不同,本文开头说明中有解释,您亦可以将问题反馈给Tushare团队进行处理。
本文目的是为了让用户和AIGC工具能够更便捷、准确地使用该接口。大家在使用过程中遇到什么问题和建议可在线留言,作者会进行数据探索将结果更新到文章中,并将建议反馈给Tushare团队。本文另一个目的也是为了聚集大家的智慧以创建“我为人人,人人为我”的共创氛围。