
通达信PC版接口现状
通达信PC版本并未开放官方API接口用于程序化交易。许多量化交易者希望直接调用通达信进行行情获取或下单,但通达信官方仅提供DDE数据导出、公式系统等有限功能,不提供类似CTP、IB那样的标准交易API。通达信的核心定位是行情分析与手动交易,其底层通讯协议并未公开。因此,直接通过通达信PC版进行自动化交易存在技术障碍与合规风险。
常见的替代方案
1. 使用pytdx库获取行情数据
pytdx是一个开源Python库,通过逆向工程通达信协议实现行情数据读取。它支持连接通达信服务器获取股票、期货、期权等实时行情与历史K线。pytdx不需要启动通达信客户端,直接通过网络请求即可。
安装pytdx:

pip install pytdx
获取股票实时行情示例:
from pytdx.hq import TdxHq_API
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
data = api.get_security_quotes([(0, '000001'), (1, '600000')])
for item in data:
print(item['code'], item['price'], item['vol'])
获取期货行情需连接支持期货的服务器,代码市场标识不同。pytdx也支持获取历史K线,用于回测。
2. 通达信公式系统与DLL插件
通达信允许通过公式系统编写自定义指标,并支持DLL插件扩展。用户可以编写C++ DLL,导出特定函数供通达信调用。这种方式可以实现自定义信号计算,但无法直接下单。DLL插件常用于复杂指标计算或外部数据读取,但仍受限于通达信客户端环境。
3. 第三方量化平台对接
许多量化平台(如聚宽、米筐、优矿)提供通达信数据接口的封装,但本质仍是爬取或购买数据。部分券商提供基于通达信内核的量化交易终端,并开放API,如某些券商的QMT、PTrade。这些系统底层可能使用通达信行情,但交易接口是券商自有的。
股票与期货量化交易接口选择
股票量化接口
pytdx:仅行情,无交易。适合数据获取与策略信号生成。
easyquotation:基于新浪、腾讯等公开接口,实时性较好,但非通达信。
券商官方API:如华泰、国金等提供MATLAB、Python接口,需开通权限。
CTP股票:不适用,CTP主要用于期货。
期货量化接口
CTP:上期技术提供,支持商品期货、股指期货,需通过期货公司开通。
飞马、易盛:其他期货交易接口。
pytdx:可获取期货行情,但交易需单独对接。
若坚持使用通达信行情进行期货量化,可结合pytdx获取数据,再通过CTP等接口下单。
实战:利用pytdx构建简单行情监控
以下代码演示如何用pytdx获取股票与期货行情,并计算简单移动平均。
from pytdx.hq import TdxHq_API
import pandas as pd
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
# 获取股票历史K线
bars = api.get_security_bars(9, 0, '000001', 0, 100)
df = pd.DataFrame(bars)
df['ma5'] = df['close'].rolling(5).mean()
print(df[['datetime', 'close', 'ma5']].tail())
# 获取期货行情(需期货服务器)
# 期货市场代码通常为28, 29等,具体参考pytdx文档
合规与风险提示
通达信协议为私有协议,逆向工程可能违反用户协议。pytdx仅用于学习研究,商业使用需谨慎。程序化交易需遵守交易所与券商规定,避免高频报撤单等异常行为。期货交易杠杆高,风险大,量化策略需充分回测。
通达信PC版无官方API,量化交易者应选择合规的接口。行情获取可用pytdx,交易需通过券商或期货公司官方API。股票量化可考虑QMT、PTrade,期货量化首选CTP。策略开发应注重风险控制,避免依赖非官方接口进行实盘交易。