news 2026/10/21 1:40:43

mootdx:一行命令拿到通达信 A 股 K 线,免费开源

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mootdx:一行命令拿到通达信 A 股 K 线,免费开源

mootdx:一行命令拿到通达信 A 股 K 线,免费开源

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

mootdx 是一个 MIT 协议的开源 Python 通达信数据接口封装库,直接对接通达信服务器,无需订阅:几行代码拉取 A 股实时行情与历史 K 线,读取本地终端目录的日线、分钟线文件,也能下载历史财务数据,适合量化回测与金融研究。

不花钱拿到干净 A 股数据,就靠这条路径

想做回测却不想为数据服务付费,这个项目是目前最直接的路子。

你可能有这种处境:回测逻辑写得出来,数据却总要卡一下。商业接口收费,年费不算小数目;自己对接通达信,要处理连接、编码、服务器掉线,学习曲线陡峭,官方文档也不易读。

mootdx 把连接层这些脏活全包进一个工厂方法里:数据源是通达信官方服务器,库本身免费开源,API 保持 Pythonic 风格,Windows、macOS、Linux 三个平台都能跑。

装完依赖后先跑通这条 K 线

装好依赖、写 4 行代码,3 分钟内就能看见一张真实的 K 线表。

第一步,安装。拿不准依赖关系时直接用 [all] 扩展组:

pip install -U 'mootdx[all]'

第二步,创建客户端并取数:

from mootdx.quotes import Quotes client = Quotes.factory(market='std') df = client.bars(symbol='600036', frequency=9, offset=10) print(df)

frequency=9是日 K 线,0、1、2 分别是 5、15、30 分钟线;offset是取多少条,上限 800。df是 pandas DataFrame,首列就是日期,第一条 A 股数据到手。

第三步(可选):不写脚本也能导出 CSV,命令行直接mootdx quotes -s 600036 -a daily -o daily.csv。

查能力地图,按数据类型取数 🎯

接口按数据类型分三类:在线行情、本地文件、财务文件,各有一个独立入口。

拉在线 K 线与实时行情

最常用的“一只票要 K 线、要报价”,都在刚才那个 Quotes 客户端上:

  • 多股票实时行情:client.quotes(symbol=["000001", "600300"])
  • 指数 K 线:client.index(symbol='000001', frequency=9)
  • 单股分钟线:client.minute(symbol='000001')
  • 除权除息信息:client.xdxr(symbol='600036');单股财务概要:client.finance(symbol='600036')

读本地离线日线与分钟线

本地装过通达信终端的话,Reader 直接读数据目录里的日线、分钟线文件,不走网络,速度快。

from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') reader.daily(symbol='600036') # 日线 reader.minute(symbol='600036') # 分钟线, suffix='1' 为 1 分钟, '5' 为 5 分钟 reader.fzline(symbol='600036') # 5 分钟线

文件就在终端的vipdoc/sh/lday、vipdoc/sz/lday目录,一只票一个文件;扩展市场(期货等)把参数换成market='ext'即可。

下载历史财务数据

历史财务文件批量下载归 Affair 管,文件列表带 hash 和大小,方便判断本地是否需要更新。

from mootdx.affair import Affair Affair.files() # 远程文件列表 Affair.fetch(downdir='tmp', filename='gpcw19960630.zip') # 下载单个文件

财务字段的具体含义不用逐列猜,直接查 docs/api/fields.md 的对照表。

深挖两个机制:选服务器与自动重连 🔧

它和裸用底层库的区别,主要体现在这两个机制上,决定了长跑脚本掉不掉线。

自动挑选最快服务器

原理:异步探测全部内置的通达信服务器,每个连接只给 0.7 秒预算,记录毫秒级耗时,最快的成为 bestip,实现在 mootdx/server.py。Quotes.factory里传bestip=True会先重测再使用;命令行也可以看排名:

mootdx bestip -v

输出即服务器耗时榜,加-w参数能把结果写回配置。

心跳保活与断线重连

请求层用 tenacity 包了重试,连接断开后reconnect()检测到会自动重连回 bestip,网络抖动基本到不了你的代码。长跑任务在工厂方法里加multithread=True, heartbeat=True;想固定某台服务器,直接传server=('127.0.0.1', 2272)跳过自动选择。

按现象排错,不用猜日志

跑起来之后的问题大多集中在这四类,看现象就能定位原因。

安装依赖冲突。现象是 pip 装完、import 时却报错,依赖树纠缠不清。原因是 mini-racer 这类可选依赖在特定系统装不上,M1 的 mac 尤其常见,项目 README 的常见问题一节专门提过。解法:先建虚拟环境再跑pip install -U 'mootdx[all]',仍不行就单独装核心依赖,跳过可选扩展。

连接超时。现象是连接直接超时,默认上限 15 秒。原因是默认服务器离你远或网络拥塞。解法:先跑mootdx bestip -v看耗时榜,再在建客户端时传bestip=True,或者用server=(ip, port)明确指定。

数据不全。现象是只返回几十根 K 线,或者日期段缺档。原因有两条:单次请求上限 800 根,需要分页;节假日缺失属正常。解法:长区间用get_k_data传入起止日期,库内部会按 800 根分页拉取后自己过滤排序;或者用start/offset手动翻页。

慢、占内存。现象是批量拉取慢、DataFrame 吃内存。原因是串行请求且全量进内存。解法:开multithread=True,offset控制在 800 以内,长期历史数据优先用Reader读本地文件,少发网络请求,用完关闭客户端。

继续深入:文档、示例与测试

跑通第一步之后,拿仓库里这些文件当前进图。

  • 快速上手:docs/quick.md;安装与运行环境:docs/setup.md
  • 接口参考:docs/api/quote1.md(标准行情)、docs/api/quote2.md(扩展市场)、docs/api/reader.md、docs/api/affair.md
  • 命令行用法:docs/cli/quotes.md、docs/cli/bestip.md
  • 示例脚本:sample/basic_quotes.py、sample/basic_reader.py、sample/basic_affairs.py,复权 sample/fq.py、sample/fuquan.py,缓存 sample/lru_cache.py,服务器验证 sample/verify_server.py
  • 测试用例:tests/test_bestip.py、tests/test_reconnect.py、tests/test_frequency.py,以及 tests/quotes/、tests/reader/ 子目录

跑通之后,下一步是把数据接进自己的脚本:K 线导出成 CSV,叠加指标,接进回测流程,仓库里像 mootdx/tools/tdx2csv.py 这样的导出脚本可以直接参考。有 Bug 或建议,到项目仓库提交 issue 或 PR 即可。

本文仅供学习交流,任何投资决策与风险请自行评估。

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

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

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

Docker 跑 Firefox:容器化浏览器全解

Docker 跑 Firefox:容器化浏览器全解 【免费下载链接】docker-firefox Docker container for Firefox 项目地址: https://gitcode.com/GitHub_Trending/do/docker-firefox docker-firefox 是一个容器化浏览器项目:把当前 Firefox 151 正式版装进 …

作者头像 李华
网站建设 2026/10/21 1:40:33

把安卓手机变成企业微信机器人:WorkTool 7×24 无人值守群管理教程

把安卓手机变成企业微信机器人:WorkTool 724 无人值守群管理教程 【免费下载链接】worktool 一款安全稳定的Android无障碍服务工具,支持控制企微/微信来运行的无人值守群管理企业微信机器人 项目地址: https://gitcode.com/GitHub_Trending/wo/worktoo…

作者头像 李华
网站建设 2026/10/21 1:39:17

原神小助手:自动战斗、秘境与委托,一份完整使用指南

原神小助手:自动战斗、秘境与委托,一份完整使用指南 【免费下载链接】genshin_impact_assistant 原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assista…

作者头像 李华