mootdx 使用指南:从安装到读取通达信数据的完整流程
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
mootdx 是一个读取通达信数据的 Python 封装库,能把本地行情文件和在线行情接口统一成 pandas DataFrame,覆盖日线、分钟线、分时和财务数据,主要服务量化交易、数据分析和金融研究这三类场景。
谁需要 mootdx
- 量化研究者:需要批量取历史 K 线和财务文件,喂回测或因子计算
- 策略开发者:需要在程序里直接拿实时价、分笔成交,不想自己解析通达信协议
- 数据分析人员:本地已经装了通达信,想绕过手动导出,直接读本地数据文件
如果你同时有本地行情文件和在线取数两种需求,这个库两条链路都包了。
从安装到第一条数据:mootdx 安装使用
我试下来的最快路径是装全功能版,然后本地文件和在线行情各跑一句。
pip install 'mootdx[all]'from mootdx.reader import Reader from mootdx.quotes import Quotes reader = Reader.factory(market='std', tdxdir='C:/new_tdx') daily = reader.daily(symbol='600036') client = Quotes.factory(market='std', heartbeat=True) realtime = client.quotes(symbol='600036')第一条daily读的是通达信本地文件,tdxdir指到你机器上通达信的安装目录,Windows 常见路径是C:/new_tdx;第二条走在线行情服务器,heartbeat等参数用于保持长连接。本地数据依赖通达信客户端落盘,在线数据依赖行情接口,后文会分开讲。
三个高频数据任务
用 quotes 取实时行情
盘中要看当前价、涨跌幅时,建一次client之后反复调quotes即可,返回直接是 DataFrame:
client = Quotes.factory(market='std', heartbeat=True) data = client.quotes(symbol='600036') price = data['price']批量取数时把symbol传成列表,一次请求拿到多只股票。
用 bars 取历史 K 线
frequency决定周期,传字符串最直观:5m、15m、30m、1h、day、week、mon,也可以用数字(0 是 5 分钟,9 是日 K 线)。offset控制每次取的条数,上限 800。
kline = client.bars(symbol='000001', frequency=9, offset=100)用 Affair 下载财务文件
财务数据不走本地目录,而是从远端拉压缩包,两步走:
from mootdx.affair import Affair files = Affair.files() Affair.fetch(downdir='./financial_data', filename='gpcw20231231.zip')Affair.files()先拿到远端可下载的文件清单,再按文件名取具体文件,落盘到downdir指定的目录。
与 pandas 做二次分析
mootdx 的返回统一是 DataFrame,算指标、统计收益、导出 CSV 都不用额外的转换步骤:
df = reader.daily(symbol='600036') df['MA5'] = df['close'].rolling(5).mean() df['ret'] = df['close'].pct_change() df.to_csv('600036_daily.csv', index=False)一行算均线,一行算日收益,一行落盘,拿到数据后基本不需要再做清洗。
常见坑与解法
- 报
tdxdir 目录不存在→ 路径没指到真实的通达信安装目录(默认值是C:/new_tdx)→ 改成本机实际路径,Linux、macOS 按安装位置填 - Python 3.8 以下装不上或行为异常→ 项目要求 Python 3.8+ → 升级解释器后再装
- 离线读到的数据停在旧日期→ 本地文件由通达信客户端维护,mootdx 只负责读,不会自动同步 → 先打开通达信更新数据,再执行读取
- K 线周期对不上→
frequency是数字编码 → 直接传5m、1h、day这类字符串,省得记映射 - 依赖装不全→ 只装了核心
mootdx→ 换pip install 'mootdx[all]'装全功能
让它更稳的几条建议
- 高频读取的本地文件在应用层做本地缓存,减少对磁盘的重复 IO
- 在线请求加上重试,网络抖动时避免整条任务失败
- 长连接场景开
heartbeat,并定期用bestip机制挑选更快的行情服务器 - 财务文件与本地行情建立定期更新任务,数据时效和代码稳定性一样重要
再补一句小贴士:多只股票的实时行情把symbol传成列表一次取完,比逐只循环请求省不少时间;给Reader包一层子类做自定义加工也行,但大多数场景用 pandas 后处理就够了。
接下来看什么
到这里,mootdx 能读什么、怎么读、怎么接进 pandas 流水线已经讲完。下一步建议按顺序翻仓库里的 快速上手说明、标准行情接口文档 和 sample/ 目录下的示例代码,基本能覆盖日常用到的接口。数据质量决定分析的上限,先把数据链路跑稳,再谈策略。
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考