3行代码免费接入Python通达信数据接口
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
mootdx 是一个 Python 通达信数据接口,替量化新手和投研脚本省掉自己解析行情协议、手写 socket 的脏活。装完一行命令,3 行代码就能把沪深 K 线装进 DataFrame,全程不用注册、不用付费。
📦数据到手前先过这三关
你正在给策略补回测数据,手头只有通达信客户端里那一堆.day文件,或者打算对着别人的协议笔记手写 socket 解析。结果字节序和结构体对了一晚上,还没跑通第一只票。mootdx 把这条链路整个包掉:client.bars()一行拉回标准 DataFrame,列名就是open、close、volume这些熟面孔。
你正在盯盘,想要一批股票的实时买卖五档。行情类接口要么排队申请,要么花钱。Quotes客户端直连行情服务器,quotes()一次传多只代码,五档报价直接落表,脚本里循环着拉就行。
你正在做基本面研究,发现财报数据散落在各种压缩包和网页里。Affair模块能把通达信财务数据文件整个目录批量拉到本地,配合parse()自动解包,不用自己翻文件清单。
| 没用它之前 | 用了它之后 |
|---|---|
| 手工解析 .day 二进制文件 | 一行调用直接返回 DataFrame |
| 手写 socket 对接行情协议 | 工厂方法自动选服务器直连 |
| 财务数据逐个手动下载解压 | 一个参数批量落地本地 |
| 服务器 IP 靠人肉找 | 内置测速自动挑最快节点 |
📦一条命令装完,3 行代码出数据
pip install 'mootdx'只装核心依赖;分不清依赖关系的话用全量版,连命令行工具一起带上:
pip install 'mootdx[all]'下面这段最小示例,作用是把茅台最近 10 根日 K 线拉出来:
from mootdx.quotes import Quotes # market='std' 走沪深股票市场 client = Quotes.factory(market='std') df = client.bars(symbol='600036', frequency=9, offset=10) # 9 = 日K print(df)跑通后你会看到一张按日期倒序的表,包含open、high、low、close、vol、amount这些列。原理一句话:本质是封装了通达信私有协议,由Quotes客户端直连官方行情服务器取数,首次创建时还会自动测速选最快的服务器。
📦数据面比你想象的大:6 类数据各一行代码
日周月全周期 K 线:策略取数的主力接口,frequency换周期、start/offset控制窗口。
df = client.bars(symbol='600036', frequency=9, offset=10) # 日K # frequency 可换 0=5分钟、3=小时、5=周K、6=月K、11=年K实时盘口五档:一次传多只代码,批量取买卖五档和最新价。
df = client.quotes(symbol=['000001', '600300'])指数 K 线:上证指数、深证成指这类走指数专用通道。
df = client.index(symbol='000001', frequency=9)当日分时:盘中走势曲线,盯盘脚本常用。
df = client.minute(symbol='600036')财务数据文件:不返回表,而是把通达信财务数据源文件整个拉到本地。
from mootdx.affair import Affair Affair.parse(downdir='tmp') # 批量下载并解包财务数据离线兜底:不联网也能读本地日线
客户端断网、或者只想读机器上已经缓存好的数据时,Reader直接指向通达信的本地目录,零网络请求:
from mootdx.reader import Reader reader = Reader.factory(market='std', tdxdir='C:/new_tdx') df = reader.daily(symbol='600036') # 读本地缓存的日线💡3 个真实用法,数据才算落地
策略回测取整段历史
- 要解决的:回测要连续几年的日线,不能一次只拿一小段。
- 关键思路:
start+offset分页滚动拉,拼成一张完整 DataFrame。 - 核心代码行:
hist = client.bars(symbol='600036', frequency=9, start=0, offset=800)盘中看板刷新行情
- 要解决的:盯多只票的盘口,不想手动刷新页面。
- 关键思路:
quotes本来就支持一次传列表,套个定时循环就是看板。 - 核心代码行:
client.quotes(symbol=['000001', '600036', '002594'])批量财报做基本面筛选
- 要解决的:想按 ROE、毛利率筛一批票,得先有原始财务文件。
- 关键思路:
Affair批量下载落地,再逐包拼表、用 pandas 过滤。 - 核心代码行:
Affair.parse(downdir='data/cw')🐛4 个高频坑 + 2 个提速点
- 症状:第一次初始化
Quotes.factory特别慢。根因:首次会遍历内置服务器列表测速选优,之后走缓存。修复:别盯着看,等它跑完一次即可;想手动刷新就传bestip=True。 - 症状:一次拉不到想要的 K 线条数。根因:通达信协议单次最多 800 条。修复:
start往后翻页循环拉,再pd.concat拼起来。 - 症状:M1/M2 Mac 上部分依赖装不起来。根因:
py_mini_racer对 Apple 芯片支持不好。修复:跳过用到它的功能,主流程行情读取不受影响。 - 症状:跑久了连接断了、返回空数据。根因:行情服务器长连接容易掉线。修复:
Quotes.factory(market='std', heartbeat=True)开心跳保活。
提速两个点:
# 批量拉多只票,并行请求 client = Quotes.factory(market='std', multithread=True)# 数据量大时先落本地,离线读缓存 df = Reader.factory(market='std', tdxdir='C:/new_tdx').daily(symbol='600036')📎想再深一步?
- 源码关键文件:行情客户端、本地数据读取器、财务数据模块、CLI 入口
- 示例代码:基础行情、基础读取、复权示例
- 官方文档:快速入门、API 接口说明
- 问题反馈:GitHub Issues
装完包,跑起来,K 线、盘口、财务数据就都在你的 DataFrame 里了。所有数据仅供学习研究,不构成任何投资建议。
【免费下载链接】mootdx通达信数据读取的一个简便使用封装项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考