mootdx 教程:如何快速读取通达信行情与K线数据
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
mootdx 是一个通达信数据读取的 Python 简洁封装,它能连接通达信线上服务器获取实时股票行情与 K 线数据,也能读取通达信客户端保存的本地历史K线和财务数据,全部以 pandas DataFrame 返回,不需要自己理解底层协议。
和手动对接协议相比,mootdx 差在哪里
这一节用一张表对比"自己做"和"用 mootdx"的差别。
| 场景 | 手动对接协议 | 用 mootdx |
|---|---|---|
| 实时行情 / K 线 | 要研究通达信行情协议细节 | 几行Quotes代码 |
| 本地历史K线 | 要自己解析.day二进制文件 | 一行Reader.daily() |
| 财务数据 | 要自己找数据文件并解析 | Affair三步下载解析 |
| 连接稳定性 | 重试、重连、选服务器自己写 | 内置重试、自动重连 |
除 Python API 外还附带命令行工具,返回的数据都是pd.DataFrame,可直接接入 pandas 生态。
安装后 5 分钟拿到第一份数据
这一节按"安装 → 初始化 → 第一次调用"推进,照做即可在几分钟内看到数据。
先安装(Python 3.8+;需要命令行工具用mootdx[cli],依赖不确定时直接mootdx[all]):
pip install 'mootdx'下面的例子获取 600036 最近 10 根日K线:Quotes.factory初始化后,client 上就能发起各类请求:
from mootdx.quotes import Quotes client = Quotes.factory(market='std', multithread=True, heartbeat=True) df = client.bars(symbol='600036', frequency=9, offset=10) print(df)返回的df包含 open、high、low、close、vol 等字段,索引是 datetime,可以直接做指标计算。
三种最常用的数据用法拆解
这一节把最常用的三个能力拆开讲:什么时候用、怎么调用、返回什么。
获取实时行情与K线
Quotes负责所有线上数据,适合盘中监控、信号计算等需要最新数据的场景。market传std是股票市场,ext是扩展市场(期货、黄金等);frequency控制K线粒度:9 日K、8 一分钟、4 周K、6 月K。
client.quotes(symbol='000001') # 实时日行情 client.index(symbol='000001', frequency=9) # 指数K线 client.finance(symbol='000001') # 财务信息除bars外还有get_k_data(code, start_date, end_date)按日期区间取数,内部按 800 条分页请求并处理了非交易日。
用 Reader 读取本地历史K线
Reader直接读通达信客户端vipdoc目录下的.day文件,不走网络、不受频率限制,适合全市场回测和离线场景。tdxdir是通达信安装目录,必须真实存在,否则初始化就抛异常:
from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') df = reader.daily(symbol='600036') # 日线 reader.minute(symbol='600036') # 1分钟 reader.fzline(symbol='600036') # 5分钟市场(sh/sz)和文件路径由代码自动推断,不用关心文件放在sh/lday/还是sz/lday/。
下载并解析财务数据
Affair处理通达信财务报表,三步走:看文件列表、下载、解析;下载的文件会做 MD5 校验,已存在的文件不会重复下载:
from mootdx.affair import Affair Affair.files() # 远程财务文件列表 Affair.fetch(downdir='tmp') # 下载全部 df = Affair.parse(downdir='tmp', filename='gpcw20231231.zip')parse在文件不在本地时会自动触发下载,返回解析好的财务报表 DataFrame。
服务器选择、重试与几个常见坑
这一节列出项目里真正常用、能少走弯路的几点。
- 先测最优服务器:
Quotes默认连配置文件里的服务器,可先跑mootdx bestip -v -w测试延迟并把最快的写入~/.mootdx/config.json,详见 docs/cli/bestip.md;代码里传bestip=True则自动选优。 - 重连不用自己管:行情请求已带 tenacity 重试和空结果自动重连,
heartbeat=True保持心跳,timeout控制连接超时。 - 扩展市场记得用
ext:期货、黄金等扩展市场用Quotes.factory(market='ext'),数据源端口与股票市场不同。 - 复权数据两条路:自行计算复权看
mootdx/utils/adjust.py与mootdx/tools/reversion.py;想直接用同花顺复权数据,调用mootdx/contrib/adjust.py的get_adjust_year(symbol, year, factor)。 - M1 Mac 注意 PyMiniRacer:财务数据解析依赖 mini-racer,在 M1 系统上有已知问题,详见 docs/faq/py_mini_racer.md。
继续往下挖
mootdx 覆盖了线上行情、离线文件和财务数据的完整链路,拿到 DataFrame 之后,后面全是 pandas 的活。
- 快速参考:docs/quick.md
- 示例代码:sample/
- API 细节:docs/api/
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考