ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

Python 读取通达信行情数据:Mootdx 上手指南

Python 读取通达信行情数据:Mootdx 上手指南

Python 读取通达信行情数据:Mootdx 上手指南

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

Mootdx 是一个 Python 库,让你直接读取通达信软件保存的本地行情数据文件,也能连接行情服务器获取实时 K 线,帮量化分析新手省去手写二进制解析和数据付费的麻烦。

快速认知:Mootdx 和其他数据方案的区别

10 秒判断是否值得投入:只要你在电脑上装有通达信客户端(或只想免费拿到日线、分钟线数据),mootdx 就能把这些二进制文件变成 pandas DataFrame,不需要研究.day文件的私有格式,也不需要购买数据账号。

方式数据来源成本你要做的事
手动解析通达信.day文件本地vipdoc目录免费研究私有二进制格式,自己写解析器
商业数据接口云端订阅付费购买账号、学习各家 API
mootdx 离线读取本地vipdoc目录免费Reader.factory()一行初始化
mootdx 在线行情通达信行情服务器免费联网即可,支持自动测试最快服务器

它覆盖的能力包括:离线日线/分钟线读取、在线实时行情与 K 线、板块数据、历史财务数据,另附一个命令行工具mootdx可以直接把行情导出成 CSV。

上手三步:Mootdx 安装步骤与数据目录配置

第一步:安装

需要 Python 3.8 及以上,Windows / macOS / Linux 均可。新手官方建议直接安装全量扩展,省去后续补装依赖:

pip install -U 'mootdx[all]'

执行后你应看到:依赖安装完成且无报错,import mootdx可以成功执行。

第二步:配置通达信数据目录与行情服务器

离线读取需要通达信安装目录——就是含有vipdoc子目录的那一层(日线数据在vipdoc/sh/lday、vipdoc/sz/lday下)。在线行情则建议先测试最优服务器并写入配置文件~/.mootdx/config.json:

mootdx bestip -v -w

执行后你应看到:一张按响应时间排序的“最优服务器”表格,无报错输出。

还没有装通达信?可以把tdxdir指向本仓库的tests/fixtures目录,里面自带688001、000001等日线和分钟线样例数据,足够先把示例跑通。

第三步:跑通第一个示例

下面这段代码初始化离线读取器,并读取一只股票的日线数据:

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

执行后你应看到:终端打印出一个以日期为索引、含 open/high/low/close/volume 列的 DataFrame,即贵州茅台本地日线 K 线。

核心功能拆解

离线读取日线与分钟线

一行代码解析本地vipdoc目录下的 K 线文件,返回可直接做分析的 DataFrame:

from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') daily = reader.daily(symbol='600036') minute = reader.minute(symbol='600036', suffix='1') # suffix=1 一分钟, 5 五分钟 qfq = reader.daily(symbol='600036', adjust='qfq') # 前复权日线

场景例子:做回测需要长期前复权价格,传adjust='qfq'一行拿到除权后的数据,不用手动计算。

在线获取实时行情与 K 线

本地数据不够新、或机器上没装通达信时,直接连行情服务器拉数据,frequency=9表示日 K 线:

from mootdx.quotes import Quotes client = Quotes.factory(market='std', multithread=True, heartbeat=True, bestip=True, timeout=15) df = client.bars(symbol='600036', frequency=9, offset=10) print(client.quotes(symbol=['000001', '600300'])) # 多股实时行情

场景例子:收盘后 15 点 05 分跑一个脚本,一次拿到当日最新 K 线和自选股实时报价,直接入库。

读取板块数据

通达信客户端的板块文件(行业、概念、地区)也能被block接口按表格读出,group=True返回“板块名 → 成分股”的分组格式:

from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') industry = reader.block(symbol='block_zs', group=False) # 行业板块 concept = reader.block(symbol='block_gn', group=True) # 概念板块, 分组格式

场景例子:先按“电子”行业板块圈定股票池,再对池内代码循环批量拉日线做对比分析。

一条完整工作流:从安装到产出带均线的日线数据

以“拿到贵州茅台最新日线并算出 MA5/MA20”为例,四个 Step 串起前面所有功能。

Step 1 — 安装并测试最快行情服务器:

pip install -U 'mootdx[all]' mootdx bestip -v -w

Step 2 — 拉取最近 60 根日线,计算两条均线:

from mootdx.quotes import Quotes client = Quotes.factory(market='std', bestip=True, timeout=15) df = client.bars(symbol='600036', frequency=9, offset=60) df['MA5'] = df['close'].rolling(5).mean() df['MA20'] = df['close'].rolling(20).mean()

Step 3 — 导出结果,供后续画图或回测使用:

df.to_csv('600036_daily.csv', index=False) print(df[['close', 'MA5', 'MA20']].tail())

执行完你应看到:工作目录多出600036_daily.csv,包含收盘价与两条均数列,可直接用 Excel 或 pandas 打开继续分析。

Mootdx 常见报错处理

  • 现象:Exception: tdxdir 目录不存在

  • 原因:传给Reader.factory的路径不是真实的通达信安装目录,或路径拼写有误。

  • 解决:tdxdir传含vipdoc子目录的那一层安装目录,如 Windows 下tdxdir='C:/new_tdx'。

  • 现象:reader.daily()返回空数据

  • 原因:本地vipdoc目录没有该股票代码的 K 线文件(客户端未同步过对应市场数据)。

  • 解决:先运行通达信客户端下载盘后数据,或改用Quotes从服务器在线获取。

  • 现象:在线行情请求超时、响应慢

  • 原因:默认行情服务器 IP 离你的网络远,延迟高。

  • 解决:执行mootdx bestip -v -w重新测试最快服务器并写入~/.mootdx/config.json。

  • 现象:client.bars()拉到的 K 线不是日线

  • 原因:frequency参数传错值(9=日线,0=5分钟线,5=周线,11=年线)。

  • 解决:按文档中的 frequency 对照表传参,日线固定传frequency=9。

  • 现象:M1/M2 苹果芯片 Mac 上 PyMiniRacer 相关功能报错

  • 原因:PyMiniRacer 依赖不支持 M1 arm 架构。

  • 解决:换 x86_64 的 Python 环境,或只使用不依赖它的功能(离线读取与在线行情不受影响)。

进一步探索

  • docs/api/ — 离线数据、标准行情、扩展行情、财务数据的接口参考,需要查参数和返回值格式时看这里
  • sample/ — 可直接运行的示例脚本,新手建议先跑basic_reader.py和basic_quotes.py熟悉 API
  • tests/ — 测试用例与自带的本地样例数据(tests/fixtures),适合学习参数用法并验证自己的环境

打开终端,输入pip install -U 'mootdx[all]',10 分钟后你就能看到第一份通达信行情数据。

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

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

RELATED READING

延伸阅读

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