3 步拿到 A 股免费 K 线数据:Python通达信数据接口 MOOTDX 上手
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
Python通达信数据接口 MOOTDX 直接连通达信行情服务器,把 A 股行情、历史 K 线和财务档案拉成现成的 DataFrame。需要股票数据跑回测、做行情监控、搞行业对比的人,用它省下买商业数据订阅和自行逆推行情协议的功夫。十几行代码起步,拿到的表就能直接进 pandas 分析。下面按顺序走完,3 分钟内能取出第一笔数据。
🚀 装好它
Python 3.8 以上即可跑,一条命令装完。依赖关系拿不准就直接装全量包:
pip install 'mootdx[all]' # 全量依赖;只要核心用 pip install 'mootdx'下面 5 行拉出招商银行的前复权日线,输出是含日期、开高低收、成交量的 DataFrame:
from mootdx.quotes import Quotes client = Quotes.factory(market='std') # 股票市场客户端 df = client.get_k_data('600036', adjust='qfq') # 前复权日线 print(df)两个常用开关顺手记住:传multithread=True可以批量取多只股票,heartbeat=True让长连接不容易断。全文示例都以 std 股票市场为例,做期货时把 market 换成 ext 即可。
它能给你什么
取数入口共四类,返回的都是可直接使用的 DataFrame。
拉在线行情
一个 client 出四种数据:K 线、指数、当日均线、指定日期分钟历史。
bars(symbol, frequency) 指定周期的 K 线 index(symbol) 指数行情 minute(symbol) 当日分钟数据 minutes(symbol, date) 某天的分钟历史frequency 传 9 是日线、8 是一分钟线,offset 控制条数。返回列名统一,换股票不用改下游代码。
读本地通达信文件
本地装着通达信的话,tdxdir 指向安装目录就能离线读历史 K 线,断网也不影响:
from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') print(reader.daily(symbol='600036')) # 日线 print(reader.minute(symbol='600036')) # 分钟线路径匹配是自动的,你只给代码。这种模式补历史数据尤其合适,完全不占网络。
取财务档案
做基本面分析用 Affair 模块拉通达信的财务文件:
from mootdx.affair import Affair files = Affair.files() # 先看远端有哪些文件 Affair.fetch(downdir='tmp', filename='gpcw20240331.zip') # 下载 Affair.parse(downdir='tmp', filename='gpcw20240331.zip') # 解析成表解析结果是表格,按日期对齐后可以直接和 K 线数据 join。
覆盖多市场数据
market 参数切换两类市场,方法名完全相同:
| market | 覆盖范围 | 典型用途 |
|---|---|---|
| std | 沪深 A 股 | 股票、指数 K 线 |
| ext | 扩展市场 | 期货、基金等 |
比如拉期货行情,只需把 market 改成 ext,其余代码不动。
把它接进你的工作流
数据进来之后,是一条取数、加工、出去的流水线。
从 K 线到信号
回测最短路径:取 K 线、算均线、出方向。这个例子输出 0/1 信号列:
from mootdx.quotes import Quotes client = Quotes.factory(market='std') df = client.get_k_data('600036', adjust='qfq') ma5 = df['close'].rolling(5).mean() ma20 = df['close'].rolling(20).mean() df['signal'] = (ma5 > ma20).astype(int) # 1 为多头方向 print(df.tail())批量拼行业对比表
把行业股票代码写进列表,循环调get_k_data,再用pd.concat把多个 DataFrame 摞成一张宽表,就是一份可对比的指标面板。批量请求时记得给 factory 开multithread=True,等待时间能砍一大截。
结果落到文件
不想写代码时用 CLI:mootdx quotes -s 600036 -o result.csv把行情直接写成 CSV,也支持 Excel,适合丢给下游脚本或 BI 工具。
踩坑速查
最高频的四个坑,各一句话解法:
- 装完 CLI 命令跑不起来?→ 用
pip install 'mootdx[cli]'或[all]重装,命令行依赖是单独打包的 - Reader 抛“tdxdir 目录不存在”?→ tdxdir 要指通达信安装根目录(含 vipdoc 的那层),且路径必须真实存在
- M1 Mac 上 PyMiniRacer 报错?→ 参考 docs/faq/py_mini_racer.md 换运行环境
- 连接慢、偶发超时?→ 先跑
mootdx bestip选最快节点,或在 factory 里直接指定 server
下一步
- 官方文档:docs/index.md
- 示例代码:sample/basic_quotes.py、sample/basic_reader.py、sample/basic_affairs.py
- 边界情况与异常处理看测试用例:tests/
- 项目接受贡献,发现 issue 可以直接提 PR。
Python通达信数据接口 MOOTDX 从单只股票 K 线到全市场财务档案都覆盖到了,把上面的代码自己跑一遍,比读十页文档更快上手。
本项目仅作学习交流使用,不构成任何投资建议,不得用于商业目的。
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考