
通达信API接口概述
通达信API接口为开发者提供行情数据、交易接口等核心功能,是连接外部程序与通达信客户端的桥梁。其接口设计遵循Windows COM组件规范,支持C++、C#、Python等语言调用。掌握这些接口,交易者可构建自动化的策略执行系统,实现行情实时获取、订单快速提交等功能。
接口类别与功能
行情数据接口是量化交易的基础,提供股票、期货等品种的实时行情、历史数据。交易接口支持资金查询、下单、撤单操作,为执行交易策略提供通道。其他辅助接口包括账户信息查询、订阅市场监控等。日常使用中,按需组合这些接口,可完全控制交易流程。
获取与安装
通达信API接口随客户端安装,路径通常位于安装目录下的‘tcp协议’或‘导出’文件夹。若需独立开发,可从官网下载对应版本的API库文件。安装后,在IDE中引用相应动态链接库,开始调用接口。特别留意,API版本需与通达信客户端版本匹配,避免调用失败。

通达信API调用基础
初始化与登录
调用接口前,需创建对象并完成登录验证。初始化过程涉及设置交易服务器地址、账户密码等参数。示例代码(使用Python通过COM调用)如下:
import win32com.client
tdx = win32com.client.Dispatch('TDX.StockApi')
tdx.Init('your_path')
tdx.Logon('account', 'password', 1) # 1表示交易账户
登录成功后,返回连接状态值,可判断是否顺利连接。实践中,登录失败需检查网络、账户权限等设置。
获取行情数据
行情获取是统计套利、趋势跟踪等策略的基础。通过API可以查询实时报价、五档盘口、分时数据等。例如,获取某股票当前价格:
price = tdx.GetPrice('600000', 1) # 1表示最新价
print('当前价格:', price)
更复杂的历史数据请求,需要设置时间周期并保存数据到本地文件,供策略分析使用。
交易接口实操
查询资金与持仓
程序化交易下单前需确认资金充足。交易接口提供资金查询服务,调用返回账户可用资金、冻结资金等。持仓查询接口返回当前持有合约及数量。这些数据有助于动态调整仓位。
下单与撤单
下单接口是自动化交易的核心,需要指定合约代码、买卖方向、价格类型、价格和数量。价格类型包括限价单和市价单。设置好参数后,调用下单函数返回订单编号。如果条件变化,则利用撤单接口及时撤回未成交订单。
order_id = tdx.SendOrder(1, '600000', 1, 10.5, 100) # 买入100股,价格10.5
if tdx.CancelOrder(order_id) == 0:
print('撤单成功')
接收交易回报
交易状态信息通过事件回调或轮询方式获取。通达信API支持事件通知,当订单成交、撤单成功时,触发相应事件。编程时可设置事件处理函数,实时跟踪订单状态并记录日志。
数据解析与量化策略集成
常用数据格式解析
行情接口返回的数据常为数组或结构体,嵌套较多。需明确字段含义,如时间戳、开高低收等。解析时注意数据类型转换,避免获取错误值。实战中,编写解析函数处理各个数据项,降低耦合度。
策略接口设计
量化策略通常需要历史数据回测及实时信号生成。将策略逻辑封装成独立模块,与其通达信API的数据获取、下单模块对接。利用Python的pandas、numpy进行数据处理与回测,结合通达信的实时数据执行交易。
示例:均线策略
以简单的双均线策略为基础,实现自动交易。策略计算5日和20日移动平均线,当5日线上穿20日线时产生买入信号。代码示意如下:
import numpy as np
import pandas as pd
# 获取历史数据
def fetch_data(code):
# 通过通达信API获取收盘价序列
pass
# 策略计算
def signal(close):
short_ma = pd.Series(close).rolling(5).mean()
long_ma = pd.Series(close).rolling(20).mean()
if short_ma[-1] > long_ma[-1] and short_ma[-2] <= long_ma[-2]:
return 'buy'
return 'hold'
# 执行交易
while True:
price = get_live_price('600000')
if signal(price) == 'buy':
tdx.SendOrder(1, '600000', 1, price, 100)
此模块化设计使策略与交易细节分离,易于后续优化维护。
常见问题与应对
连接不稳定
长时间运行时,API连接可能断开。建议程序定期发送心跳请求,若检测到断开,自动重新登录。可使用定时器循环检查连接状态。
数据延迟与乱序
实时行情受网络影响可能有延迟,高频率交易时需注意。可考虑使用多个数据源对比,或降低交易频率。对数据序列进行时间戳校验,丢弃乱序数据。
权限与合规
使用交易接口需要注意账户权限,部分接口需实盘账户开通程序化交易功能。遵守交易所的交易规则,防止异常订单对策略造成影响。
扩展阅读与资源
通达信官方帮助文档提供了详细的接口说明,开发者可在客户端帮助菜单中查看。第三方开源社区也有许多封装库,如Python的pytdx,但注意其数据源不完全走通达信API。利用官方接口能更好地保证数据完整性,但需要处理Windows环境下的COM互操作问题。
在实施程序化交易项目时,务必先在模拟环境中全面测试,再实盘部署。结合外部数据库存储行情记录,也能降低程序崩溃时的数据损失风险。
通达信API接口为期货和股票的自动化交易提供了可靠的底层支持,关键在于理解接口的数据结构及调用规范。将策略逻辑与交易执行解耦,构建模块化程序,能提高系统稳定性。实践中不断深入掌握每个接口的参数细节,逐步优化算法,方能适应多变的市场行情。