当前位置: 首页 > article >正文

这篇文章价值很大:股票历史分时成交数据怎么简单获取?【干货】

文章目录

  • 前言
  • 一、准备
  • 二、使用步骤
    • 1.引入库
    • 2,使用这个API查询历史分时数据:
    • 3.查询完整历史分时数据
    • 4.其他查询方法
  • 参数格式:[(市场代码, 股票代码), ...]
  • 参数:市场代码, 股票代码, 文件名, 起始位置, 数量
  • 参数:市场代码, 股票代码
  • 总结


前言

Pytdx是一个基于C++接口开发的Python第三方模块。

使用它我们能够很方便地获取通达信上的标准行情数据、历史行情数据、专业的财务数据,并且支持macOS系统,非常方便。

一、准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

请选择以下任一种方式输入命令安装依赖:

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 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 = 0
    data = []
    while True:
        part = api.get_history_transaction_data(TDXParams.MARKET_SZ, code, start, 888, int(date))
        data.extend(part)
        if len(part) < 888:
            break
        start += 888
    return 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 = 0
    data = []
    while True:
        part = api.get_history_transaction_data(TDXParams.MARKET_SZ, code, start, 888, int(date))
        data.extend(part)
        if len(part) < 888:
            break
        start += 888
    return 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

总结

我们的文章到此就结束啦,如果你喜欢今天的量化投资内容,持续关注徐浪老师


http://www.kler.cn/news/10427.html

相关文章:

  • 2023年七大最佳勒索软件解密工具
  • C#基础复习
  • 轨道交通信号系统介绍
  • 学术论文句式整理(持续更新中)
  • 【C++进阶】function和bind及可变模板参数
  • SpringBoot使用Spring Validation案例
  • AXI write data在Write data channel的排布
  • HR:面试官最爱问的linux问题,看看你能答对多少
  • 推荐一款 AI 脑图软件,助你神速提高知识体系搭建
  • C++中的类模版
  • 已知原根多项式和寄存器初始值时求LFSR的简单例子
  • C学习笔记1
  • 【安全与风险】恶意软件:概念、攻击和检测
  • 走进小程序【七】微信小程序【常见问题总结】
  • 反序列化渗透与攻防(二)之Java反序列化漏洞
  • 对 FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP 的实践
  • 这家年销售额309亿的Tier 1,要谈一场千亿新生意
  • 【软考备战·希赛网每日一练】2023年4月12日
  • apache配置与应用
  • ChatGPT实战100例 - (01) 秒出思维导图
  • 程序员的“灵魂笔记本“:五款高效笔记软件推荐
  • 线程池
  • WinForms 网格控件 - iGrid.NET 10.1.22 Crack
  • 1.java程序员必知必会类库之日志
  • Windows使用Dockers+battery historian踩坑记
  • HTTP 和 HTTPS 的区别
  • 基于Vue3封装一个好用的Websocket
  • 男生|女生漫画头像怎么制作,分享3种免费制作方法,不用求人
  • rstudio跑不动咋整?-------生信豆芽菜
  • Redis只用来做缓存?来认识一下它其他强大的能力吧。