☰
如何用 Python 读取通达信行情数据?mootdx 3步快速上手指南
2026/10/21 11:04:36 网站建设 项目流程

如何用 Python 读取通达信行情数据?mootdx 3步快速上手指南

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

做 A 股量化,第一道坎往往是数据:商业接口收费,自己写爬虫繁琐,而通达信软件里存好的行情文件目录零散,手动解析二进制文件不现实。mootdx就是一个通达信数据读取的 Python 封装库,它把在线行情、离线行情文件和财务下载统一成一套接口,返回值全部是 pandas 的 DataFrame,可以直接进你的分析流程,适合想快速拿到 A 股日线、分钟行情和财务数据的人。

🚀 3步跑通第一个例子

第一步,安装。新手直接用带全部依赖的扩展包,不用纠结子包:

# 只要核心功能也可以单独安装 pip install 'mootdx' # 不清楚依赖关系就用 all 扩展包 pip install -U 'mootdx[all]'

第二步,写 5 行代码拉线上 K 线。这一步不需要本地装通达信,直接连内置的行情服务器:

from mootdx.quotes import Quotes client = Quotes.factory(market='std') # std = 标准股票市场 kline = client.bars(symbol='600036', frequency=9, offset=5) # 9 = 日K线 print(kline.head())

第三步,看成功标志:终端打印出 600036 最近 5 个交易日的日期、开高低收、成交量表格,说明环境已就绪;后续细节可对照快速上手文档。

📊 离线在线读取能力速览

能力一句话说明典型场景
在线行情获取连接行情服务器,实时报价与 K 线盘中监控、实时策略
离线数据读取直接读本地通达信行情文件历史回测、本地数仓
财务文件下载下载并解析通达信财务压缩包基本面数据表构建
服务器测速探测最快服务器并写入配置优化首次连接延迟
命令行导出一条命令导出 CSV、HDF5、Excel临时数据交付

两条线各有一个入口:离线用Reader,在线用Quotes,都通过factory方法创建,切换market参数即可换市场。

📈 三个高频场景演示代码

读取本地日线数据

电脑上已有通达信时,tdxdir指向它的行情根目录,离线读取比联网更快,也不受请求频次限制:

from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') # 通达信数据目录 daily = reader.daily(symbol='600036') print(len(daily))

运行后得到该股全部日线条数,返回值是带日期索引的 DataFrame,可直接参与计算。

批量获取多股实时报价

盯盘需要同时看几只股票的最新价时,给quotes()传一个代码列表:

quotes = client.quotes(symbol=['600036', '000001', '601318']) print(quotes[['code', 'price', 'last_close']])

一次调用返回三只股票的最新价与昨收,配合昨收列可以顺手算出当日涨跌幅。

获取带复权处理的 K 线

回测通常要用前复权价格,加一个adjust参数即可:

qfq = client.bars(symbol='600036', frequency=9, offset=10, adjust='qfq') print(qfq[['datetime', 'close']].tail(3))

返回的 K 线已按除权除息信息做过前复权,避免了送转和分红造成的价格跳空。

🔗 与 pandas 及数据管道配合写法

所有接口返回的都是 DataFrame,可以直接接着算指标、导出文件:

kline = client.bars(symbol='600036', frequency=9, offset=250) kline['ma20'] = kline['close'].rolling(20).mean() # 20 日均线 kline.to_csv('600036_daily.csv', index=False) # 落盘导出

执行后得到带均线列的 CSV,可直接喂给下游建模脚本。如果你的管道已有历史数据,用离线 Reader 做增量补数即可,一次抓取长期复用:

reader = Reader.factory(market='std', tdxdir='C:/new_tdx') local = reader.daily(symbol='600036') local['returns'] = local['close'].pct_change() # 日收益率 print(local[['close', 'returns']].tail(3))

命令行下还可以用mootdx bundle -s 600036,000001 -o out -e csv批量下载并转存(需先安装mootdx[cli])。

⚠️ 出错先看这里

现象可能原因处理方式
提示tdxdir 目录不存在路径没指向通达信数据根目录改成实际安装路径如C:/new_tdx,不要指到 vipdoc 子目录
返回空表或 None本地没有该行情文件 / 代码写错 / 服务器断开核对 6 位代码;在线数据先用 bestip 重连再重试
首次连接很慢或超时内置行情服务器拥挤运行mootdx bestip -vv选最快 IP,配置保存在~/.mootdx/config.json
M 系列 Mac 报mini-racer错误PyMiniRacer 不支持 Apple Silicon,官方 FAQ 已记录用 Rosetta 装 Python 环境,或换到其他平台
提示缺少命令行依赖只装了核心包重装为pip install 'mootdx[cli]'或mootdx[all]'

各方法参数含义可查阅标准行情接口文档。

🧭 用久之后的几个习惯

  1. 缓存:历史 K 线和离线数据不会变,抓到一次就存成 pickle 或 CSV,别反复请求。
  2. 失败隔离:库内建了自动重试与重连,但批量任务请自己对每只股票加 try/except,坏代码不拖累整批。
  3. 并行化:多股并发时在Quotes.factory()里加multithread=True;财务全量下载内部已用异步,适合挂着过夜跑。
  4. 定期维护:行情服务器会漂移,隔段时间跑一次 bestip 刷新配置;通达信软件同步新行情后,再重跑离线读取。

mootdx 只专注一件事:把通达信数据变成 DataFrame。上面 3 步跑通之后,实时与历史数据就都齐了。

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

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

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

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

立即咨询