[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81793":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":13,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":27,"discoverSource":28},81793,"tdxrs","jiangtaovan\u002Ftdxrs","jiangtaovan","tdxrs 是通达信 (TDX) 行情数据解析库的 Rust 高性能实现，通过 PyO3\u002Fmaturin 提供原生 Python 接口。它无缝兼容 [tdxpy] 的 API，并将核心解析引擎以 Rust 重构，从而实现数量级的本地解析性能提升，尤其在海量历史数据处理场景下优势显著。",null,"Rust",49,18,2,1,0,5,6,50.94,"MIT License",false,"main",true,[],"2026-06-12 04:01:35","# tdxrs — 通达信行情数据解析库 (Rust + Python)\n\n[![Rust](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRust-1.83%2B-orange)](https:\u002F\u002Fwww.rust-lang.org\u002F)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.8%2B-blue)](https:\u002F\u002Fwww.python.org\u002F)\n[![pyo3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpyo3-0.28-green)](https:\u002F\u002Fpyo3.rs\u002F)\n[![tests](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftests-93%20passed-brightgreen)](https:\u002F\u002Fgithub.com\u002Fjiangtaovan\u002Ftdxrs)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-brightgreen)](LICENSE)\n[![LoC](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode-5000%20Rust%20%7C%200%20unsafe-blueviolet)](https:\u002F\u002Fgithub.com\u002Fjiangtaovan\u002Ftdxrs)\n\n**tdxrs** 是通达信 (TDX) 行情数据解析库的 Rust 高性能实现。通过 PyO3\u002Fmaturin 提供 Python 调用接口，保持与 Python [tdxpy](https:\u002F\u002Fgithub.com\u002Frainx\u002Ftdxpy) 的 API 兼容，本地解析性能提升 **9-11 倍**。\n\n```python\nfrom tdxrs import TdxHqClient\nfrom tdxrs.constants import MARKET_SH, KLINE_DAILY, FQ_QFQ\n\nclient = TdxHqClient()\nclient.connect_to_any()\n\n# 贵州茅台日K → DataFrame\ndf = client.get_security_bars_dataframe(KLINE_DAILY, MARKET_SH, \"600519\", 0, 500)\ndf[\"ma20\"] = df[\"close\"].rolling(20).mean()\n\n# 批量实时行情\nquotes = client.get_security_quotes([\n    (MARKET_SH, \"600519\"), (0, \"000858\"), (0, \"300750\")\n])\n```\n\n---\n\n## 性能\n\n| 场景 | tdxrs (Rust) | tdxpy (Python) | 提升 |\n|------|------------:|--------------:|:---:|\n| 日线解析 1000 条 | 0.3ms | 2.8ms | **9×** |\n| 分钟线解析 1000 条 | 0.5ms | 5.1ms | **10×** |\n| 板块解析 500 条 | 1.2ms | 12.0ms | **10×** |\n| 网络 K 线 100 条 | 73ms | 110ms | **1.5×** |\n| 网络行情 3 只 | 75ms | 95ms | **1.3×** |\n| 60 线程并发 K 线 | **344ms** | — | 零退化 |\n\n> 吞吐量 ~260 万条\u002F秒。全市场 5000 只股票日线解析约 2 秒。详见 [性能基准](docs\u002Fpublic\u002FBENCHMARKS.md)。\n\n---\n\n## 功能\n\n### 网络行情 (13 类数据)\n\n| 数据 | 覆盖 |\n|------|------|\n| **K 线** | 个股 + 指数，12 种周期 (1分钟 ~ 年线) |\n| **实时行情** | 五档盘口，含成交额\u002F总量 |\n| **分时数据** | 当日 + 历史 |\n| **逐笔成交** | 当日 + 历史，含买卖方向 |\n| **证券信息** | 全市场列表 + 数量 (带缓存) |\n| **财务数据** | 实时 34 项 + 45 个英文命名财务指标 |\n| **除权除息** | 分红\u002F送股\u002F配股\u002F缩股历史 |\n| **板块数据** | 行业\u002F概念\u002F地域分类 |\n\n### 客户端侧复权计算\n\nTDX 服务端返回未复权原始数据。tdxrs 在客户端自行计算前复权\u002F后复权：\n- 中国 A 股标准除权除息公式：`P_ex = (P_close - D + P_rights × R_rights) \u002F (1 + R_bonus + R_rights)`\n- 支持分红+送股+配股联动\n- 自动补全早期除权事件 (context_bars 机制)\n- `fq=0` 路径零额外开销\n\n### 四种客户端方案\n\n| 客户端 | 策略 | 场景 |\n|-------|------|------|\n| `TdxHqClient` | 连接池(5) + 心跳 + 重试 + 缓存 | 主力，顺序请求 |\n| `TdxDirectClient` | 每请求独立 TCP | 高并发 (60线程零退化) |\n| `TdxFinanceClient` | 独立超时(15s) + 磁盘缓存 | gpcw 大文件下载 |\n| `AsyncTdxHqClient` | tokio 异步 | 异步生态集成 |\n\n### 本地文件解析\n\n| 格式 | Reader | 输出 |\n|------|--------|------|\n| `.day` 日线 | `DailyBarReader` | dict \u002F tuple \u002F DataFrame |\n| `.lc5` `.lc1` 分钟线 | `MinBarReader` `LcMinBarReader` | 同上 |\n| `.dat` 板块 | `BlockReader` | flat \u002F group 两种模式 |\n| `gpcw*.dat` 财务 | `FinancialReader` | f32 字段数组 |\n\n---\n\n## 安装\n\n```bash\npip install maturin\ngit clone https:\u002F\u002Fgithub.com\u002Fjiangtaovan\u002Ftdxrs && cd tdxrs\nmaturin develop --release\n```\n\nWindows `x86_64-pc-windows-gnu` 需额外安装 [MSYS2 dlltool](docs\u002FINSTALL.md)。详见 [安装说明](docs\u002FINSTALL.md)。\n\n---\n\n## 快速示例\n\n### K 线 — 完整复权演示\n\n```python\nfrom tdxrs import TdxHqClient\nfrom tdxrs.constants import MARKET_SH, MARKET_SZ, KLINE_DAILY, KLINE_WEEKLY, FQ_QFQ, FQ_HFQ, FQ_NONE\n\nclient = TdxHqClient()\nclient.connect_to_any()\n\n# 前复权 (默认)\nbars = client.get_security_bars(KLINE_DAILY, MARKET_SH, \"600519\", 0, 100)\n\n# 未复权原始数据\nraw = client.get_security_bars(KLINE_DAILY, MARKET_SH, \"600519\", 0, 100, fq=FQ_NONE)\n\n# 后复权\nhfq = client.get_security_bars(KLINE_DAILY, MARKET_SH, \"600519\", 0, 100, fq=FQ_HFQ)\n\n# 周K + 自动分页 (3000条)\nall_bars = client.get_security_bars_all(KLINE_WEEKLY, MARKET_SH, \"600519\", count=3000)\n\n# Tuple 高性能模式 (快 40-60%)\ntuples = client.get_security_bars_tuples(KLINE_DAILY, MARKET_SH, \"600519\", 0, 500)\n# → (open, close, high, low, vol, amount, year, month, day, hour, minute, datetime)\n\nclient.disconnect()\n```\n\n### 多股票批量财务\n\n```python\n# 实时财务 (TDX 原始值, 不自动转换单位)\ninfo = client.get_finance_info(market=1, code=\"600519\")\n# 经验规则: 股本类 ≈万元, 资产类 ≈万元, 每股指标 ≈元\nprint(f\"净资产: {info['jingzichan']:.0f}\")   # e.g. 270894048 → 2709亿元\nprint(f\"每股净资产: {info['meigujingzichan']:.2f}\")  # 216.32元\n\n# 多股票对比 DataFrame\ndf = client.get_finance_info_dataframe([\n    (MARKET_SH, \"600519\"), (MARKET_SZ, \"000858\"), (MARKET_SZ, \"300750\")\n])\nprint(df[[\"code\", \"jingzichan\", \"jinglirun\", \"meigujingzichan\"]])\n```\n\n### 本地文件解析\n\n```python\nfrom tdxrs import DailyBarReader\n\nreader = DailyBarReader(coefficient=0.01)\ndf = reader.to_dataframe(open(\"600519.day\", \"rb\").read())\n# df.columns: date, open, high, low, close, amount, volume, year, month, day\n```\n\n---\n\n## 工程亮点\n\n```\n语言:    Rust 2021 edition, 0 行 unsafe\n测试:    93 个单元\u002F集成测试 (91 passed)\n依赖:    6 个核心 crate (pyo3, flate2, tokio, serde, thiserror, encoding_rs)\n文档:    12 篇维护文档 (6 public + 6 internal)\n周期:    12 天, v0.1.0 → v0.5.1\n```\n\n---\n\n## 架构\n\n```\nPython API ─── dict \u002F tuple \u002F DataFrame\n    │\nNet 层 ─── Pool \u002F Direct \u002F Finance \u002F Async 四个客户端\n    │         └── utils.rs 公共工具 (packet \u002F handshake \u002F decompress)\n    │\nProtocol 层 ─── 13 个解析器 + 复权算法 + gpcw 字段映射\n    │\nReader 层 ─── 日线 \u002F 分钟线 \u002F 板块 \u002F 财务\n    │\n基础设施 ─── error \u002F logging \u002F helpers \u002F constants\n```\n\n详见 [架构说明](docs\u002Fpublic\u002FARCHITECTURE.md) 和 [代码引用](docs\u002FCODE_REFERENCE.md)。\n\n---\n\n## 文档\n\n| 文档 | 说明 |\n|------|------|\n| [API 参考](docs\u002Fpublic\u002FAPI_REFERENCE.md) | 完整 Python API + 最佳实践 |\n| [架构说明](docs\u002Fpublic\u002FARCHITECTURE.md) | 模块设计、数据流、客户端策略 |\n| [性能基准](docs\u002Fpublic\u002FBENCHMARKS.md) | 顺序\u002F并发性能 + 场景选择指南 |\n| [复权算法](docs\u002FADJUSTER_ALGORITHM.md) | 公式推导、版本迭代、验证方法 |\n| [变更日志](docs\u002Fpublic\u002FCHANGELOG.md) | 版本历史 |\n| [贡献指南](docs\u002Fpublic\u002FCONTRIBUTING.md) | 参与开发 + 可贡献方向 |\n| [安装说明](docs\u002FINSTALL.md) | 环境配置 + FAQ |\n| [文件格式](docs\u002FFILE_FORMATS.md) | TDX 二进制格式参考 |\n| [代码引用](docs\u002FCODE_REFERENCE.md) | 模块依赖 + 变更影响矩阵 |\n| [工程经验](docs\u002FSKILLS.md) | 可复用的开发方法论 |\n\n---\n\n## 要求\n\n- **Rust** 1.83+ | **Python** 3.8+ | **maturin** 1.5+\n- pandas (可选, DataFrame 输出)\n\n---\n\n## 许可证\n\nMIT License — 详见 [LICENSE](LICENSE)\n","tdxrs 是一个用于解析通达信 (TDX) 行情数据的高性能 Rust 库，并通过 PyO3\u002Fmaturin 提供了原生 Python 接口。它保持了与 tdxpy 的 API 兼容性，但将核心解析引擎用 Rust 重写，实现了显著的性能提升，在处理大规模历史数据时尤为突出。该项目支持多种行情数据类型，包括K线、实时行情、分时数据等，并且在客户端提供了复权计算功能。此外，tdxrs 还为不同应用场景设计了四种客户端方案，以满足从顺序请求到高并发的各种需求。适用于需要高效处理金融行情数据的场景，如量化交易系统开发或金融数据分析。","2026-06-11 04:06:43","CREATED_QUERY"]