如何用通达信L2API自己动手做股票数据分析
摘要:
通达信L2API是通达信官方提供的行情接口,普通账户也能申请使用。它提供逐笔成交、委托队列等Level-2数据,用Python或C++就能调用。本文讲清楚申请流程、环境配置和核心函数用法,帮你打通从数据获取到策略验证的完整链条。

通达信L2API到底能干什么
很多人每天看盘用的是通达信的免费行情,五档盘口、分时成交,这些数据其实已经够普通交易者用了。但如果你想做更精细的盘口分析,比如看逐笔委托、看委托队列的撤单变化,免费数据就不够用了。通达信L2API就是给这部分需求准备的——它能把Level-2的原始数据拉出来,让你自己写程序去处理。
说白了这个接口就是一个动态链接库,通达信官方提供,你拿Python或者C++去调它里面封装好的函数。调通之后,你就能拿到比普通行情粒度更细的数据:逐笔成交明细、买卖一档到十档的委托队列、甚至撤单信息。这些数据对做短线、做量化的朋友来说,信息差就出来了。

申请接口和准备环境
第一步得先有通达信的Level-2行情权限。现在不少券商给活跃客户免费送L2,你打开自己的交易软件看看有没有十档行情,没有的话找客户经理问一句,通常资金量达标就能开通。有了权限之后,去通达信官网或者联系客服申请L2API的开发包,会给你一个压缩包,里面有头文件、库文件和示例代码。
开发环境方面,Windows下用Python最省事。你需要装好对应版本的Python,32位还是64位要和API的库文件匹配,这个搞错了会一直报错找不到模块。把API包里的dll文件放到Python脚本同目录下,或者加到系统PATH里,然后用ctypes加载就行。C++也可以,示例代码里通常有现成的工程模板,编译一下就能跑。
核心函数逐个拆解
API的接口设计不复杂,常用的就那么几个。启动的时候先调初始化函数,把行情服务器的地址和端口传进去,登录你的账号。连上之后订阅股票代码,比如你关注某只票,就把代码传给订阅函数,后面数据就会推过来。
数据回调是核心。API采用回调机制,你注册一个函数指针,每当有新数据到达,API自动调用你的函数,把数据塞给你。逐笔成交的回调里包含成交时间、价格、成交量、买卖方向标志;委托队列的回调里包含档位、价格、委托量、委托单数。把这些字段解析出来存到本地数据库或者内存队列里,后面做统计就方便了。
需要留意的是心跳机制。行情连接不能一直干等着,得定时调心跳函数告诉服务器我还活着,不然会被踢下线。示例代码里一般有定时器逻辑,照搬过来改改参数就行。
用Python调通的完整示例
下面这段代码演示最小可用流程,加载库、初始化、订阅、回调打印。你把这个跑通,后面加自己的逻辑就顺了。
import ctypes
import time
# 加载L2API动态库
l2 = ctypes.WinDLL('./tdx_l2api.dll')
# 定义回调函数类型
CALLBACK = ctypes.CFUNCTYPE(None, ctypes.c_char_p, ctypes.c_void_p)
# 逐笔成交回调
def on_tick(code, data):
print(f'收到{code.decode()}逐笔数据')
# 注册回调
cb = CALLBACK(on_tick)
l2.RegisterTickCallback(cb)
# 初始化并登录
ret = l2.Init('行情服务器地址', 端口号)
print('初始化结果', ret)
# 订阅股票
l2.Subscribe('600519')
# 主循环维持心跳
while True:
l2.Heartbeat()
time.sleep(3)
实际使用中要把data指针按照API文档的结构体定义转成Python能读的对象,ctypes的Structure可以干这事。不同版本API结构体字段可能有差异,以你拿到的头文件为准。
数据拿来做什么
拿到逐笔数据之后,能玩的东西就多了。比如统计大单净流入,把逐笔成交按成交量分段,超过一定手数的算大单,累计买入减卖出,就是资金流向的粗粒度指标。再比如看委托队列的撤单率,买一档挂了很多单但频繁撤掉,说明这个价位的支撑是虚的。量化策略里经常用这些微观结构特征做过滤条件,减少在假突破上吃面的概率。
回测的时候也别忘了用L2数据校验。日线级别的回测容易高估收益,因为没考虑盘口冲击成本。用逐笔数据模拟成交,滑点估计更接近实盘。尤其做高频或者日内回转,L2数据几乎是必需品。
踩坑提醒
API对订阅数量有限制,别一次性订几千只票,服务器扛不住会断开。行情回调里别做耗时操作,打印日志都尽量精简,不然数据积压会丢包。结构体对齐方式也要注意,c++那边默认对齐和Python ctypes默认不一样,按文档加pack参数。最稳的办法是拿官方示例代码先跑一遍,确认数据能正常解析,再往自己的工程里搬。
声明
转载声明:欢迎分享本文,转载请注明出处!
点击复制: