news 2026/10/22 2:09:49

3 行代码拿到通达信行情数据:mootdx 数据获取工具实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 行代码拿到通达信行情数据:mootdx 数据获取工具实战

3 行代码拿到通达信行情数据:mootdx 数据获取工具实战

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

mootdx 是一个通达信数据获取的 Python 封装:它对接通达信公开行情服务器取实时行情与 K 线,能读取本地数据目录里的 .day 历史文件,还能下载并解析上市公司财报。读完本文并跟着跑一遍,你会得到一条可用的实时行情调用、一套离线历史日线管道,以及一组让长时脚本稳定运行的连接参数。

项目定位与适合人群

一句话定位:mootdx 把通达信在线行情、本地历史文件、财务报表三类数据统一封装成 Python 接口,全部返回 pandas DataFrame。

它适合三类人:做策略回测需要干净日线数据的研究者、要轮询自选股价格的个人脚本作者、以及需要批量财报指标做基本面分析的分析师。它不适合:需要 Level-2 逐笔委托或高频 tick 数据的人,以及要把行情直接接入商业产品的人——项目 README 明确声明只作学习交流使用。

第一次跑通:实时行情最小示例

环境要求:Windows / macOS / Linux 均可,Python 3.8+。安装命令一行:pip install 'mootdx[all]'

from mootdx.quotes import Quotes client = Quotes.factory(market='std') # 创建行情客户端并连接服务器 rows = client.quotes(symbol='600036') # 取单只股票实时行情,返回 DataFrame print(rows[['code', 'price', 'last', 'vol']])

示例输出(价格随行情变动,数字仅作演示):

code price last vol 0 600036 35.12 35.28 482315

跑通这一步即可验证网络与协议层都正常,后续所有接口共用这个 client 对象。

能力速览:三个入口模块

任务入口模块你能拿到什么
实时行情、K 线、指数、分笔mootdx/quotes.py 的Quotes实时盘口、各周期 K 线(含前/后复权)、指数行情、分时、分笔成交、除权除息
本地历史数据读取mootdx/reader.py 的Reader通达信 vipdoc 目录下 .day / .lc1 / .lc5 文件转成的日线、分钟线 DataFrame,离线可用
财务数据下载解析mootdx/affair.py 的Affair历期财报 zip 文件清单、下载、解析成规整指标表

三个入口彼此独立,都用factory()构造,且内部统一经to_data()转成 DataFrame(日期列自动成为索引,vol会补一列volume),所以下游统计代码可以一套写到底。

常见任务拆解:历史日线与财务数据

任务一:搭建离线历史日线数据集

  • 目标:拿到 600036 的完整历史日线,供回测使用。
  • 步骤:准备一个含 vipdoc 目录的通达信数据目录(复制一份即可)→ 用tdxdir构造Reader→ 调daily()。
  • 代码:
from mootdx.reader import Reader rd = Reader.factory(market='std', tdxdir='C:/new_tdx') # 指向通达信数据目录 df = rd.daily(symbol='600036') # 读本地 .day 文件,全部历史日线 print(len(df)) # 正常应为数千行 print(df.tail(2)[['open', 'high', 'low', 'close']])
  • 验证:行数应为几千条,最后一行日期应与该股最近一个交易日收盘一致;若目录不存在,构造时直接抛异常,文件缺失则返回None。

任务二:获取一期财报指标表

  • 目标:拿 2023 年报期全部上市公司的财务指标。
  • 步骤:先用Affair.files()确认报告期文件名(形如gpcwYYYYMMDD.zip,带哈希与大小)→ 调parse(),本地缺文件时会自动先下载。
  • 代码:
from mootdx.affair import Affair report = 'gpcw20231231.zip' # 报告期文件,以 Affair.files() 清单为准 frame = Affair.parse(downdir='tmp', filename=report) # 本地缺失会自动下载再解析 print(frame.shape) # 行数≈上市公司数,列数≈200 项财务指标
  • 验证:行数应与该期上市公司数量同量级;列名含义查 docs/api/fields.md 字段对照表。

稳定性细节:长时脚本的两个关键动作

💡 轮询脚本的两个常见事故是反复建连和高延迟节点,下面两条各自对症。

技巧一:连接复用加心跳。每次Quotes.factory都走一次完整握手,别放进轮询循环内部;把 client 建在循环外,并开启心跳:

client = Quotes.factory( market='std', heartbeat=True, # 定期发送心跳,防止连接被服务器端断开 timeout=15, # 套接字超时(秒) )

效果:循环内只做查询,连接在整天运行中保持存活,请求量也更省。

技巧二:bestip 测速选节点。执行python -m mootdx bestip -vv,它会对候选行情节点测速,把最快节点写入 config.json,之后的Quotes.factory自动使用。效果:数据延迟和偶发超时肉眼可见地下降。

边界与限制

  • 依赖条件:实时行情依赖通达信公开行情服务器,可用性由服务器侧决定,库本身不保证;扩展市场(期货、黄金等)接口在 docs/api/quote2.md 中注明当前失效,别把它写进关键路径。
  • 做不了什么:K 线单次请求上限 800 条,更长的历史要靠分页(k()方法内部已替你做了分页拼接);不提供 tick 级与 Level-2 深度数据。
  • 数据合规:MIT 协议管的是代码,行情与财务数据仅限个人学习和研究,商用需另行遵守交易所数据使用规范。

深入方向:官方文档与示例

  • docs/quick.md —— 最短上手路径,离线读取、在线行情、财务调用各几行代码。
  • docs/api/quote1.md —— 标准行情接口全量参考,含 frequency 周期码对照表。
  • docs/api/reader.md —— 本地文件读取接口,daily/minute/fzline的取数规则。
  • docs/api/affair.md 与 docs/api/fields.md —— 财务文件清单用法与 200+ 指标字段含义。
  • docs/cli/ —— 命令行用法:quotes/reader/bestip/bundle/affair各子命令。
  • sample/basic_quotes.py、sample/basic_reader.py、sample/basic_affairs.py —— 可直接运行的官方示例,改个代码就能跑。

一句话提醒:数据仅用于个人研究和学习,商用前先确认数据来源的授权边界。

下一步

  1. 把示例里的 600036 换成你关注的代码,确认拿到自己的第一份数据。
  2. 跑一次python -m mootdx bestip -vv,固定最优节点。
  3. 用 docs/cli/bundle.md 介绍的mootdx bundle命令把自选股批量导出为 CSV。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 2:09:48

管理变量(一)

Ansible 变量简介Ansible 支持利用变量来存储值,并在 Ansible 项目的所有文件中重复使用这些值。这可以简化项目的创建和维护,并减少错误的数量。通过变量,您可以轻松地在 Ansible 项目中管理给定环境的动态值。例如,变量可能包含…

作者头像 李华
网站建设 2026/10/22 2:07:16

WSL使用Ubuntu 24.04安装Libradtran

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 2:03:23

带过新人、做过 code review,写进简历之前先想清楚会被怎么问

这类经历有个尴尬的位置:写了像凑数,不写又觉得少了一块。「指导新人成长,参与团队代码 review,多次进行技术分享」,这一行几乎每份三年以上的简历都有,评审者也几乎都会跳过。 先说评审者的真实判断&#…

作者头像 李华