今天,我们进入核心实操:用Tushare免费权限,获取A股个股的每日行情数据(也就是日线数据)——这是量化入门最常用、最基础的数据,不管是做长线回测、个股历史走势复盘,还是后续计算均线、MACD等指标,都离不开日线数据。
全程纯实操,代码可直接复制运行,重点讲解「前复权日线」的调取方法(做量化回测必须用复权数据),新手也能轻松上手,看完就能拿到自己想要的股票日线行情。
📚 核心知识点
📊 什么是日线数据?
日线数据,就是一只股票每天的行情汇总,包含:日期、开盘价、最高价、最低价、收盘价、成交量、成交额等核心字段,是量化分析最基础的数据维度。
对于新手来说,我们不用关注复杂的高频数据,先把日线数据玩明白,就能满足基础量化学习、长线策略回测的需求。
🔍 前复权、后复权是什么?(重点,必懂)
股票会进行除权除息(比如分红、送股),除权后股价会突然下跌,导致K线走势不连续,影响回测结果的准确性——而复权,就是把除权除息的影响消除,让股价走势保持连续。
我们做量化回测,必须用前复权数据,原因很简单:前复权是“以当前股价为基准,回溯调整历史股价”,能真实反映股票的实际走势和投资收益,贴合我们的实际交易场景。
不用记复杂原理,记住:调取日线数据时,直接选择前复权即可。
📌 Tushare股票代码规则(必记,避免报错)
Tushare调取个股数据时,需要用到「带后缀的股票代码」,规则很简单,记2个即可:
重点:如果不加后缀,会导致调取失败,新手一定要记住这个规则。
🔧 实操一:调取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量化工具用法;所有代码均为实战演示,仅供学习参考。
点赞+收藏,有问题可以直接回复评论或私信。