mootdx A股行情数据快速上手指南:三行代码获取通达信行情、历史K线与财报
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
凌晨两点,你的 A 股行情数据脚本又挂了:20 万行日 K 缺了 3 只票,一个库的量能列叫vol,另一个叫volume,换个新接口还活不过早餐。这类通达信数据问题,mootdx 一手接管——在线行情、历史 K 线、财务文件,调方法就拿到 DataFrame。
问题定位:mootdx 解决什么,适合谁
- 它解决什么:通达信行情协议解析、
.day文件字节对齐、财报 zip 解包全部封装在内,你只选链路——在线行情、本地文件、财务数据——返回的都是规整 DataFrame。 - 适合谁:个人 A 股策略开发者、金融分析师,以及需要快速搭本地数据底座的工程师。
- 上手成本:要记的只有 3 个入口类 Quotes、Reader、Affair;会用 pandas 就能起步,装完 5 分钟看到第一次真实输出。
mootdx 安装命令与首次运行
不确定依赖怎么配,直接装全量版:
pip install -U 'mootdx[all]'其他安装变体(最小核心、命令行版)见 docs/setup.md 和 docs/quick.md。然后新建一个test.py:
from mootdx.quotes import Quotes client = Quotes.factory(market='std') print(client.bars(symbol='000001', frequency=9, offset=3)[['open', 'close', 'volume']].to_string())frequency=9表示日 K 线,offset指定取多少行,股票代码直接传 6 位数字。就这么短:不用查任何协议文档,不用对字节,也不用申请账号。
预期输出:
open close volume 2026-10-16 11.02 11.13 25645800 2026-10-19 11.15 11.27 27590200 2026-10-20 11.25 11.21 21385400三条主数据链路:从哪个入口拿到什么
该从哪条链路上手?看你的数据在线还是在磁盘里。
在线行情链路:Quotes
入口在 mootdx/quotes.py。Quotes.factory(market='std')建好连接后按需取数:quotes()拿实时盘口(可一次传多只),bars()取 1 分钟到年线的 K 线(frequency 0~11),index()取指数 K 线,minute()取当日分时,xdxr()取除权除息,F10()取公司资料。
离线文件链路:Reader
入口在 mootdx/reader.py。Reader.factory(market='std', tdxdir='C:/new_tdx')指向通达信数据目录后,daily()读完整日线,minute()读 1 分钟,fzline()读 5 分钟。它解析的就是vipdoc下的.day/.lc1/.lc5,断网时分析照样跑。
财务文件链路:Affair
入口在 mootdx/affair.py。Affair.files()列出服务器上全部财报 zip,Affair.fetch(downdir=...)下载(可单个可全部),Affair.parse(downdir=..., filename=...)直接解析成表格。
| 链路 | 入口 | 能拿到什么 |
|---|---|---|
| 在线行情 | Quotes.factory(market='std') | 实时盘口、1 分钟到年线 K 线、指数、分时、除权除息、F10 |
| 离线文件 | Reader.factory(market='std', tdxdir='...') | vipdoc 下完整日线/1 分钟/5 分钟 K 线,离线可用 |
| 财务文件 | Affair.files() / fetch() / parse() | 财报 zip 清单、下载、解析成表格 |
| 命令行 | python -m mootdx | quotes / reader / bundle / bestip / affair 快捷操作 |
实战场景:三种人怎么取通达信数据
量化工程师:批量导出股票池的年线数据
建完股票池要一次性落盘,不用自己写循环,bundle命令负责:
python -m mootdx bundle -s 600036,000001 -a daily -o export -e csv-s传逗号分隔的股票列表,-o是输出目录,-e指定文件格式。
预期输出:
下载完成 600036 下载完成 000001 [√] 下载文件到 "/home/you/export"财经博主:早盘复盘脚本
复盘要两组数:指数定调,个股定细节。
from mootdx.quotes import Quotes client = Quotes.factory(market='std') # 上证指数最近 3 根日K idx = client.index(symbol='000001', frequency=9, offset=3) # 贵州茅台最近 5 根日K mt = client.bars(symbol='600519', frequency=9, offset=5) print(idx[['open', 'close', 'volume']].to_string())预期输出:
open close volume 2026-10-16 3520.45 3541.82 6.82e+08 2026-10-19 3545.10 3560.24 7.05e+08 2026-10-20 3563.02 3558.90 6.91e+08数据工程师:搭财报库
财报库第一步拿清单,第二步下载解析。
from mootdx.affair import Affair # 拉取服务器上全部财务文件清单 files = Affair.files() print(f'共 {len(files)} 个财报文件可用') # 下载并解析某一期,直接得到 DataFrame df = Affair.parse(downdir='cw', filename='gpcw19960630.zip') print(f'解析完成, 共 {len(df)} 行')预期输出:
共 512 个财报文件可用 解析完成, 共 5458 行解析表里的指标编号对照在 docs/api/fields.md。
稳定运行:给长跑脚本加两件事
脚本从跑一次变成夜夜驻场,还缺什么?两样。
连接复用,别反复握手。每次Quotes.factory都是完整建连,轮询场景把 client 建在循环外,并打开保活与断线重连:
client = Quotes.factory(market='std', heartbeat=True, auto_retry=True, timeout=15)heartbeat 维持长连接避免被服务端踢下线,auto_retry 负责断线后自动接回。
⚡ 测速挑最快的节点。行情服务器不止一台,节点间延迟差肉眼可见。跑一次测速,最快 IP 会写进配置文件,之后 factory 自动连最优节点:
python -m mootdx bestip -vv命令行跑之前确认装过完整依赖,否则先执行上面那条pip install 'mootdx[all]'。
常见问题解答:三个最容易被问住的问题
不用装通达信客户端也能用吗?在线行情不需要客户端,它直连公开行情服务器。唯一有要求的是用 Reader 读历史文件:你得有一个数据目录,即vipdoc所在的那一层,从任何一台机器拷过来都行。
返回的数据要自己清洗吗?不用。三条链路返回的都是 pandas DataFrame,日期做索引,open/high/low/close/volume 列固定,原始结构的换算内部已完成,取回来就能进分析流程。
Reader 只能在 Windows 上跑吗?tdxdir只是一个路径参数,C:/new_tdx是默认值而不是限制。Linux 服务器上放好vipdoc/sh、vipdoc/sz下的lday目录结构,就能正常读取。
开工:今天把第一根 K 线跑出来
现在打开终端执行安装命令,把test.py那 3 行跑起来——输出里看到 K 线表格就算入坑了,把000001换成你真正跟踪的代码即可。数据来自公开行情接口,请仅用于个人研究与学习,对外分发或商用前注意合规要求。
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考