通达信的API到底能帮你做什么

企业微信

通达信不只有看盘界面

很多人电脑里装着通达信,每天用它看K线、翻F10、画趋势线。很少有人注意到,这个软件还藏着一套对外沟通的通道,能让外部程序把行情数据拿走,也能把交易指令送进去。这套通道就是通达信的API。

API这个词听起来像程序员专属,翻译成大白话就是软件对外开的一扇窗。你通过这扇窗递一张纸条进去,它按纸条上的要求干活,再把结果从窗口递出来。通达信的API让股票和期货的自动化交易有了落地的可能,不需要你盯着屏幕手动敲代码。

通达信的API到底能帮你做什么

通达信API的几种形态

通达信并没有一个官方叫“通达信API”的单一产品,实际使用中常见的是三种路径。

公式系统接口

通达信内置的公式语言本身就是一套简易API。你写一段公式,软件在K线图上执行,把满足条件的股票选出来。公式里的CLOSE代表收盘价,VOL代表成交量,HHV求最高值,EVERY判断持续满足。这套语言不依赖外部编程环境,在通达信内部就能跑。

做股票筛选时,用公式系统最快。写一个“连续三天收盘价站上20日均线”的条件,公式编辑器里敲几行代码,保存为选股公式,执行一次就能把全市场的票过滤一遍。这个过程的本质就是调用通达信提供的行情计算接口。

DLL动态链接库接口

通达信允许外部DLL文件接入,用C++或C#编译成动态链接库,通达信在运行公式时把行情数据传给DLL,DLL计算完把结果返回。这个接口的灵活性远高于纯公式语言。

做期货程序化交易时,DLL接口能把实时行情推送到你自己的策略模块,策略模块算完信号,再通过DLL把下单请求传回通达信。整个过程在通达信进程内完成,延迟低,不用另外开一个行情转发程序。

写DLL需要注意通达信的数据结构定义,比如公式参数传递用到的TCalcInfo结构体,里面包含股票代码、周期、数据个数等字段。C++代码大致长这样:


// 通达信DLL公式接口示例

int WINAPI Calculate(TCalcInfo* pInfo, double* pOut, double* pIn)

{

    // pIn[0]是输入参数,pOut[0]是输出结果

    double close = pInfo->pData[pInfo->nDataCount - 1];

    pOut[0] = close > 10.0 ? 1.0 : 0.0;

    return 0;

}

这段代码的功能是判断最新收盘价是否大于10元,大于返回1,否则返回0。编译成DLL后,在通达信公式里调用这个DLL函数,就能在选股或预警中使用。

交易接口与券商通道

通达信本身不直接提供下单API,它的交易功能依赖券商柜台。部分券商开放了通达信版本的交易接口,允许程序化下单。期货领域更常见的是CTP接口,通达信作为行情前端,CTP负责交易执行。

股票程序化交易受监管约束较多,个人投资者通过通达信API直接下单的路径并不通畅。期货程序化交易的环境相对宽松,用通达信做行情源、用CTP做交易通道是主流做法。

用Python调用通达信数据

通达信本地数据文件格式是加密的,直接读取有门槛。社区里有人做了Python库来解析通达信的日线数据文件,装好库之后读本地行情文件写几行代码就行。


# 读取通达信本地日线数据

import pytdx

api = pytdx.TdxHq_API()

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'])

这段代码连的是通达信行情服务器的公开地址,获取平安银行最近10根日K线。get_security_bars的第一个参数9代表日线周期,0代表深圳市场。跑通之后,你可以把数据存进数据库,用pandas做回测,或者实时监控价格异动。

期货数据也能通过类似方式获取。通达信期货行情服务器的地址和股票不同,需要单独配置。拿到数据后,用numpy算均线,用matplotlib画图,整个流程和股票一致。

条件预警与自动化选股

通达信自带条件预警功能,设置好价格突破、指标金叉等条件,软件在盘中自动弹出提醒。这个功能的底层就是API在轮询行情数据、执行判断逻辑。

把预警和DLL结合,能做到更复杂的自动化。盘中碰到预警信号,DLL里的策略模块自动计算仓位、生成委托,通过券商接口发出去。股票T+1制度下,当天买入无法卖出,这种自动化更适合期货或者ETF的日内交易。

搭建一套自己的量化系统

从通达信API出发,一套轻量级量化系统可以这样搭:通达信负责行情采集和公式计算,Python负责数据处理和策略回测,CTP负责期货下单执行。三个模块各司其职,用文件或者网络端口传递数据。

这套系统的成本很低。通达信免费,Python免费,CTP接口期货公司通常不收费。你需要的是一台稳定运行的电脑或者云服务器,以及基本的编程能力。

股票方面,通达信的公式选股加上Python的批量回测,已经能覆盖大部分个人投资者的需求。不需要花几万块买商业量化软件,用通达信自带的接口就能完成从选股到验证的闭环。

绕不开的坑

通达信API的文档不完整,很多接口靠社区摸索。DLL接口在不同版本的通达信上行为可能有差异,升级软件后需要重新测试。行情服务器地址偶尔失效,需要找可用的备用地址。

期货程序化交易还要考虑交易频率限制和报单撤单规则,不同期货公司的CTP参数有区别。这些细节没有统一答案,需要在实际运行中调试。

通达信API不是万能的,它是一套工具。工具的价值取决于用的人怎么组合、怎么调试、怎么控制风险。理解它的能力边界,比急着写代码更重要。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/tongdaxin-API-lianghua-jiaoyi-1069.html