当前位置:首页>行情>量化:Tushare 获取A股每日行情数据

量化:Tushare 获取A股每日行情数据

  • 2026-08-28 15:51:09
量化:Tushare 获取A股每日行情数据

今天,我们进入核心实操:用Tushare免费权限,获取A股个股的每日行情数据(也就是日线数据)——这是量化入门最常用、最基础的数据,不管是做长线回测、个股历史走势复盘,还是后续计算均线、MACD等指标,都离不开日线数据。

全程纯实操,代码可直接复制运行,重点讲解「前复权日线」的调取方法(做量化回测必须用复权数据),新手也能轻松上手,看完就能拿到自己想要的股票日线行情。

📚 核心知识点

📊 什么是日线数据?

日线数据,就是一只股票每天的行情汇总,包含:日期、开盘价、最高价、最低价、收盘价、成交量、成交额等核心字段,是量化分析最基础的数据维度。

对于新手来说,我们不用关注复杂的高频数据,先把日线数据玩明白,就能满足基础量化学习、长线策略回测的需求。

🔍 前复权、后复权是什么?(重点,必懂)

股票会进行除权除息(比如分红、送股),除权后股价会突然下跌,导致K线走势不连续,影响回测结果的准确性——而复权,就是把除权除息的影响消除,让股价走势保持连续。

我们做量化回测,必须用前复权数据,原因很简单:前复权是“以当前股价为基准,回溯调整历史股价”,能真实反映股票的实际走势和投资收益,贴合我们的实际交易场景。

不用记复杂原理,记住:调取日线数据时,直接选择前复权即可。

📌 Tushare股票代码规则(必记,避免报错)

Tushare调取个股数据时,需要用到「带后缀的股票代码」,规则很简单,记2个即可:

  • 上海证券交易所(沪市)个股:代码后缀加「.SH」,比如(600519)→ 600519.SH;

  • 深圳证券交易所(深市)个股:代码后缀加「.SZ」,比如(300750)→ 300750.SZ。

重点:如果不加后缀,会导致调取失败,新手一定要记住这个规则。

🔧 实操一:调取A股个股原始日线数据

先从最简单的原始日线数据调取开始,代码可直接复制运行,步骤如下:

💻 完整可运行代码(以贵州茅台为例)

# 导入tushare库(固定写法,上一篇已讲)import tushare as ts# 配置Token(替换成你自己的Token,上一篇已获取)ts.set_token('你的Token')# 初始化接口(固定写法)pro = ts.pro_api()# 调取贵州茅台(600519.SH)原始日线数据# trade_date:交易日期,start_date和end_date可省略,默认获取全部历史数据df = pro.daily(ts_code='600519.SH', start_date='20200101', end_date='20260429')# 打印前10条数据,查看结果print(df.head(10))

📖 代码关键说明(只讲量化要用的)

  • pro.daily():Tushare调取日线数据的核心接口,免费权限可正常调用;

  • ts_code='600519.SH':指定要调取的个股,替换成其他股票代码(带后缀),就能获取对应个股数据;

  • start_date='20200101'、end_date='20260429':指定调取的时间区间,格式为「YYYYMMDD」,可省略(省略后获取全部历史日线数据);

  • print(df.head(10)):打印前10条数据,方便我们查看调取结果,也可以改成head(5)、head(20),查看更多数据。

📊 运行结果解读

运行代码后,控制台会打印出一个表格,包含以下核心字段(新手重点关注前7个):

  • ts_code:股票代码(带后缀);

  • trade_date:交易日期;

  • open:开盘价;

  • high:最高价;

  • low:最低价;

  • close:收盘价;

  • vol:成交量(单位:手);

  • amount:成交额(单位:万元)。

注意:这个数据是「原始日线数据」,没有进行复权处理,不能直接用于回测,接下来我们讲解前复权数据的调取方法。

🔧 实操二:调取前复权日线数据(核心,必学)

原始日线数据没有复权,会影响回测准确性,我们需要调取「前复权日线数据」,代码和原始数据类似,只需要增加一个参数,步骤如下:

💻 完整可运行代码(前复权,以贵州茅台为例)

# 导入tushare库import tushare as ts# 配置Token(替换成你自己的Token)ts.set_token('你的Token')# 初始化接口pro = ts.pro_api()# 调取贵州茅台 前复权 日线数据(重点:增加adjust='qfq'参数)df = pro.daily(ts_code='600519.SH', start_date='20200101', end_date='20260429', adjust='qfq')# 只保留量化常用字段(简化数据,方便后续使用)df = df[['trade_date''open''high''low''close''vol''amount']]# 打印前10条数据,查看复权后结果print(df.head(10))

🔑 核心参数说明(重点中的重点)

adjust='qfq':这个参数是“前复权”的意思,固定写法,只要加上这个参数,调取的就是前复权日线数据,可直接用于量化回测;

补充:如果想调取后复权数据,可将参数改为adjust='hfq',但新手不用关注,前复权完全满足需求。

📋 数据筛选:只保留常用字段

代码中「df = df[['trade_date', 'open', 'high', 'low', 'close', 'vol', 'amount']]」,是为了筛选出量化常用的7个字段,去掉多余的无关字段,让数据更简洁,后续计算指标、做回测时更方便。

新手可以直接复制这行代码,不用修改,后续所有日线数据都可以按这个格式筛选。

📌 固定模板:调取任意个股前复权日线

为了方便新手后续使用,整理了一个固定模板,只要替换「股票代码」和「时间区间」,就能调取任意个股的前复权日线数据,直接复制套用即可:

import tushare as ts# 配置Token(替换成自己的)ts.set_token('你的Token')pro = ts.pro_api()# 模板核心:替换股票代码、时间区间stock_code = '600519.SH'  # 替换成想要调取的股票代码(带后缀)start_date = '20200101'   # 替换成开始日期(YYYYMMDD)end_date = '20260429'     # 替换成结束日期(YYYYMMDD)# 调取前复权日线数据df = pro.daily(ts_code=stock_code, start_date=start_date, end_date=end_date, adjust='qfq')# 筛选常用字段df = df[['trade_date''open''high''low''close''vol''amount']]# 打印结果print(df.head())

❌ 常见问题解决

新手操作时,可能会遇到以下3种常见报错,对应解决方法整理好了,直接对照解决即可:

❌ 报错:“invalid ts_code”(无效的股票代码)

原因:股票代码没有加后缀(.SH/.SZ),或代码输入错误;

解决方法:检查股票代码,加上对应后缀(沪市.SH、深市.SZ),确保代码正确(比如贵州茅台是600519.SH,不是600519)。

❌ 报错:“insufficient points”(积分不足)

原因:未完善个人信息,未获得初始积分,或调取了超出免费权限的数据;

解决方法:回到Tushare个人中心完善信息,获取120初始积分;免费权限可正常调取日线数据,若仍报错,可减少调取的时间区间(比如只调取1年的数据)。

❌ 数据为空:打印结果显示空表格

原因:时间区间设置错误(比如开始日期晚于结束日期),或股票在该时间区间内未上市;

解决方法:调整时间区间,确保开始日期早于结束日期;确认股票上市日期,避免调取未上市时间段的数据。

📋 最后总结

今天我们学会了用Tushare调取A股个股的日线数据,重点掌握了3个核心点:Tushare股票代码规则(沪市.SH、深市.SZ,必须带后缀)、前复权数据的调取方法(加上adjust='qfq'参数)、固定模板的套用(替换股票代码和时间区间)。

新手可以多尝试替换不同的股票代码(比如宁德时代、招商银行),熟悉代码的使用方法,确保每一次运行都能成功获取数据。

本文不荐股、不分析涨跌,仅分享Tushare量化工具用法;所有代码均为实战演示,仅供学习参考。

点赞+收藏,有问题可以直接回复评论或私信。

最新文章

随机文章