Tushare 投研第一步:日线行情与复权(数据探索版)
如需注册Tushare使用金融数据,可使用本文作者邀请链接(tushare.pro/weborder/#/login?reg=5),新注册用户可获得100积分。涉及到的接口:A股日线行情(daily)、每日指标(daily_basic)、复权因子(adj_factor)、指数日线行情(index_daily)、pro.query、交易日历(trade_cal)、通用行情接口(pro_bar)import config as cfg import tushare as ts import pandas as pd from datetime import datetime import os ts.set_token(cfg.TUSHARE_TOKEN) # 这里cfg.TUSHARE_TOKEN替换为你自己Tushare的token pro = ts.pro_api()一、A股日线行情(daily)、每日指标(daily_basic)、复权因子(adj_factor)、指数日线行情(index_daily)诸如A股日线行情(daily)、每日指标(daily_basic)、复权因子(adj_factor)等以股票代码(ts_code)和日期(trade_date)为键的接口(底层为数据表)一般都会提供ts_code、trade_date、start_date、end_date这四个参数。一般这四个参数都是可选的,如果都不传入(复权因子接口需要从ts_code和trade_date中两选一必须传入)则会从全量数据中获取6000条记录返回(目前是这么定义的)。按照我以往的经验,有三种情况最为常见:1、仅传入trade_date;2、传入ts_code和start_date;3、传入ts_code、start_date和end_date。我们在初步了解数据的时候一般会选择前两者,情况1是了解最近一个交易日市场上所有股票的行情,而情况2则是了解某一支具体的股票最近走势如何。1.1 仅传入交易日期# pct_chg 是百分数, vol 单位为手, amount 单位为千元 df = pro.daily(trade_date='20260707') df输出结果:ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 840465.77805 1 000002.SZ 20260707 3.06 3.06 2.97 2.99 3.07 -0.08 -2.6059 1107307.22 332291.10494 2 000004.SZ 20260707 0.41 0.44 0.37 0.40 0.41 -0.01 -2.4390 77413.23 3102.42623 3 000006.SZ 20260707 7.00 7.08 6.75 6.80 7.09 -0.29 -4.0903 172966.75 118943.48775 4 000007.SZ 20260707 13.50 13.50 11.59 11.59 12.88 -1.29 -10.0155 167955.50 203058.41400 ... ... ... ... ... ... ... ... ... ... ... ... 5512 920978.BJ 20260707 21.55 22.30 21.41 21.51 21.63 -0.12 -0.5548 18195.31 39580.14844 5513 920981.BJ 20260707 46.24 46.79 42.76 42.87 45.55 -2.68 -5.8836 40377.43 177832.78056 5514 920982.BJ 20260707 127.40 128.55 122.34 123.09 127.95 -4.86 -3.7984 7605.70 94962.51021 5515 920985.BJ 20260707 4.80 4.88 4.72 4.76 4.80 -0.04 -0.8333 16494.85 7913.11432 5516 920992.BJ 20260707 11.68 11.85 11.50 11.51 11.72 -0.21 -1.7918 7472.57 8711.59352 5517 rows × 11 columns1.2 传入证券代码和起始日期# 注意,daily等表返回的数据是按照日期倒序的 df = pro.daily(ts_code='000001.SZ', start_date='20260701') df输出结果:ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20260707 10.46 10.51 10.35 10.47 10.50 -0.03 -0.2857 805221.15 8.404658e+05 1 000001.SZ 20260706 10.25 10.52 10.22 10.50 10.29 0.21 2.0408 1061048.63 1.103903e+06 2 000001.SZ 20260703 10.29 10.40 10.18 10.29 10.28 0.01 0.0973 863326.64 8.887894e+05 3 000001.SZ 20260702 10.20 10.36 10.17 10.28 10.16 0.12 1.1811 1004748.67 1.030886e+06 4 000001.SZ 20260701 10.05 10.18 9.99 10.16 10.05 0.11 1.0945 906889.82 9.158385e+051.3 传递股票代码、起始日期和结束日期本案例演示从一个股票的历史行情中理解pre_close,观察20251015日(按照下标第3行)的pre_close和20251014(第4行)的close,发现这两个不一样,而其余都是一样的。日期区间是左闭右闭的。df = pro.daily(ts_code='000001.SZ', start_date='20251010', end_date='20251020') df输出结果:ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20251020 11.41 11.45 11.27 11.42 11.40 0.02 0.1754 952641.10 1081829.700 1 000001.SZ 20251017 11.50 11.58 11.38 11.40 11.54 -0.14 -1.2132 1039666.32 1193518.555 2 000001.SZ 20251016 11.38 11.55 11.36 11.54 11.40 0.14 1.2281 1261936.87 1447841.585 3 000001.SZ 20251015 11.34 11.42 11.26 11.40 11.33 0.07 0.6178 1271061.03 1443458.105 4 000001.SZ 20251014 11.39 11.60 11.36 11.57 11.40 0.17 1.4912 1843428.36 2124120.304 5 000001.SZ 20251013 11.32 11.46 11.28 11.40 11.43 -0.03 -0.2625 1168801.73 1328180.364 6 000001.SZ 20251010 11.37 11.49 11.36 11.43 11.40 0.03 0.2632 1087947.75 1244213.5131.3.1 本案例演示了pre_close是除权后的昨收价,close是未除权的收盘价观察pct_chg_v2列可见使用 (close/pre_close - 1) * 100 之后四舍五入保留4位小数即得到当天涨跌幅,仅使用close来计算收益率的话会因分红、拆股等导致问题。观察20251015日(第3行)数据,发现使用close错位计算的涨跌幅是不对的,因为当天分红除权了。df['pct_chg_v2'] = (df['close'] / df['pre_close'] - 1) * 100 df['pct_chg_v3'] = ((df['close'] / df['close'].shift(-1) - 1) * 100).round(4) # 在中括号中传递一个字段列表(list),可以获取这个DataFrame中的部分列数据,在后面我们计算复权价格的时候会用到 df[['trade_date', 'close', 'pre_close', 'pct_chg', 'pct_chg_v2', 'pct_chg_v3']]输出结果:trade_date close pre_close pct_chg pct_chg_v2 pct_chg_v3 0 20251020 11.42 11.40 0.1754 0.175439 0.1754 1 20251017 11.40 11.54 -1.2132 -1.213172 -1.2132 2 20251016 11.54 11.40 1.2281 1.228070 1.2281 3 20251015 11.40 11.33 0.6178 0.617829 -1.4693 4 20251014 11.57 11.40 1.4912 1.491228 1.4912 5 20251013 11.40 11.43 -0.2625 -0.262467 -0.2625 6 20251010 11.43 11.40 0.2632 0.263158 NaN1.4 仅传递股票代码# 对于上市比较早的股票,由于日行情数据大于6000条,仅传递股票代码是不能够获取所有日行情数据的,但一般也不会需要这么久的日行情 df = pro.daily(ts_code='000001.SZ', offset=6000) df输出结果:ts_code trade_date open high low close pre_close change pct_chg vol amount 0 000001.SZ 20010215 14.28 14.35 14.14 14.15 14.21 -0.06 -0.42 13692.19 19457.1708 1 000001.SZ 20010214 14.26 14.32 14.20 14.21 14.30 -0.09 -0.63 13593.97 19399.0114 2 000001.SZ 20010213 14.41 14.45 14.30 14.30 14.39 -0.09 -0.63 15092.15 21663.7760 3 000001.SZ 20010212 14.40 14.50 14.12 14.39 14.39 0.00 0.00 23028.74 32847.6593 4 000001.SZ 20010209 14.15 14.50 14.15 14.39 14.13 0.26 1.84 20286.35 29095.1301 ... ... ... ...

相关新闻

UE4SS游戏修改工具:无需源码的UE4/UE5脚本系统完全指南

UE4SS游戏修改工具:无需源码的UE4/UE5脚本系统完全指南

UE4SS游戏修改工具:无需源码的UE4/UE5脚本系统完全指南 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS …

2026/10/18 9:35:00 阅读更多 →
数据中心资产管理实战:RackTables与Netbox高效解决方案深度解析

数据中心资产管理实战:RackTables与Netbox高效解决方案深度解析

数据中心资产管理实战:RackTables与Netbox高效解决方案深度解析 【免费下载链接】awesome-sysadmin A curated list of amazingly awesome open source sysadmin resources inspired by Awesome PHP. 项目地址: https://gitcode.com/gh_mirrors/awe/awesome-sysad…

2026/10/10 14:56:47 阅读更多 →
k7生产环境部署:从测试到上线的完整流程

k7生产环境部署:从测试到上线的完整流程

k7生产环境部署:从测试到上线的完整流程 【免费下载链接】k7 Your own self-hosted infra for lightweight VM sandboxes to safely execute untrusted code. CLI, API, Python SDK. ⭐ Star it if you like it! ⭐ 项目地址: https://gitcode.com/gh_mirrors/k72…

2026/10/19 0:05:19 阅读更多 →

最新新闻

用NocoBase 2.0低代码搭建智能工单系统的完整实践笔记

用NocoBase 2.0低代码搭建智能工单系统的完整实践笔记

我们部门的工单管理,很长一段时间其实是失控的。报修靠企业微信群里吼一声,登记靠一张在线表格,处理进度完全依赖个人的自觉。高峰期一天四十多个请求,谁在跟、跟到哪一步、有没有超时,根本说不清楚。我当时的想法很直…

2026/10/21 8:18:34 阅读更多 →
大模型面试必备:Transformer、Token与RAG核心概念精讲

大模型面试必备:Transformer、Token与RAG核心概念精讲

想进大模型赛道,先把LLM这些地基问题答明白这两年大语言模型(LLM)相关的岗位有多火,不用我多说。很多人简历上写“熟悉大模型应用”“做过Agent开发”,结果面试官随口问一句“你讲一下Transformer结构和传统序列模型的…

2026/10/21 8:18:34 阅读更多 →
分布式文件系统写入路径与元数据设计:从租约到副本一致性

分布式文件系统写入路径与元数据设计:从租约到副本一致性

简介:这是一份以 FastDHT 1.15 源码为核心的分布式文件系统学习与开发资料,面向需要理解分布式哈希表、高并发文件存储及 FastDHT 二次开发的开发者。包内含完整 C 源码骨架,覆盖服务端、客户端与 PHP 扩展三部分,配合配置与启动脚…

2026/10/21 8:18:34 阅读更多 →
Cookie注入攻击全解析:从原理到防御的实战指南

Cookie注入攻击全解析:从原理到防御的实战指南

1. 前言:为什么Cookie会成为攻击者的突破口在做Web安全测试时,很多人习惯性地只关注URL参数和表单提交的数据,却忽略了一个非常关键的输入点——Cookie。Cookie注入攻击的原理其实并不复杂,但它的隐蔽性极强,很多开发者…

2026/10/21 8:18:34 阅读更多 →
手写RSA算法:用Python从零实现非对称加密与数字签名

手写RSA算法:用Python从零实现非对称加密与数字签名

先说个普遍现象:很多人学了几年密码学,真问起RSA该怎么实现,第一反应是调库。cryptography库一行sign,一行verify,完事。但你要是问他公钥和私钥到底是怎么算出来的,为什么别人拿到公钥也没法解密&#xff…

2026/10/21 8:18:34 阅读更多 →
电商数据分析SQL面试真题解析:从连续登录到留存率的解题思路

电商数据分析SQL面试真题解析:从连续登录到留存率的解题思路

回顾前几个月集中准备数据分析岗位面试的经历,最有感触的其实是SQL这道坎。投过头部电商平台数据分析岗的都知道,笔试和一面基本就是SQL题专场,甚至到了二面三面,面试官还会临时抛一道现场写SQL的场景题。我前前后后刷了不下两百道…

2026/10/21 8:17:33 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →