资讯动态

用 mootdx 三个任务跑通通达信数据:行情、均线与本地文件

发布时间:2026/10/21 4:51:30 来源:尧图企业网站定制
用 mootdx 三个任务跑通通达信数据行情、均线与本地文件【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx收盘后想给一篮子股票算均线第一步是拿到干净的行情数据。mootdx 把通达信数据读成 Python 对象Quotes 从行情服务器拿实时报价与历史 K 线Reader 离线读本地文件返回值兼容 pandas能直接进量化分析流程。30 秒认识 mootdx先看模块分工mootdx 就是通达信数据的 Python 封装四个入口各管一摊返回值统一是 pandas DataFrame拿到手就能算。模块能干什么适合谁Quotes连行情服务器拿实时报价、历史 K 线日 / 分钟 / 分时、分笔成交写 Python 量化策略、做盘中监控的人Reader离线读取本地通达信安装目录里的日线、分钟线、板块文件已有 TDX 本地数据、不想每次走网络的人Affair下载和浏览上市公司财务数据文件做基本面分析、要财报数据的人tools / utilstdx2csv 格式转换、复权计算、交易日历这类小工具搭数据处理管道、处理杂活的人Quotes 像一扇实时行情窗口数据从服务器流进来Reader 像个本地数据档案柜只翻你机器上已有的文件。两条路最终都落到同一份 DataFrame下面三个任务各走一条。 mootdx 安装步骤pip 一条命令装好要求 Python 3.7 及以上Windows / macOS / Linux 都能跑一条命令装完pip install -U mootdx[all]。[all]会把命令行工具等扩展依赖一并装好依赖关系摸不清楚就用它只装核心功能写pip install mootdx也够。强烈建议在虚拟环境里装免得版本和系统里已有的 pandas、numpy 打架。mootdx 三个上手任务行情、均线与本地日线装好了先看它最高频的一件事拿行情。三个任务由浅入深第一个走线上第二个算指标第三个完全离线。任务一用 Quotes 拿单只股票实时行情marketstd指股票市场不传参数时默认连配置文件里那台服务器先看最小用法from mootdx.quotes import Quotes client Quotes.factory(marketstd) df client.quotes(symbol000001) print(df.to_string())跑完你应看到一个只有一行的 DataFrameprice 是最新价vol 是成交量手amount 是成交额后面还跟着买卖五档的报价。注意它已经是 DataFrame不用再做pd.DataFrame()转换如果拿到的是空表别在代码里纠结直接跳到下面排障一节。任务二拉历史日线算 MA5 / MA20验证均线策略前先要一段干净的日 K。bars 的 frequency 参数里 9 代表日 Koffset 控制一次取多少根from mootdx.quotes import Quotes client Quotes.factory(marketstd) df client.bars(symbol000001, frequency9, offset60) df[MA5] df[close].rolling(5).mean() df[MA20] df[close].rolling(20).mean() print(df[[close, MA5, MA20]].tail(10))跑完应看到 60 根日线close 是收盘价MA5 从第 5 根、MA20 从第 20 根才开始有值前面的 NaN 是滚动窗口没填满属正常。一个细节单次最多取 800 根传更大的 offset 会被自动截断要更长历史就配合 start 参数分段拉再拼起来。任务三用 Reader 指向本地 tdxdir 读日线如果机器上装了通达信历史 K 线文件就在本地Reader 指向安装目录即可离线读取一个网络请求都不用发from mootdx.reader import Reader reader Reader.factory(marketstd, tdxdirC:/new_tdx) daily reader.daily(symbol600036) print(len(daily), daily[[open, high, low, close]].tail(5))这里有个容易踩的坑tdxdir 要指向通达信安装根目录——就是包含 vipdoc 子目录的那一层指到 vipdoc 或 lday 会直接抛tdxdir 目录不存在。跑通后你会看到总行数加一段 open/high/low/close 表格同一对象上还有 minute() 读分钟线、fzline() 读分时sample/basic_reader.py 里有完整写法可以对照。 mootdx 数据没拿到时先查这几处拿不到数据基本是四类原因按顺序排查能解决大多数问题症状先查哪里首次建连就超时、卡住内置服务器列表会失效跑mootdx bestip -v -w重新测速把最快节点写回~/.mootdx/config.json调用成功但返回空 DataFrame代码与市场不匹配沪深前缀、当天停牌或非交易日换一只已知活跃的代码、把 offset 调小验证链路连指定服务器失败显式传server(114.80.149.92, 7709)必须是 (ip, port) 元组格式错了会直接报 Server 格式错误Reader 报目录不存在tdxdir 是安装根目录不是 vipdoc、lday 这类子目录路径里也别用中文和空格bestip 相当于拨号前先测哪条线最快建议隔一两周重跑一次加-w把最优选写回配置。服务器列表本身会随时间失效这是通达信生态的常态不是你的环境问题。让 mootdx 用得稳一点生产脚本里建议加三件事失败重试、重复取数加缓存、进分析前先校验字段。指数退避重试断线或空数据后按递增间隔重来比固定间隔更不容易多台机器撞在同一时刻。tenacity 本来就是 mootdx 的依赖直接用from tenacity import retry, stop_after_attempt, wait_exponential from mootdx.quotes import Quotes client Quotes.factory(marketstd) retry(waitwait_exponential(min1, max8), stopstop_after_attempt(3)) def safe_bars(symbol, offset100): df client.bars(symbolsymbol, frequency9, offsetoffset) if df is None or df.empty: client.reconnect() raise RuntimeError(空数据等待重连后重试) return df抛出的 RuntimeError 会被 tenacity 接住重试三次都拿不到才往上抛调用方只需要处理最终失败。重复取数加缓存分钟级的轮询脚本没必要每次都打服务器按 symbol 记一个时间戳即可ttl 内直接返回旧值import time from mootdx.quotes import Quotes _cache {} def cached_bars(symbol, ttl300): hit _cache.get(symbol) if hit and time.time() - hit[1] ttl: return hit[0] df Quotes.factory(marketstd).bars(symbolsymbol, frequency9, offset100) _cache[symbol] (df, time.time()) return df实际项目里把 client 提到模块级复用别每次缓存未命中都新建一次连接。取数后做字段校验空数据在这里就拦下比在回测里跑出满屏 NaN 好查得多REQUIRED [open, high, low, close, volume] def check_df(df, symbol): if df is None or df.empty: raise ValueError(f{symbol} 数据为空先排查服务器) missing [c for c in REQUIRED if c not in df.columns] if missing: raise ValueError(f{symbol} 缺少字段: {missing}) return df.dropna(subset[close])校验放在数据进策略函数之前那一层错误定位到具体哪只票、缺哪个字段排障时间能省一半。 mootdx 项目里还藏了什么上面只用了主线功能仓库里还有几处值得翻docs/quick.md官方快速上手三个模块的最小示例都在这docs/api/quotes、reader、affair 的完整接口文档mootdx/tools/tdx2csv.py把通达信导出的 txt 行情转成 CSVmootdx/utils/adjust.py前复权 / 后复权计算做历史收益前别漏它mootdx/utils/holiday.py交易日历判断某天是否交易日sample/一批可直接运行的示例脚本把任务二里的 000001 换成你自己的股票池每只都算一遍 MA5 / MA20再和券商软件核对收盘价。数据对上了这套通达信数据管道才算真正跑通。【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑