如何用pytdx获取通达信行情数据?

企业微信

安装与连接

安装pytdx库,使用pip命令:pip install pytdx。安装完成后,创建TdxHq_API对象,并通过connect方法连接通达信行情服务器。服务器地址可选用公共服务器,如119.147.212.81:7709,或使用标准端口列表进行多服务器尝试。


from pytdx.hq import TdxHq_API

api = TdxHq_API()

api.connect('119.147.212.81', 7709)

连接后,通过api对象调用各种方法获取数据。使用完毕后,调用api.disconnect()关闭连接。

获取行情数据

获取实时行情快照

使用get_security_quotes方法,传入股票代码列表,获取实时行情快照。股票代码需以市场代码为前缀,上海市场为1,深圳市场为0。例如,获取平安银行(深市000001)和浦发银行(沪市600000)的报价:


data = api.get_security_quotes([(0, '000001'), (1, '600000')])

print(data)

返回的data是一个列表,每个元素是字典,包含字段如price(最新价)、last_close(昨收)、open(今开)、volume(成交量)、bid1bid5(买盘五档),以及ask1ask5(卖盘五档)等。

如何用pytdx获取通达信行情数据?

获取历史K线数据

使用get_security_bars方法获取K线数据。参数包括类别(K线类型,如0为5分钟K线,1为15分钟,2为30分钟,3为1小时,4为日K线,5为周K线,6为月K线),市场代码,股票代码,起始位置(0表示最新数据),数量(最大800条)。


# 获取日K线,最近100条

data = api.get_security_bars(4, 0, '000001', 0, 100)

返回数据包含openhighlowclosevol等字段。注意:vol是成交量,但单位是股还是手需要确认,通常为股。

获取分时数据

获取分时走向数据,使用get_minute_time_data方法,传入市场代码和股票代码。


data = api.get_minute_time_data(0, '000001')

返回的分时数据包含每分钟的价格、成交量等信息。

获取财务数据

获取股票的基本财务信息,使用get_finance_info方法,传入市场代码和股票代码。


info = api.get_finance_info(0, '000001')

返回信息包括总股本、流通股、每股收益等。

数据处理与常见问题

获取到的数据往往是原始格式,需要进一步处理。例如,将列表转换为DataFrame以便分析。


import pandas as pd

df = pd.DataFrame(data)

print(df)

常见问题:连接不上服务器,可能网络问题或服务器地址无效。可尝试多个服务器地址列表循环连接。数据获取权限限制:有些服务器可能限制访问频率,需合理控制请求间隔。返回的数值类型为字符串或整数,需转换类型。


# 确保数值类型

for item in data:

    item['price'] = float(item['price'])

实战示例:监控股票价格变动

通过循环定时获取股票报价,实现监控。注意异常处理。


import time

try:

    while True:

        data = api.get_security_quotes([(0, '000001')])

        if data:

            price = data[0]['price']

            print(f"当前价格: {price}")

        time.sleep(1)

except KeyboardInterrupt:

    api.disconnect()

其他实用功能

pytdx还提供获取服务器时间、获取股票列表等函数。使用get_server_time获取服务器当前时间,get_security_list获取指定市场的所有股票代码。


# 获取深圳市场所有股票代码

stocks = api.get_security_list(0)

性能优化建议

当需要同时获取多只股票或大量数据时,可使用线程池,但注意避免请求过于频繁导致被封。推荐使用异步IO或批量请求。

通过pytdx库,你可以轻松获取通达信行情数据,为量化交易提供数据支持。掌握基本用法后,可扩展更多功能,如技术指标计算、策略回测等。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/pytdx-tongdaxin-458.html