Python 通达信数据接口 mootdx:3 分钟免费拿到 A 股行情与 K 线
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
mootdx 是一个 Python 通达信数据接口封装。一条 pip 命令装完,就能拉 A 股的实时行情、历史 K 线与财务数据,不用注册、不用 API key、不用订阅。
它是怎么干活的
mootdx 给同一类数据提供了两条独立通路。一条是 Reader 通路:直接打开你本机安装的通达信客户端里的本地数据文件(.day、.lc1 这类),把二进制文件翻译成 pandas DataFrame,全程不发起一次网络请求。另一条是 Quotes 通路:直连通达信官方行情服务器,走二进制协议拉行情数据,不装客户端也能拿到。
它和商业数据 API 的区别在于中间没有转手层。行情接口、K 线接口、财务文件分发,和通达信客户端本身用的是同一套数据源,商业 API 基本是把同一份数据重新打包再卖一遍。二进制协议解析、代码市场识别、复权逻辑这些脏活都预先封装好了,你的代码里只传股票代码、收 DataFrame,要付出的代价只是理解这数据来自通达信公开行情通道。
第一次跑起来
最短路径是装全量依赖,再跑一个四行脚本。
pip install 'mootdx[all]'以 600036(招商银行)为例,拉它最近的前复权日线:
from mootdx.quotes import Quotes client = Quotes.factory(market="std", quiet=True) df = client.get_k_data("600036", adjust="qfq") print(df)跑通后终端里会打出一张招商银行的日线表,列有日期、开盘、最高、最低、收盘、成交量,最后一行就是最近一个交易日的收盘数据。
三个最值得上手的功能
这三个入口覆盖了日常绝大多数用法:在线一行拉前复权 K 线、离线读本地数据目录、自动挑一台快的行情服务器。
一行代码拿到复权 K 线 —— get_k_data
直接返回整段日线的前复权 DataFrame,是回测和指标计算里最高频的入口。client.get_k_data("600036", adjust="qfq")一行搞定,adjust 换成hfq是后复权,传空字符串拿不复权原始数据。想要分钟级别就用client.bars或client.minutes,frequency 参数控制 1/5/15/30/60 分钟。
批量读本地通达信数据 —— Reader
如果你本机装过通达信客户端,Reader 读的就是它的本地数据目录,日线、分钟线、时间线都能取,完全不依赖网络。Reader.factory(market="std", tdxdir="C:/new_tdx")初始化一次,之后reader.daily(symbol="600036")返回日线,reader.minute拿分钟线。这条路适合处理全量历史数据,读的是本地文件,速度只受磁盘限制,一只股票二十年的日线毫秒级就能读完。
自动挑最快的行情服务器 —— bestip
通达信行情服务器很多,质量随你的网络差异很大,默认 IP 列表可能命中一台拥塞的服务器,导致每次请求都要干等。跑一次python -m mootdx bestip -vv,它会逐台测延迟并输出带服务器名称的排行,比如北京联通主站 0.13ms 这类结果;再加上-w,最快的 IP 被写进~/.mootdx/config.json,之后客户端自动用它连接。
一个完整场景走一遍
假设你想为一个小回测准备本地数据包:三只股票、各三年的前复权日线。
第一步是先把服务器定下来。跑python -m mootdx bestip -vv看那张表,最快的服务器延迟在 100ms 以内就说明网络没问题,顺手加-w写进配置,后面所有请求都走这台。
接着批量拉取:
from mootdx.quotes import Quotes client = Quotes.factory(market="std", quiet=True) for code in ["600036", "000001", "300059"]: df = client.get_k_data(code, adjust="qfq") df.to_csv(f"data/{code}.csv", index=False) print(code, df.shape)跑完 data 目录里就是三份 CSV,每行 print 告诉你拿到的记录数,三年的交易日大致七百余条。此时数据包已经可以直接喂给回测了,想要分钟级就用client.minutes(symbol, start, end)按日期区间拉,或者切到 Reader 通路读本地已同步的分钟数据。
这个场景里有两个容易踩的点:股票代码是纯六位数,不带交易所前缀,直接传代码,mootdx 内部会识别它属于哪个市场;前复权数据会在新的除权事件发生后整体重算,数据包若用于长期回测,要么定期重拉,要么换成不复权原始数据自己维护复权因子。
避坑与下一步
问题多半集中在服务器选择、目录配置、数据口径三处。
- 连接超时或频繁掉线:先跑
python -m mootdx bestip -vv测试服务器,用-w重新选最快的 IP 写入配置。 - Reader 返回空数据:检查 tdxdir 是否指向通达信的 vipdoc 数据目录,而不是安装根目录。
- 前复权 K 线的价格"和昨天看到的对不上":这是正常现象,有新的除权事件把历史数据整体复权了。
- 数据仅供学习研究使用,行情来自通达信公开通道,不要拿它做实盘交易决策的依据。
更多参数细节看 官方文档,示例代码 里行情、财务、本地读取各有完整脚本,测试用例 覆盖了重连、数据频率等场景,自己写封装时值得对照着看。
mootdx 覆盖行情获取、K 线回测、数据包构建这三个最常见任务,从安装到第一次出数据三分钟,够你判断它适不适合自己的项目。数据请仅用于学习交流,合规使用。
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考