前段时间,群友说通达信官网更新了版本,之前的7.72版本在线了,显示的都是要收费的版本。说实话,我之前用通达信很少,搞不懂它这些版本究竟什么区别。反正我自己用的是银河QMT,就没再花时间去折腾通达信了。


前几天,为了用通达信获取我那个入门级的“山寨版LOF指数估值”,又花了点时间学习了一下,也去宽客论坛转了转,我大概有了一点眉目,于是今天动手测试了一下。
本想着用朴素的老朋友TRAE,结果他罢工了。果然,豆包都要收费了,TRAE也受不了薅羊毛的了:

于是,下载了腾讯的CodeBuddy,我看群里小伙伴有人在用它,那就试一试吧。折腾了半小时,总算出现了期待的“完美”两字:

让它回顾了整个调试过程,我润色了一番,如下,也给各位分享。这不仅仅是一个技术Bug的修复,更是一次关于编程小白"如何系统性地排查问题"的实战经验分享。希望我的经验教训,能帮助群友们在未来的开发中少走一些坑。
不过,我也不确认虽然最终成功下单,但究竟是不是AI分析的这个原因,今天我也懒得去深究了。管他黑猫白猫,抓住耗子就是好猫
之前我使用的是通达信金融终端V7.72配合tqcenter.py接口。目标是:
后来实际测试,发现下单功能完全无法使用,我以为是需要和券沟通获取进一步权限,如同QMT那样,或者需要购买通达信L2行情,就停止折腾了,忙着其他功能的开发去了。直到今天,再向虎山行!
tqcenter.py 版本信息:
AI告诉我:**"你的通达信版本太旧了!"** 我觉得不对啊,这是3月份的版本,按理说不至于一定要升级通达信客户端到最新版,而且最新版也写要收费啊? 我给AI发了通达信客户端的截图,AI服了,告诉我:
这里我犯了一个典型错误:混淆了"通达信客户端版本"和"tqcenter.py接口版本"。
AI开始仔细检查的 tqcenter.py 文件。通过搜索关键字,发现:
❌ 搜索 "stock_account" → 未找到
关键发现:V7.72版本下的 tqcenter.py 缺少 stock_account 函数!
AI询问我是否有其他版本的 tqcenter.py,幸好我之前下载了new_tdx_test20260410这个测试版,于是让AI试一试这个版本:
"D:\new_tdx_test\PYPlugins\user" 你看看这个目录里面有没有你要的函数?
在这里AI发现了**另一个 tqcenter.py**:
通过对比两个版本的 order_stock 函数,发现了大差异:
account: str | account_id: int | |
strategy_name | ||
order_remark |
# 旧版 V1.0.4 的调用方式
tq.order_stock(
account="13500XXXXXX", # ❌ 字符串账号
stock_code="162411.SZ",
...
)
旧版本确实有 order_stock 函数,但它期望的是账号字符串。问题在于:没有 stock_account 函数,就无法获取正确的账号格式。
用户只需要使用新版 tqcenter.py:
import sys
sys.path.insert(0, r'D:\new_tdx64\PYPlugins\user') # 新版路径
from tqcenter import tq, tqconst
# 第一步:初始化
tq.initialize(__file__)
# 第二步:获取账户句柄
account_id = tq.stock_account() # 自动获取已登录账号
print(f"账户句柄: {account_id}") # 输出: 账户句柄: 1
# 第三步:查询持仓
positions = tq.query_stock_positions(account_id)
print(f"持仓: {positions}")
# 输出: [{'Code': '162411.SZ', 'Cbj': '0.885', 'TotalVol': '4000'}, ...]
# 第四步:下单(使用官方常量)
order_result = tq.order_stock(
account_id=account_id, # ✅ 整数句柄
stock_code="162411.SZ",
order_type=tqconst.STOCK_BUY, # 买入 = 0
order_volume=100,
price_type=tqconst.PRICE_MY, # 自填价格 = 0
price=0.92
)
print(f"下单结果: {order_result}")
# 输出: {'ErrorId': '0', 'Msg': '已发送信号至客户端,待用户确认!', 'Value': 1}
终端输出:

APP正常显示:

order_type(委托类型):
price_type(报价类型):
1. 区分系统层级
2. 善用搜索功能
grep 或 IDE 搜索快速定位问题stock_account、order_stock 等关键字3. 对比是最好的老师
4. 官方文档永远最可靠
不要害怕走弯路。每一次Debug失败,都是一次学习的机会。
重要的是:保持耐心,系统性地排查问题,最终一定能找到答案。
# -*- coding: utf-8 -*-
"""
通达信程序化交易 - 完整示例
"""
import sys
sys.path.insert(0, r'D:\new_tdx64\PYPlugins\user') # 新版接口路径
from tqcenter import tq, tqconst
def main():
# 1. 初始化
tq.initialize(__file__)
# 2. 获取账户句柄
account_id = tq.stock_account()
if account_id <= 0:
print("获取账户失败!")
return
# 3. 查询持仓
positions = tq.query_stock_positions(account_id)
print("当前持仓:", positions)
# 4. 查询当日委托
orders = tq.query_stock_orders(account_id)
print("当日委托:", orders)
# 5. 下单示例
result = tq.order_stock(
account_id=account_id,
stock_code="162411.SZ",
order_type=tqconst.STOCK_BUY,
order_volume=100,
price_type=tqconst.PRICE_MY,
price=0.92
)
print("下单结果:", result)
# 6. 关闭连接
tq.close()
if __name__ == '__main__':
main()
这样,“半自动化交易套利群”的代码马上就可以更新通达信的下单界面了。