
用 Python 获取通达信数据有多简单mootdx 一个库全搞定【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx核心关键词mootdx 通达信数据获取长尾关键词Python 读取通达信行情数据、通达信历史数据离线解析、通达信财务数据下载深夜十一点朋友发来消息我把东财的接口调通了但拉回来的历史数据缺斤少两复权还得分两次算都快疯了。这种经历做量化的人多半都懂免费数据源不稳定、付费接口太贵、自己解析通达信文件又得啃一晚上二进制格式。而今天要聊的mootdx通达信数据读取的一个简便使用封装就是冲着这个痛点来的——它把通达信数据获取这件事压缩成了几行代码在线行情、离线历史、财务报表三条线一次打通。先想清楚你取数到底是为了什么很多人一上来就纠结用哪个接口其实不如先问自己一个问题我要的数据在本地还是必须在线上如果你只是想写个回测历史日线、分钟线是你的主食这种数据通达信软件每天都帮你下载到本地了直接读文件最快、最稳。如果你要做实盘监控、盘中提醒那必须走实时行情接口每秒都在变的数据没法等本地文件刷新。传统做法里这两件事往往要引两个库、两套数据结构还得自己处理格式差异。mootdx 的做法是统一抽象Reader管离线文件、Quotes管在线行情二者都返回 pandas DataFrameAPI 风格一致学一个等于会两个。相比那些三天两头失效的免费 API、动辄收费的商用接口以及需要手工解析.day/.lc1二进制文件的土办法它把复杂度全部挡在了门外面。三条主线行情、历史、财报mootdx 的核心能力可以浓缩成三句话每句话配一段能直接跑的最小代码。主线一在线行情实盘的眼睛核心实现在 mootdx/quotes.py通过Quotes.factory()一行创建客户端然后要什么取什么实时报价、多周期 K 线、指数、分时、分笔成交、板块信息都有。from mootdx.quotes import Quotes # marketstd 表示沪深股票市场heartbeat 开启心跳保活 client Quotes.factory(marketstd, heartbeatTrue) # 拉取平安银行最近 10 根日 K 线 df client.bars(symbol000001, frequency9, offset10) print(df)主线二离线历史回测的地基核心实现在 mootdx/reader.py。它直接解析通达信安装目录下的数据文件vipdoc/sh/lday/*.day这类不需要打开通达信软件只要数据目录存在就能读。from mootdx.reader import Reader # tdxdir 填你电脑上通达信的安装目录 reader Reader.factory(marketstd, tdxdirC:/new_tdx) # 读取招商银行的日线历史数据 daily reader.daily(symbol600036) print(daily.head())主线三财务报表基本面的一手料核心实现在 mootdx/affair.py支持从远程服务器拉取上市公司财报文件并解析成表格免去四处搜集 PDF 和 Excel 的麻烦。from mootdx.affair import Affair # 看看远程有哪些财报文件可下 files Affair.files() print(files[:3]) # 下载指定季度的财报并解析 Affair.fetch(downdirtmp, filenamegpcw20230630.zip)三条主线都指向同一个结果拿到手就是规整的 DataFrame后面接 pandas、matplotlib、回测框架零摩擦。实战5 步搭一个自选股收盘巡检脚本纸上谈兵没意思咱们动手做一个真实有用的小工具每天收盘后把自选股的当日表现和最近均线状态汇总成一张表。全程 5 步代码可以一步步照着敲。第 1 步先给服务器做个体检在线行情依赖服务器质量项目自带测速工具。先装依赖再测速git clone https://gitcode.com/GitHub_Trending/mo/mootdx cd mootdx pip install -U mootdx[all] # 测试行情服务器把最快的写入配置 python -m mootdx bestip -v -w测速结果会把最优服务器写入配置文件之后创建的行情客户端会自动优先使用它。第 2 步拉实时行情看自选股现状创建客户端一次性拉取多只股票的实时报价from mootdx.quotes import Quotes client Quotes.factory(marketstd, heartbeatTrue) watch_list [000001, 000002, 600036, 600519] quote client.quotes(watch_list) # 支持批量一次网络请求搞定 print(quote[[code, name, price, servertime]].head())quotes()支持传字符串或列表批量请求能显著减少网络往返。第 3 步算涨跌和均线把数据变成结论光看价格没意义我们把每只股票最近 20 日 K 线拉下来算一算今天涨了多少、站在 5 日和 20 日均线之上还是之下import pandas as pd def analyze(symbol): df client.bars(symbolsymbol, frequency9, offset30) # 日 K df[ma5] df[close].rolling(5).mean() df[ma20] df[close].rolling(20).mean() last df.iloc[-1] return { code: symbol, close: round(last[close], 2), ma5: round(last[ma5], 2), ma20: round(last[ma20], 2), } report pd.DataFrame([analyze(s) for s in watch_list]) print(report)第 4 步用离线数据交叉验证网络数据偶尔会有缺口最稳的做法是用本地文件交叉验证。同一只股票Reader读出来的日线应该和在线接口一致from mootdx.reader import Reader reader Reader.factory(marketstd, tdxdirC:/new_tdx) local reader.daily(symbol600036) # 对比最后一根 K 线的收盘价 online client.bars(symbol600036, frequency9, offset1) print(在线收盘:, online.iloc[-1][close]) print(本地收盘:, local.iloc[-1][close])两边对得上说明数据链路是健康的。第 5 步封装成脚本每天自动跑把上面逻辑装进一个函数收盘后跑一次结果导出 CSV 归档def daily_report(watch_list, outputreport.csv): rows [analyze(s) for s in watch_list] df pd.DataFrame(rows) df[date] pd.Timestamp.today().strftime(%Y-%m-%d) df.to_csv(output, indexFalse) print(f巡检完成共 {len(df)} 只股票已写入 {output}) return df daily_report(watch_list)到这里一个能用的巡检工具就齐活了测速、取数、计算、验证、落盘全链路打通。把这套脚本挂到 crontab 或任务计划里每天收盘自动出表你只需要打开 CSV 看一眼。进阶三个容易被忽略的细节工具能跑了想让它在真实环境里更抗造这三点值得花两分钟。1. 重连是常态别裸奔。行情连接在盘中被断开很常见Quotes内部带有自动重试逻辑但你自己的业务代码最好也加一层兜底。用bestipTrue让客户端启动时自动选最优服务器能明显降低断连概率client Quotes.factory(marketstd, bestipTrue, timeout15, heartbeatTrue)2. 批量永远比循环香。无论是quotes()传股票列表还是bars()里的offset参数一次拉多根 K 线都尽量一次拿够别在循环里逐条请求——网络往返才是最贵的东西。3. 全局配置一次搞定。项目提供统一配置入口 mootdx/config.py数据目录、服务器、超时都能集中管理脚本里不必到处写死路径from mootdx.config import config config.set(TDXDIR, C:/new_tdx) # 统一数据目录 config.set(BESTIP, {HQ: (202.108.253.131, 7709)}) # 指定最优服务器FAQ新手最常问的 5 个问题Q1必须安装通达信软件才能用吗不用。在线行情直接连服务器完全不需要软件只有离线读取需要通达信的数据目录从任何渠道弄到标准数据文件目录即可软件本身不是必需品。Q2返回的数据是 DataFrame 吗是。几乎所有接口都返回 pandas DataFrame列名统一方便直接接进分析流程。Q3frequency参数的数字是什么意思它是 K 线周期编码比如9是日线、5是周线、6是月线、0是 5 分钟线、8是 1 分钟线具体可查文档 docs/api/。Q4历史数据缺口怎么补先用Reader读本地文件再用Quotes.bars()在线补缺两边日期对齐即可遇到除权除息配合项目的复权因子工具处理更稳妥。Q5在 Mac 或 Linux 上能跑吗能README 明确支持 Windows / macOS / LinuxPython 3.8 即可唯一要注意的是个别依赖如 PyMiniRacer在 M1 芯片上需要额外处理文档里 docs/faq/py_mini_racer.md 有说明。收尾下一步怎么走回顾一下咱们用 mootdx 做了三件事摸清了行情、历史、财报三条取数主线从零搭了一个可落地的自选股巡检脚本还补上了重连、批量、配置三个实战细节。你现在已经有能力去自取所需而不是等着别人喂数据了。下一步的建议很具体跑通最小示例对照 docs/quick.md 把离线读取和在线行情各跑一遍确认环境没问题改造成自己的工具把我上面的巡检脚本换成你的自选股列表加几列你关心的指标翻一翻源码和测试想知道某个接口到底怎么实现的直接看 mootdx/quotes.py测试用例在 tests/quotes/是最好的学习范本。数据管道铺好了剩下的就是你的策略想法了。动手写第一行代码吧跑通的那一瞬间你会觉得早知道这么简单就好了。遇到问题想找人聊聊项目仓库提供了交流入口欢迎加入讨论。【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考