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


前言

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

总结

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

### 回答1: Python语言具有丰富的数据分析和处理能力,可以用于下载历史分笔成交数据来进行数据分析和建模。通信达是国内一家提供股票行情数据的公司,在Python语言中可以使用tushare和pytdx等三方工具来下载通信达的历史分笔成交数据。 在使用tushare下载历史分笔成交数据时,需要先注册tushare账号,获取token,并引入tushare库。然后可以使用get_hist_data函数来获取历史分笔成交数据,其中需要传入参数code、start和end来指定股票代码、开始时间和结束时间。获取数据后可以进行筛选、转换、计算等处理。 在使用pytdx下载历史分笔成交数据时,需要先引入pytdx库,并设置相关信息如服务器IP和端口、股票市场等。然后可以使用PytdxHq_API类来获取历史分笔成交数据,其中需要传入参数code、start和end来指定股票代码、开始时间和结束时间。获取数据后可以进行转换、计算等处理。 无论使用tushare还是pytdx下载历史分笔成交数据,都需要先了解相关的API接口和参数设置,同时需要注意对数据的筛选和处理,以便获取相应的数据进行后续的分析建模。 ### 回答2: Python是一种流行的编程语言,由于它在数据分析、数据库管理、人工智能等领域具有广泛的应用,因此被认为是一种重要的编程语言。如果你想要通过Python实现从通信达下载历史分笔成交数据,可以借助Python的强大库,比如pandas和tushare。 首先,你需要在tushare上注册账户,获取token用于数据请求。然后,你可以使用tushare库中的get_tick_data()方法,输入股票代码、日期、指定数据来源,并设置token值。 下面是一个简单的代码示例: ``` import tushare as ts # 使用tushare获取历史成交数据 def get_tick_data(code, date): # 获取数据 df = ts.get_tick_data(code=code, date=date, src='tt', token='Your Token') # 对数据进行处理 df = df.drop(['type'],axis=1) # 删除无用列 df.insert(0,'code',code) # 添加股票代码列 df.insert(4,'date',date) # 添加日期列 return df ``` 以上代码将股票代码和日期作为参数,使用tushare库中的get_tick_data()函数获取给定日期股票历史分笔成交数据。返回的DataFrame可以进一步处理并保存到本地文件中,以备后续分析使用。 需要注意的是,由于下载历史分笔成交数据需要较长时间,并且tushare的数据限制,建议进行分批下载并处理,以免请求过程中出现异常。 ### 回答3: 要从通达信下载历史分笔成交数据,可以使用Python编程语言Python是一种强大的编程语言,广泛用于数据分析、科学计算、机器学习、自然语言处理等领域。 首先需要安装Python的相关库,包括tushare和pandas。Tushare是一个免费的金融数据接口库,提供了许多股票等金融数据获取方式,pandas则是一个强大的数据分析工具,提供了丰富的数据处理和操作方法。 接着,通过tushare的接口,可以获取历史分笔成交数据,参数包括股票代码和日期范围。数据格式是一个DataFrame,可以通过pandas将其转换成csv格式的文件。 在Python中,可以使用以下代码获取成交数据: ```python import tushare as ts import pandas as pd # 设置tushare的token ts.set_token('your_token_here') # 获取历史分笔成交数据,参数包括股票代码和日期范围 df = ts.get_tick_data('600519', date='20220104') # 将DataFrame保存为csv格式的文件 df.to_csv('tick_data.csv', index=False) ``` 这个例子中,我们获取了贵州茅台(股票代码:600519)在2022年1月4日的成交数据,并将其保存为一个csv文件。可以根据需要修改参数以及文件名和路径。 总的来说,Python是一个非常灵活和强大的编程语言,可以用来解决各种问题,包括数据获取、处理、分析和可视化等方面。与其他语言相比,Python的代码量相对较少,易于阅读和理解,因此是数据科学领域的热门工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐浪老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值