A股股票行情接口Python实战-获取市场股票数量

256 阅读2分钟

一、环境配置(必须)

在开始之前,需要特别注意环境配置,否则可能会出现 DLL 加载失败或崩溃问题。

  1. 操作系统

• 必须使用 Windows 系统,因为 .dll 文件是基于 Win32 的 C++ 接口库。

  1. Python 版本

• 必须安装 32 位版本的 Python(x86)。

• 原因是:.dll 文件是 32 位编译的 C++ ,Python 与 DLL 的位数必须一致,否则会报错。

二、准备工作

  1. 打开www.tdxjk.com

  2. 获取 DLL 文件:选择对应的行情接口的EXE演示版文件(例如:下载普通行情的EXE演示版文件),下载解压后获取 TdxHqApi.dll 和 TdxHQ.exe软件

  3. TdxHqApi.dll: 接口包

  4. TdxHQ.exe:可以获取到ip和port

三、核心代码示例

import ctypes

api_dll_path = "C:\Users\Administrator\Downloads\TdxL2HqClient202507201014\TdxHqApi.dll"  # dll文件路径

# 加载 DLL
TdxHqApi = ctypes.WinDLL(api_dll_path)

# 分配缓冲区,存放返回信息
Result = ctypes.create_string_buffer(2 * 1024 * 1024)  # 成功信息的数据载体,一般分配  1024 * 1024 即可
ErrInfo = ctypes.create_string_buffer(256)  # 错误信息的数据载体,一般要分配256字节的空间,没有发生错误是空字符串

# 登录参数(需根据实际情况替换)
Ip = "123.123.123.123".encode("gbk") # 下载 exe软件(exe演示版) 后登录获取
Port = 1234 # 下载 exe软件(exe演示版) 后登录获取
Account = "xxx".encode("gbk") # 使用联系方式联系开通
Password = "yyy".encode("gbk") # 使用联系方式联系开通

# 调用接口进行连接
ConnectionID = TdxHqApi.TdxHq_Connect(Ip, Port, Account, Password, Result, ErrInfo)  # 登录
# 输出结果
print(Result.value.decode("gbk"))
print(ErrInfo.value.decode("gbk"))

# 如果连接成功,进一步操作
if ConnectionID != -1:
    Count = ctypes.c_ushort(0)
    # 获取深圳市场内证券数量。参数二表示交易市场,0为深圳市场,1为上海市场
    success = TdxHqApi.TdxHq_GetSecurityCount(ConnectionID, 0, ctypes.byref(Count), ErrInfo) 
    print(Count)
    print(ErrInfo.value.decode("gbk"))
    # 断开连接
    TdxHqApi.TdxHq_Disconnect(ConnectionID)

四、代码解析

  1. 加载 DLL
TdxHqApi = ctypes.WinDLL(api_dll_path)

使用 ctypes.WinDLL 加载本地的行情接口 DLL。

  1. 创建缓冲区
Result = ctypes.create_string_buffer(2 * 1024 * 1024)
ErrInfo = ctypes.create_string_buffer(256)

Result 用于存放正常返回信息,ErrInfo 存放错误提示。

  1. 连接行情服务器
ConnectionID = TdxHqApi.TdxHq_Connect(Ip, Port, Account, Password, Result, ErrInfo)

如果 ConnectionID != -1,说明连接成功。

  1. 获取证券数量
success = TdxHqApi.TdxHq_GetSecurityCount(ConnectionID, 0, ctypes.byref(Count), ErrInfo)

参数 0 表示深圳市场,1 表示上海市场,结果存放在 Count.value。

  1. 断开连接

TdxHqApi.TdxHq_Disconnect(ConnectionID)

五、运行结果示例

  1. TdxHq_Connect接口数据演示:
服务器名称	最后交易日期
深圳双线主站1	20250825
  1. TdxHq_GetSecurityCount接口数据演示:
 c_ushort(21221) # 获取到21221支股票信息