通达信数据 - 使用通达信量化TQ(tdx quant)(2) - 工作原理

Published

通达信数据 - 使用通达信量化TQ(tdx quant)(2) - 工作原理

TdxQuant 使用条件(运行环境要求)如下

 

1.需预先启动支持 TQ 策略功能的通达信版本

2. 必须登录通达信账户- 登录后才能获取数据权限

3.通达信客户端需保持运行状态- TdxQuant 通过 API 与客户端通信

 

采用 “Python 策略脚本(tqcenter.py) ←→ TPythClient.dll ←→ tdxw.exe” 的分层通信模式,实现高效的进程间数据交互。

 

Tqcenter.py - TDX数据访问类,提供了与通达信DLL交互的接口,封装了TPythClient.dll中的方法

 

调用流程


Python 脚本运行 → tq.initialize(__file__) → 调用 TPythClient.dll的 InitConnect 函数,TPythClient.dll建立和TdxW.exe的连接。


tq.get_market_data(...) → tqcenter.py 封装参数 → 通过 ctypes 调用 TPythClient.dll 对应函数。


TPythClient.dll → 通过共享内存/消息发送请求到 tdxw.exe。


tdxw.exe 处理请求(查缓存或触发数据刷新)→ 将结果写入缓冲区 → DLL 读取并返回字符串。


tqcenter.py 解析 JSON → 返回 Pandas DataFrame 等给策略代码。


策略结束 → tq.close() 断开连接

 

 

Tqcenter.py

 

功能:Tqcenter.py(对TPythClient.dll接口封装层)

通过ctypes库加载TPythClient.dll;封装与DLL交互的核心逻辑;发起请求(如获取行情数据)并解析TPythClient.dll返回的结果;

D:\Thirdprogram\newtdxtqv772\PYPlugins\user\tqcenter.py

'''
    Version: 1.0.4
    2026-03-06
'''
# 加载DLL
global_dll_path = Path(__file__).resolve().parents[1] / 'TPythClient.dll'
dll = ctypes.CDLL(str(global_dll_path))

# 设置DLL函数的返回类型
dll.InitConnect.restype = ctypes.c_char_p       # 初始化 获取id
dll.GetStockListInStr.restype = ctypes.c_char_p  # 获取股票列表
dll.GetHISDATsInStr.restype = ctypes.c_char_p   # K线数据

 

 

TPythClient.dll

TPythClient.dll 是 TdxQuant(TQ)框架的进程间通信桥接库。

进程间通信:通过tdxw.exe共享内存/消息队列:实现DLL与tdxw.exe的高效数据交换。

D:\Thirdprogram\newtdxtqv772\PYPlugins\TPythClient.dll

功能:

处理 TPythClient.dll 与 tdxw.exe 的进程间通信:发送请求(InitConnect、GetHISDATsInStr、GetStockListInStr 等)、接收结果(通常以字符串/JSON 格式返回)

 tdxrpcx64.dll:RPC 通信辅助库

 

TPythClient.dll提供的函数

DLL通常返回字符串格式的JSON数据,Python再将其解析为字典

data_dict = json.loads(ptr)

 

 

tdxw.exe - 通达信客户端

 

tdxw.exe运行后,接口已经暴漏给外部。

暴露接口给外部:通过内部机制接收 TPythClient.dll 的请求,并将结果写入共享内存或通过消息通知 TPythClient.dll。

提供股票行情、交易接口等核心功能;

接收DLL的数据请求指令(如查询某股票价格)。

推送数据到DLL的缓冲区(如分时成交数据)

 

 

D:\Thirdprogram\newtdxtqv772\PYPlugins目录
├───\file
├───\sys
├───\user
│   ├───tdxvbt.py
│   ├───tqcenter.py
│   ├───test.py
│   └───
│   DLLLoader64_EC4B.exe dll加载器
│   mfc100.dll mfc运行库
│   msvcp100.dll msvc运行库
│   msvcr100.dll msvc运行库
│   py_strategy.cfg 策略配置文件
│   tdxrpcx64.dll 通达信RPC通讯库
│   TPyth.dll QT策略的界面库
└───TPythClient.dll python策略程序需要加载的运行库

 

useful links

https://mp.weixin.qq.com/s?__biz=MzUxMTU0ODMxMg==&mid=2247484960&idx=1&sn=7cccc70996ddbe622a028d9b87222ed4&chksm=f97348d7ce04c1c1ef4393c213555d0ed72bf5b7f4ad000374c2b834e24c9367be6f8d8d5295&cur_album_id=4304656852933361666&scene=189#wechat_redirect