企业微信

通达信API到底是个啥?普通人能碰吗

很多人一听到API就发怵,觉得那是程序员才玩的东西。通达信API说白了就是通达信这个炒股软件对外开的一个口子,让别的程序能伸手进去拿数据。你平时看盘的通达信客户端里,股票价格、期货合约的 tick 数据、K线图,这些都能通过这个口子被外部程序读到。

有人问,那我不会写代码能用吗?能,但只能很浅地用。比如你下载一个现成的小工具,它背后已经在调通达信的接口了。你真想自己动手抓数据做点自定义的事儿,还是得懂几行Python。门槛不算高,比考个驾照简单。

通达信API怎么用普通散户也能调用行情数据吗

通达信API不是官方文档里那种标准接口

通达信官方并没有像券商那样公开一套完整的RESTful API文档。市面上说的“通达信API”通常指两条路。第一条是通达信自己的DLL动态链接库,比如TdxHq_API那种,需要你用C++或者Python的ctypes去调。第二条更流行,叫pytdx,一个开源库,把通达信的数据协议扒了个干净,让你用Python直接连通达信的行情服务器。

股票和期货都能拿。股票拿的是沪深A股、指数、可转债。期货拿的是国内四大交易所的合约,像螺纹钢、铁矿石、原油、豆粕这些。区别在于期货有夜盘,数据时间戳跟股票不一样。

用pytdx拉股票行情 三行代码就能跑

先装库。命令行敲 pip install pytdx。然后找个能用的通达信服务器IP,网上能搜到一堆,但经常失效。稳妥的办法是自己用通达信客户端里的“通讯设置”看当前连的服务器地址。


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)

    print(data)

get_security_bars 里第一个参数9代表日K线,0代表深圳市场,000001是平安银行,最后的10是拿最近10根K线。返回的是列表,每根K线有开盘、最高、最低、收盘、成交量。期货把市场代码换成对应交易所就行,比如上海期货交易所是113,拿螺纹钢主力合约rb2310的分钟线。

实时行情和历史数据分开抓

get_security_quotes 拿的是实时五档行情,股票期货都行。get_security_bars 拿历史K线,最多一次拿800根。你要做回测,得循环分页抓,每次挪动起始位置。

抓期货数据要注意合约代码的写法。通达信里螺纹钢主力是rb00,但pytdx要写具体合约比如rb2310。换月的时候得自己维护主力合约列表。

股票和期货数据用通达信API有哪些坑

第一个坑是服务器不稳定。通达信的免费行情服务器经常断,你得写重连逻辑。api.connect 失败就换IP,循环试。

第二个坑是数据延迟。免费服务器是Level-1行情,股票每3秒一笔,期货每0.5秒一笔。你要做高频策略,这个延迟根本不够用。得花钱买Level-2或者直接用CTP接口。

第三个坑是字段不一致。股票返回的成交量单位是股,期货是手。股票价格小数点后两位,期货有的品种三位甚至四位。写策略时得按品种做归一化。

代码里加个心跳检测


import time

def safe_connect(api, ip_list):

    for ip in ip_list:

        try:

            api.connect(ip, 7709)

            return True

        except:

            continue

    return False

把常用IP存成列表,连不上就轮询。期货夜盘时段服务器负载高,最好多备几个IP。

用通达信API做量化策略信号有多现实

现实但别指望暴利。通达信API的优势是零成本拿数据,适合做日线级别的策略验证。你写个双均线策略,每天收盘后拉最近200天K线,算一下金叉死叉,第二天开盘手动挂单。这能跑通。

想全自动交易,通达信API只负责喂数据,下单得接券商接口。股票用华泰、东财的量化接口,期货用CTP或者易盛。中间用Python的schedule库定时触发。

一个实用场景是期货跨期套利监控。同时拉近月合约和远月合约的分钟线,算价差。价差超过历史均值两个标准差就弹窗提醒。比人盯着屏幕强多了。

通达信API和量化平台比差在哪

聚宽、米筐这些平台自带数据,不用你操心服务器。通达信API的好处是数据在本地,不依赖第三方云服务。坏处是你得自己维护数据清洗、存储、复权处理。

股票除权除息后的价格修正,通达信API返回的是不复权数据。你得自己算复权因子。期货换月移仓的价差调整也得手动做。这些脏活累活量化平台帮你干了,用通达信API就得自己扛。

对散户来说,通达信API最大的价值是让你从看盘软件的用户变成数据的主人。你不再被软件界面限制,想怎么切数据就怎么切。花一个周末学点pytdx,后面省下的数据费够吃好几顿火锅。