通达信API怎么用才能自动下单和获取实时行情

企业微信

通达信真的自带API吗

很多刚接触量化交易的朋友会问,通达信这么大一个软件,有没有官方API可以直接调用。答案很直接,没有。通达信官方从未开放过一套类似券商交易接口那样的标准API。你在网上搜到的所谓通达信API,绝大多数是第三方开发者通过逆向工程做出来的工具包,或者是券商在通达信基础上二次封装的内置接口。

这背后的逻辑不复杂。通达信本质是一个行情展示和手动交易终端,它的核心收入来自券商授权和散户使用,不是给量化机构做底层接口。真要开放API,牵涉到交易安全、合规、风控一大堆事,通达信自己没动力做。

做量化交易到底能调用通达信什么

虽然官方不给API,但通达信有几个能间接被程序利用的东西。

第一是本地数据文件。通达信会把日线、分钟线数据存在安装目录的vipdoc文件夹里,格式是二进制。你写程序直接读这些文件,就能拿到历史行情。这个方法很老土,但稳定,不依赖网络。

通达信API怎么用才能自动下单和获取实时行情

第二是公式系统。通达信支持自定义公式,公式语言里有一些函数可以输出信号。你没法从外部直接调用公式,但可以把公式计算的结果导出成文本,再用Python去读。

第三是券商版通达信的下单接口。部分券商给机构客户提供了基于通达信界面的DLL接口,通过一个叫TradeX.dll或者类似名字的动态链接库来发单。这个接口不对普通散户开放,需要找客户经理申请,而且不同券商接口名字和参数完全不一样。

散户最常用的pytdx怎么玩

如果你只是想获取行情数据,pytdx是绕不开的工具。它是一个纯Python写的库,模拟了通达信的通信协议,直接连到通达信的行情服务器上拉数据。

安装很简单:


pip install pytdx

拉取股票日线数据:


from pytdx.hq import TdxHq_API

api = TdxHq_API()

with api.connect('119.147.212.81', 7709):

    data = api.get_security_bars(9, 0, '000001', 0, 10)

    for bar in data:

        print(bar['datetime'], bar['close'])

这段代码连的是深圳行情服务器,9代表日线,0代表深圳市场,000001是平安银行。返回的数据里包含开高低收和成交量。

pytdx也能取分钟线、指数、期货数据。期货代码需要换市场参数,比如中金所的股指期货用市场代码47,商品期货用28或29。

自动下单的坑在哪里

easytrader是另一个常被提起的库,它通过模拟鼠标键盘操作通达信、同花顺这些客户端来实现自动交易。

原理很粗暴。easytrader找到通达信下单窗口的句柄,然后程序控制键盘输入股票代码、价格、数量,再模拟点击买入按钮。


import easytrader

user = easytrader.use('ths')

user.connect(r'C:\同花顺\xiadan.exe')

user.buy('000001', price=10.5, amount=100)

看起来能跑通,实际用起来问题很多。通达信或同花顺窗口一弹广告、一卡顿,模拟点击就失效。券商如果升级了客户端界面,句柄全变,代码直接报废。更严重的是合规问题,券商明确禁止第三方程序模拟下单,一旦检测到可能冻结账户。

期货API和股票API有什么不同

股票这边散户基本拿不到官方API,期货那边正好相反。国内四大期货交易所都支持CTP接口,这是官方标准,任何期货公司都可以给客户开。

CTP接口用C++写,有Python封装版叫vnpy、ctpbee。你通过期货公司申请一个仿真或实盘账户,拿到经纪商代码、用户名、密码、前置机地址,就能用程序发单。


from ctpbee import CtpBee

app = CtpBee('my_app', __name__)

app.config.from_object('config')

app.start()

配置文件里填上期货公司给你的信息。CTP接口支持行情订阅、报单、撤单、查询持仓,功能比通达信那套模拟点击强太多。

股票没有统一的标准API,期货有,这是本质区别。做股票量化,要么用券商给机构的专用接口,要么走miniqmt这种极速交易系统,普通通达信客户端注定只能手动或半自动。

想用通达信做量化该走哪条路

把需求拆开看。

只要历史行情做回测,用pytdx读数据,存到本地数据库,完全够用。

要实时行情做监控,pytdx也能连行情服务器,但稳定性不如券商官方行情源。可以配合新浪财经、腾讯财经的免费接口做备用。

要自动下单,股票端建议放弃通达信,去问你开户的券商有没有QMT或Ptrade。这两个系统是券商给量化客户的标准工具,有官方Python接口,合规且稳定。期货端直接上CTP,不要碰模拟点击。

通达信本身是一个优秀的看盘工具,不是量化平台。硬要用它做API调用,投入产出比很低,还容易踩合规红线。把通达信当行情数据源之一,交易执行交给专业接口,才是正路。

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