Python通达信数据接口 MOOTDX:三步拉通 A股K线数据
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
晚上复盘想批量拉沪深两市的日线,商业数据源按月收费,免费接口又要自己啃二进制协议。MOOTDX 是一个 Python通达信数据接口封装,直连通达信行情服务器,免费把 A股行情、K线数据和财务信息拉成 DataFrame。
三步跑通第一次调用
装依赖
mootdx 本体依赖不多,但带完整功能的那组依赖更省心,一行装完:
pip install 'mootdx[all]'建客户端,拿到第一份 K线数据
标准市场客户端只需要一个工厂方法,不用配 IP、不用写协议字段。bars里frequency=9对应日线,offset控制往前取多少根:
from mootdx.quotes import Quotes client = Quotes.factory(market='std') df = client.bars(symbol='600036', frequency=9, offset=10) # 最近10根日线 print(df)跑完能看到 open、close、high、low、vol 这些列,说明整条链路已经通了。
它真正擅长的三件事
A股行情获取:bestip 自动挑最快服务器
通达信行情靠一堆免费公共服务器撑着,哪台快哪台慢并不固定,手动写死 IP 很容易踩雷。mootdx 内置了测速选服逻辑,在工厂方法里加一个参数就行:
client = Quotes.factory(market='std', bestip=True) # 创建前先测速选最快节点平时也可以在命令行里跑python -m mootdx bestip -vv看看当前各节点的延迟。实际效果是:换网络、换机器之后,通常一行配置都不用改。
不同周期的 K线数据,换一下调用方式就切换
新手最容易卡住的地方是"日线、分钟线、指数到底各走哪个接口"。mootdx 把这些整理成了同一套 client 上的方法:日线用bars(symbol, frequency=9),分钟线用client.minute(symbol='600036'),指数行情用client.index(symbol='000001', frequency=9)。你不需要去翻通达信协议文档里那些周期编号,想切周期就换个方法名。
离线读本地数据:盘后不用挂连接
如果你本机装过通达信,.day、.lc1这类文件已经躺在数据目录里了,Reader 可以直接把它们读出来,完全不走网络。适合做盘后批量整理:
from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') print(reader.daily(symbol='600036')) # 本地日线网络行情接口和离线读取走的是同一个 DataFrame 结构,同一段处理代码两边都能接。
一条完整工作流走一遍
免费股票数据:日线 → 20 日均线 → CSV
场景很典型:拿 600036 近两年日线,算一根 20 日移动平均,导出 CSV 给别的回测脚本用。
先拉数据。k方法接受开始和结束日期,内部按每次 800 根自动翻页再拼接,两年多的数据不用你自己管分页:
from mootdx.quotes import Quotes client = Quotes.factory(market='std') df = client.k(symbol='600036', begin='20240826', end='20260826') # 近两年日线 df['ma20'] = df['close'].rolling(20).mean() df.to_csv('600036_daily.csv', index=False)再算什么、最后导出什么,就在同一块里顺手做掉了。跑完打开 CSV,日期、开高低收、成交量之外多了一列 ma20,从拉数到出表就这几行。
用之前先知道的几件事
这几个提醒都是实际用起来会碰到的,记一下能少走弯路:
- 股票代码必须是 6 位字符串,
'600036'对,'SH600036'这种带前缀的写法不认。 - 公共服务器响应有波动,首次连接偶发超时,库内部带了重试,连续失败就重建一次 client。
bars返回的是未复权价,回测如果跨了除权除息日,要先处理复权再算指标,否则均线会被除权缺口打穿。- 依赖里有 pandas 和 tdxpy,建议放虚拟环境里装,别和手头其他项目的依赖互相打架。
接下来往哪走
想再深入一点,三个入口就够:
- 选服、离线读取、财务数据下载的完整写法在 docs/quick.md
- 各种用法的可运行示例放在 sample/ 目录,basic_quotes.py、basic_reader.py 最值得先看
- 接口参数细节查 docs/api/ 下的分模块文档
把上面那段工作流跑一遍,CSV 里多出 ma20 列,就说明整条链路通了。
仅供学习,不构成投资建议
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考