这篇文章价值很大:股票历史分时成交数据怎么简单获取?【干货】
文章目录
- 前言
- 一、准备
- 二、使用步骤
- 1.引入库
- 2,使用这个API查询历史分时数据:
- 3.查询完整历史分时数据
- 4.其他查询方法
- 参数格式:[(市场代码, 股票代码), ...]
- 参数:市场代码, 股票代码, 文件名, 起始位置, 数量
- 参数:市场代码, 股票代码
- 总结
前言
Pytdx是一个基于C++接口开发的Python第三方模块。
使用它我们能够很方便地获取通达信上的标准行情数据、历史行情数据、专业的财务数据,并且支持macOS系统,非常方便。
一、准备
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。
(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.
(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。
请选择以下任一种方式输入命令安装依赖:
- Windows 环境 打开 Cmd (开始-运行-CMD)。
- MacOS 环境 打开 Terminal (command+空格输入Terminal)。
- 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install pytdx
二、使用步骤
1.引入库
查询分时成交
from pytdx.exhq import *
from pytdx.hq import *
api_hq = TdxHq_API()
api_hq = api_hq.connect('119.147.212.81', 7709)
2,使用这个API查询历史分时数据:
from pytdx.exhq import *
from pytdx.hq import *
api_hq = TdxHq_API()
api_hq = api_hq.connect('119.147.212.81', 7709)
print(api_hq.get_history_transaction_data(TDXParams.MARKET_SZ, "002560", 0, 500, 20220916))
效果如下:[OrderedDict([('time', '14:29'),('price', 7.91),('vol', 582),('buyorsell', 1)]),... ...
]
请注意,查询的日期必须填写整数,不然会查询不到数据。
3.查询完整历史分时数据
在前面的示例中,我们查询了 002560 这个股票在 2022-09-16 的最后500条数据。
如果我们想要查询当天的全部数据,需要不断改变start和limit,即api_hq.get_history_transaction_data的第三个参数和第四个参数。
代码如下:
from pytdx.exhq import *
from pytdx.hq import *
api_hq = TdxHq_API()
api_hq = api_hq.connect('119.147.212.81', 7709)def get_all_trans_data(api, code, date):start = 0data = []while True:part = api.get_history_transaction_data(TDXParams.MARKET_SZ, code, start, 888, int(date))data.extend(part)if len(part) < 888:breakstart += 888return data
print(len(get_all_trans_data(api_hq, "002560", 20220916)))
# 3776
data 的格式如下:

数组里的顺序是乱的,因为我们请求数据的时候并不是按时间序列去请求的,因此还可以做数据规整化处理:
from pytdx.exhq import *
from pytdx.hq import *
from collections import defaultdict
api_hq = TdxHq_API()
api_hq = api_hq.connect('119.147.212.81', 7709)def get_all_trans_data(api, code, date):start = 0data = []while True:part = api.get_history_transaction_data(TDXParams.MARKET_SZ, code, start, 888, int(date))data.extend(part)if len(part) < 888:breakstart += 888return data
date = 20220916
data = get_all_trans_data(api_hq, "002560", date)
print(len(data))
# 3776
trans = defaultdict(list)
for tran in data:# "%Y%m%d %H:%M"trans[datetime.datetime.strptime(str(date) + " " + tran["time"], "%Y%m%d %H:%M")].append({"price": tran["price"],"volume": tran["vol"],"turnover": float(tran["price"]) * float(tran["vol"]) * 100,})
trans = dict(sorted(trans.items(), key=lambda x: x[0]))
这样,trans的数据就是格式化好的:

4.其他查询方法
除了历史分时数据,pytdx还可以查询:
股票行情数据:
api.get_security_quotes([(0, ‘000001’), (1, ‘600300’)])
参数格式:[(市场代码, 股票代码), …]
K线数据:
api.get_security_bars(9,0, ‘000001’, 4, 3)
参数如下:

读取公司信息详情:
api.get_company_info_content(0, ‘000001’, ‘000001.txt’, 0, 100)
参数:市场代码, 股票代码, 文件名, 起始位置, 数量
读取财务信息:
api.get_finance_info(0, ‘000001’)
参数:市场代码, 股票代码
还有其他更多的功能,大家可以阅读Pytdx的说明文档:
https://rainx.gitbooks.io/pytdx
总结
我们的文章到此就结束啦,如果你喜欢今天的量化投资内容,持续关注徐浪老师
相关文章:
这篇文章价值很大:股票历史分时成交数据怎么简单获取?【干货】
文章目录前言一、准备二、使用步骤1.引入库2,使用这个API查询历史分时数据:3.查询完整历史分时数据4.其他查询方法参数格式:[(市场代码, 股票代码), ...]参数:市场代码, 股票代码, 文件名, 起始位置, 数量参数:市场代码…...
muduo源码剖析--Buffer
Buffer类 Buffer类是自定义处理数据输入缓冲的类,底层是vector< char >,通过readIdx和writeIdx将缓冲区分为3个部分,第一部分是预留的8字节已经读出的缓冲区字节数、第二部分是还未读出的部分、第三部分是可写的部分。 Buffer类的设计…...
AI人工智能简介和其定义
全称:人工智能(Artificial Intelligence) 缩写:AI / ai 人工智能研究 亦称智械、机器智能,指由人制造出来的可以表现出智能的机器。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。该词也指出研究这样的智…...
python数据清洗
数据清洗包括:空值,异常值,重复值,类型转换和数据整合这里数据清洗需要用到的库是pandas库,下载方式还是在终端运行 : pip install pandas.首先我们需要对数据进行读取import pandas as pddata pd.read_cs…...
Python3 os.makedirs() 方法、Python3 os.read() 方法
Python3 os.makedirs() 方法 概述 os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。 语法 makedirs()方法语法格式如下: os.makedirs(path, mode0o777)参数 path -- 需要递归创建的目录。 mode -- 权限…...
【Linux安装数据库】Ubuntu安装mysql并连接navicat
Linux系统部署Django项目 文章目录Linux系统部署Django项目一、mysql安装二、mysql配置文件三、新建数据库和用户四、nivacat链接mysql一、mysql安装 linux安装mysql数据库有很多教程,根据安装方式不同,相关的步骤也不同。可以参考:【Linux安…...
GaussDB工作级开发者认证—第一章GaussDB数据库介绍
一. GaussDB概述 GaussDB是华为基于openGauss自研生态推出的企业级分布式关系型数据库。具备企业级复杂事物混合负载能力,同时支持分布式事务强一致性,同城跨AZ部署,数据0丢失,支持1000的计算节点扩展能力,4PB海量存储…...
阿里张勇:所有行业都值得用大模型重新做一遍!
数据智能产业创新服务媒体——聚焦数智 改变商业“2023阿里云峰会”于4月11日在北京国际会议中心隆重召开,本次峰会以" 与实俱进 为创新提速!"为主题,阿里巴巴集团董事会主席兼首席执行官张勇、阿里云智能集团首席技术官周靖人、…...
ES6(字符串的扩展与新增方法)
字符串的扩展与新增方法 1. 模板字符串 模板字符串解决了之前的字符串拼接 ESC下那个键:反引号()包裹>替换引号 ${变量名/表达式/函数}>替换引引加加导致的代码冗余 //ES5(引引加加) $(#result).append(There are <b> basket.c…...
rk3568点亮LCD(lvds)
rk3568 Android11/12 适配 lvds 屏 LVDS(Low Voltage Differential Signal)即低电压差分信号。1994年由美国国家半导体(NS)公司为克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方…...
全终端办公电子邮件集成方案
面临挑战 应用场景复杂,经常需要在不同终端进行切换,多屏、跨屏及移动办公要求高; 业务系统较多,需要同时支持多种业务的开展,对第三方应用集成及协同办公要求高; 对邮件系统的稳定及高效性要求高&#x…...
再不转型为ChatGPT程序员,有遭受降维打击的危险
Open AI在演示GPT-4的时候,有这么一个场景:给一个界面草图,就可以生成网页代码。这个演示非常简单,如果界面原型比较复杂呢?像这样:ChatGPT能不能直接生成HTML, CSS,JavaScript代码,把这个网页给…...
maven使用教程
文章目录IDEA创建maven项目maven项目必有得目录结构项目构建关键字cleanvalidatecompiletestpackageverifyinstallsitedeploy命令使用方法方法一 在terminal终端执行方法二 在右侧得maven中双击依赖管理在pom.xml下 导包、scope的传递范围、打包方式依赖冲突声明优先原则就近原…...
Emlog底部显示当前在线人数
第一步:在模板文件里面创建“visitor.php”的文件吧下面代码入进去 code <?php//首先你要有读写文件的权限,首次访问肯不显示,正常情况刷新即可$online_log "slzxrs.dat"; //保存人数的文件到根目录,$timeout 30;//30秒内没…...
【java踩坑搞起】MybatisPlus封装的mapper不支持 join,那咋办
众所周知,Mybatis Plus 封装的 mapper 不支持 join,如果需要支持就必须自己去实现。但是对于大部分的业务场景来说,都需要多表 join,要不然就没必要采用关系型数据库了。 直到前几天,偶然碰到了这么一款叫做mybatis-p…...
【创造者】——什么是数学
吉姆罗恩在不经意间这样说过,要么你主宰生活,要么你被生活主宰。这不禁令我深思. 既然如此, 康德说过一句著名的话,既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。带着这句话, 我们还要更加慎重…...
ROS系列——错误syntax error near unexpected token `$‘do\r‘‘
ROS系列——错误syntax error near unexpected token $do\r说明解决方法问题原因解决1.终端运行2.本文使用的方法,适用于代码行数较少其他方法,本质就是替换3.重新运行脚本说明 在运行.sh脚本时,报错: syntax error near unexpec…...
当星辰天合 SDS 遇见 Elastic
4 月 8 日,“Elastic 中国开发者大会 2023 ”在深圳举行,XSKY星辰天合对象存储产品总监邹博引代表星辰天合参加了此次大会,并做了主题为《SDS 与 Elasticsearch 的碰撞》的分享。“Elastic 中国开发者大会 2023 ”是由 Elastic、Elastic 中文…...
使用vue实现分页
使用vue实现分页的逻辑并不复杂,接收后端传输过来的数据,然后根据数据的总数和每一页的数据量就可以计算出一共可以分成几页 我编写了一个简单的前端页面用来查询数据,页面一共有几个逻辑 具体的效果可以看下面的演示 下面就来看一下具体的实…...
白银实时行情操作中的一些错误及其解决办法(下)
小编根据大师,网络上的高手以及自己的经验整理出的一些交易中典型的错误,投资者可以参考参考,有则改之无则加勉~续上文…… 问题三:长线获利的交易不容易坚持同时陷入盘整或亏损的交易(特别是大仓持有的品种ÿ…...
科技中介机构如何提升服务能力与客户转化率?
观点作者:科易网-国家科技成果转化(厦门)示范基地 一、现状概述:科技成果转化中的“最后一公里”困境 近年来,我国科技创新投入持续增长,技术产出规模不断扩大。然而,科技成果从实验室走向市场、…...
为ESP32智能灯光项目3D打印定制保护外壳:从设计到实战
1. 项目概述与核心价值如果你正在玩智能灯光项目,尤其是基于ESP32和NeoPixel LED灯带,那么Adafruit的Sparkle Motion系列控制板大概率已经进入了你的视野。这是一块将ESP32-S3、电源管理、电平转换和LED驱动接口高度集成的“一体化”板卡,专为…...
用STM32F103和AD9833制作一个简易信号源:从电路搭建、驱动编写到波形测试全记录
用STM32F103和AD9833打造高精度信号发生器:硬件设计、固件开发与波形优化全解析 在电子工程和嵌入式开发领域,信号发生器是不可或缺的基础工具。无论是测试滤波器响应、校准传感器,还是验证通信协议,一个稳定可靠的信号源都能显著…...
工业触控一体机选型与Linux应用开发全解析
1. 项目概述:当工业现场需要一块“聪明”的屏幕最近在跟进一个智慧工厂的MES(制造执行系统)终端升级项目,客户现场的老式工控机搭配笨重的显示器,不仅布线杂乱,操作响应慢,而且维护起来极其麻烦…...
Cursor AI 代码助手规则引擎:定制化约束与团队协作实践
1. 项目概述:一个为 Cursor 编辑器量身定制的规则引擎如果你和我一样,深度依赖 Cursor 这款 AI 驱动的代码编辑器,那你一定遇到过这样的场景:面对一个复杂的重构任务,你向 Cursor 的 AI 助手(无论是 Claude…...
基于Gemini API构建多模态视觉应用:从原理到部署实践
1. 项目概述与核心价值最近在AI多模态领域,一个名为“gemini-vision-pro”的项目在开发者社区里引起了不小的讨论。这个项目本质上是一个基于Google Gemini API的视觉识别与图像理解应用,但它并非简单的API调用封装,而是提供了一个开箱即用、…...
如何利用awesome-clothed-human资源构建你自己的虚拟试穿系统?
如何利用awesome-clothed-human资源构建你自己的虚拟试穿系统? 【免费下载链接】awesome-digital-human Digital Human Resource: 2D/3D/4D Human Modeling, Avatar Generation & Animation, Clothed People Digitalization, Virtual Try-On, etc. 项目地址: …...
Arduino智能小车避障与拟人化设计:从传感器到行为逻辑
1. 项目概述与核心思路最近在整理工作室的物料,翻出了几个闲置的360度舵机和超声波模块,手痒之下决定做个智能小车玩玩。这个项目本身不新鲜,网上教程一抓一大把,但我想做点不一样的:不仅要能实现基础的自动避障&#…...
倍福官网改版后,如何用F12开发者工具找回消失的Twincat3老版本安装包(附4024.11下载链接)
倍福官网改版后如何找回消失的Twincat3老版本安装包 作为一名自动化工程师,你是否遇到过这样的困境:项目需要特定版本的Twincat3进行维护或兼容性测试,但倍福官网改版后,历史版本下载入口却神秘消失了?这种情况在工业软…...
树莓派Pico舵机控制库picoclaw:从PWM原理到多舵机机器人应用
1. 项目概述:一个为树莓派Pico量身打造的舵机控制库如果你玩过树莓派Pico,并且尝试过用它来控制舵机,那你大概率会遇到一个头疼的问题:Pico的MicroPython固件本身并没有内置专门的舵机控制库。这意味着你需要自己动手,…...
