Skip to main content

pytdxdata

CI PyPI version Python License PyPI downloads

通达信(TongDaXin)行情数据客户端:动态连接池 + 双层 TTL 缓存 + 多连接并发分页,纯 asyncio、零运行时依赖。

A股(沪/深/北) + 港股 + 美股 + 期货 + 期权,一套接口全市场。

📖 完整文档:https://openbot-coder.github.io/pytdxdata/

安装

pip install pytdxdata          # 或 uv add pytdxdata

可选异步加速:

pip install "pytdxdata[uvloop]"

30 秒上手

import asyncio
from pytdxdata import TdxData
from pytdxdata.models import KlinePeriod, Adjust

async def main():
    async with TdxData() as td:                     # 自动建连接池 + 缓存
        # 日K线(count 超过单页大小会自动多连接并发分页)
        bars = await td.get_bars(["sz000001"], KlinePeriod.DAY, count=240)
        # 前复权(自动走 MAC 通道)
        qfq = await td.get_bars(["sz300308"], KlinePeriod.DAY,
                                 count=500, adjust=Adjust.QFQ)
        # 跨市场报价:A股+港股+美股一次拿全
        quotes = await td.get_quotes(["sh600000", "hk00700", "usAAPL"])
        # 逐笔成交(MAC 通道,支持历史日期)
        ticks = await td.get_ticks(["sz000001"], date=20260811)
        print(bars[-1].close, quotes[0].price, len(ticks))

asyncio.run(main())

返回的是标准库 dataclass 组成的 list(库本身不依赖 pandas)。要 DataFrame 一行转:

from dataclasses import asdict
import pandas as pd
df = pd.DataFrame([asdict(b) for b in bars])

特性

特性 说明
🧩 动态连接池 启动时对服务器真实 K 线探测选优(剔除握手正常但数据为空的坏节点),健康分 + EWMA 延迟选路,跨服务器故障转移
🗄️ 双层 TTL 缓存 内存 LRU + 磁盘 SQLite(WAL),TTL 分级;single-flight 并发同键去重;缓存已解析记录(重复请求 0 网络 0 解析)
⚡ 并发分页 单请求拆 N 页(显式 start 偏移 → 无状态可并行)并行拉取、按序拼接、失败换连接重试
🔀 双通道整合 标准通道(经典行情)+ MAC 通道(逐笔 / 复权 / 1 分钟 K 线),按命令自动选路
📦 零重型依赖 纯 asyncio + stdlib(socket / zlib / struct / sqlite3)
📊 全市场覆盖 A股、港股、美股、期货、期权(46 个扩展市场)
📄 服务器文件解析 板块 block_*.dat / 行业 tdxhy.cfg / 财报 gpcw*.zip 下载即解析成 dataclass
🤖 AI 助手友好 内置 SKILL.md 与 llms.txt

文档导航

我想… 去哪
装好跑起来 快速开始
抄场景代码(转 DataFrame / 批量下载 / 离线板块快照) 场景示例
查方法签名与参数 TdxData 方法 — 由 docstring 自动生成
搞清枚举该填几 枚举速查
看协议二进制格式、三池路由、缓存策略 深入原理
用命令行 命令行工具
完整接口清单(28 个统一方法 + 33 个废弃别名) docs/API_REFERENCE.md
重构审查(数据一致性 / 遗漏对账) 接口重构审查
版本变更 CHANGELOG.md

本 README 只做入口层。深度内容一律在文档站,避免两处维护造成漂移。

给 AI 助手用

仓库根的 SKILL.md 是一份可直接加载的技能:三条必守约定、KlinePeriod 等枚举取值表、 「想做什么 → 用哪个方法」决策表、以及 11 条真实陷阱。AI 编程助手读完就能一次写对,不必翻源码。

# 丢进你所用 AI 助手的 skills 目录即可
curl -o ~/.workbuddy/skills/pytdxdata/SKILL.md --create-dirs \
  https://raw.githubusercontent.com/openbot-coder/pytdxdata/main/SKILL.md

示例

开发

uv sync                        # 建虚拟环境 + 注册 tdx 命令
uv run pytest tests/           # 127 个测试用例(协议 / 池 / 缓存 / 分页 / 全接口回归 / 文件解析 / CLI / 文档漂移)
uv sync --group docs           # 文档站依赖(mkdocs-material + mkdocstrings)
uv run mkdocs serve            # 本地预览文档站

已知限制

  • 行情来自通达信公开服务器,15 分钟延时;需实时数据请使用券商行情
  • 标准通道 K 线 count < 100 部分服务器返回空 → 分页器已强制 min_page=100 规避
  • 港股 / 美股期权在通达信协议内无数据
  • 服务器可用性随时间变化,可用 python -m pytdxdata.server_probe 重新探测

免责声明

本包仅用于技术研究与教育目的。行情数据来自通达信公开接口,不保证实时性与准确性; 作者不对任何投资决策负责。使用前请遵守通达信服务条款及相关法律法规。

License

MIT

Metadata

Release files for pytdxdata 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytdxdata 0.6.0
File Size Uploaded
pytdxdata-0.6.0.tar.gz 82.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytdxdata 0.6.0
File Interpreter ABI Platform
pytdxdata-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 191.6 kB

Release files / pytdxdata-0.6.0.tar.gz

Download URL pytdxdata-0.6.0.tar.gz
Size 82.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ef1e99d9f106da41112f4a6c580c90b7d3f29a10a9d58e26f1b482e26350cd62
BLAKE2b-256 checksum
How to use checksums
c7f3073312f8b8abab970835215d154708fd9f7f07975b698eb094089a060f47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / pytdxdata-0.6.0-py3-none-any.whl

Download URL pytdxdata-0.6.0-py3-none-any.whl
Size 108.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2770f3f928320a84278a43bc0c3d47c93e4d7d7726f949ea0d308e5a6a9a976
BLAKE2b-256 checksum
How to use checksums
4989dc4d4a28cd9de303c5d2c1e89a92604cd33609941fbe17ad63258154e23d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.2

2 release files

0.6.1

2 release files

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page