ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

5分钟跑通 mootdx 通达信数据获取:实时行情、历史K线与财务数据完整上手

5分钟跑通 mootdx 通达信数据获取:实时行情、历史K线与财务数据完整上手

5分钟跑通 mootdx 通达信数据获取:实时行情、历史K线与财务数据完整上手

【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx

mootdx 是一个通达信数据获取的 Python 封装库:一条安装命令之后,三行代码就能把 A 股实时行情变成 pandas DataFrame,还能读本地历史 K 线文件、下载并解析上市公司财报。全文按"先跑起来、再看家底、逐个功能上手、最后用稳"的顺序展开,5 分钟能走完全程。

安装与最小示例

环境要求很简单:Python 3.6+,Windows / MacOS / Linux 都能跑。新手建议直接装全集:

pip install -U 'mootdx[all]'

新建一个hello.py,贴入下面三行代码:

from mootdx.quotes import Quotes client = Quotes.factory(market='std') print(client.quotes(symbol=["000001"]))

预期输出:一个 pandas DataFrame,000001(平安银行)对应一行,包含代码、名称、最新价等固定列。如果你看到的是规整的表格而不是字节流,说明行情通道已经通了。想一次看多只股票,把代码列表改成["000001", "600300"]即可。

能力总览:三个模块各管一摊

mootdx 由三块能力拼成,入口模块、能拿到的数据和对应文档如下:

能力组入口模块你能拿到什么
在线实时行情mootdx/quotes.py实时盘口、日/周/月/分钟 K 线、指数、分时、分笔成交、除权除息、F10 公司资料、财务摘要
离线本地数据mootdx/reader.py通达信安装目录下vipdoc中的 .day / 分钟线文件、板块数据、扩展市场 K 线
财务数据mootdx/affair.py历年财报 zip 的远程清单、下载、解析成 DataFrame 并导出 csv/Excel

找文档时按这个顺序走:入门看 docs/quick.md 和 docs/setup.md;完整 API 在 docs/api/,其中 docs/api/quote1.md 是标准行情接口、docs/api/reader.md 是离线数据接口、docs/api/affair.md 加 docs/api/fields.md 是财务接口和字段对照表;能直接跑通的示例在 sample/basic_quotes.py、sample/basic_reader.py、sample/basic_affairs.py。

功能一:拉 K 线与复权数据

做回测、画均线的人,主要和bars打交道:

client = Quotes.factory(market='std') print(client.bars(symbol='600036', frequency=9, offset=10)) # 最近 10 根日K print(client.bars(symbol='600036', adjust='qfq')) # 前复权

预期输出:DataFrame,列为date, open, high, low, close, volume, amount。frequency=9是日 K,换 0/1/2/3 就是 5 分钟到小时 K;adjust还能传hfq取后复权,做收益测算时记得用复权价,否则除权日会出现假跳空。

功能二:除权除息与 F10 公司资料

事件研究和选股要的不是价格,而是"发生了什么":

client.xdxr(symbol='600036') # 除权除息历史 client.finance(symbol='600300') # 财务摘要 client.F10(symbol='000001', name='最新提示') # F10 详情

效果:分红送转、配股记录和公司资料同样被整理成 DataFrame,配合前面的 K 线,"价格 + 事件 + 基本面"三件套就齐了。

功能三:读取本地通达信离线数据

本地装了通达信、想要完整历史又不想受接口限制的人,用 Reader。它相当于一个仓库管理员,把vipdoc目录下一堆.day文件逐只整理成表格:

from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') print(reader.daily(symbol='600036').tail())

预期输出:该股完整历史日线,列同样是date, open, high, low, close, volume, amount,全程离线、不联网。minute()可继续读 1/5 分钟线(两种后缀格式它会自动判断),block()能读板块数据。tdxdir换成你自己的通达信安装目录即可。

功能四:下载与解析上市公司财报

要搭基本面因子库,用 Affair 拉历年专业财务数据:

from mootdx.affair import Affair print(Affair.files()[0]) Affair.fetch(downdir='tmp', filename='gpcw19960630.zip') data = Affair.parse(downdir='tmp', filename='gpcw19960630.zip')

预期输出:files()先返回远程财报清单,第一个元素长这样——

{'filename': 'gpcw19990630.zip', 'hash': '65228d9db21d42e683698ac8dd72ef57', 'filesize': 443065}

parse返回的data是财务指标 DataFrame,具体每个编号对应什么指标,查 docs/api/fields.md 里的对照表;拿到数据后一行data.to_csv('out.csv')就能落盘,也可以直接用命令行导出:mootdx affair -f gpcw20170930.zip -o gpcw20170930.csv。

从能用到用稳:三条工程化建议

  1. 先跑一次 bestip 选最快服务器。官方行情服务器有好几台,实测延迟能从 0.13ms 差到 1 秒以上,选对节点相当于先找好最近的出口再上路:

    mootdx bestip -v -w

    加-w会把最快节点写进~/.mootdx/config.json,之后Quotes.factory自动连最优节点,输出里能看到每台服务器的耗时排名。

  2. 长驻脚本开启心跳并设置超时。参考 docs/quick.md 的推荐写法:Quotes.factory(market='std', multithread=True, heartbeat=True, bestip=True, timeout=15)。心跳防止空闲连接被服务器掐断,轮询一整天不用 babysit。

  3. 一个 client 用到底。Quotes.factory每次都是一次完整握手,轮询循环里反复建连既慢又费配额,把 client 建在循环外面复用即可。

适用场景与边界

mootdx 适合的场景很明确:A 股实时行情与 K 线抓取、本地历史数据回测、财报基础整理、个人研究用的数据管道。纯 Python 实现,跨平台无压力。

有几个边界条件,第一次用的人最容易踩:

  • 在线行情只做标准股票市场(market='std')。扩展市场(期货、期权等)的在线接口官方文档已注明目前失效,别在实盘化场景里指望它。
  • Reader 依赖本机通达信数据目录。没有装过通达信怎么办?在线行情不需要装,只有离线读取需要,从别处拷一份vipdoc数据目录也能用。
  • bars单次offset上限 800 条,取更深的历史要用start参数翻页。
  • 项目 README 有郑重声明:只作学习交流,不得用于商业目的,数据使用请遵守交易所相关规范。

收尾

mootdx 是你和通达信协议之间的翻译官:它说二进制协议,你拿 DataFrame,行情、历史、财务一条管道全通了。

📌 现在就打开终端,执行pip install -U 'mootdx[all]',把开头的三行示例跑起来,再把000001换成你真正关心的代码——你的数据管道就开工了。想交流问题,可以扫下方二维码加作者微信:

【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进