Python 通达信数据接口 mootdx:3 分钟免费拿到 A 股行情与 K 线
2026/9/19 11:12:03 网站建设 项目流程

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.barsclient.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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询