Skip to main content

TDX stock data client — A股/期货/港股/美股行情数据接口

Project description

opentdx — Python TDX 量化行情数据接口

项目创意来自 pytdx

感谢 @rainx 迈出的第一步。

✨ 声明

本项目为个人学习项目,并非已完成的开箱即用的产品,仅用于学习交流。

对于数据有迫切需求的朋友,通达信新推出了官方量化平台,建议食用。

由于项目连接的是通达信客户端明文公开的服务器,是财富趋势科技公司既有的行情软件兼容行情服务器,只是简单整理便于大家学习,严禁用于任何商业用途,更严禁滥用接口,对此造成的任何问题本人概不负责。

又因本项目在持续推进中,接口难免会有大幅改动,带来的不便请予宽宥

应 biner 建议,本项目精简为基础数据接口库,MCP 相关将移动到 tdx_mcp

又因pytdx2库名rainx已经用了,因此本库改名为opentdx,再次致敬rainx。

又又,协议基本完成解析,后期着力于 MCP 和少量组合技接口。


安装

pip install opentdx

命令行

opentdx doc                              # 交互式接口文档(推荐入门)
opentdx mm                               # 实时市场异动监控

A 股行情

opentdx kline SZ 000001                  # K线(默认日线、10条)
opentdx kline SH 600519 --period DAILY --count 50 --adjust QFQ
opentdx kline SZ 000001 --period MIN_30 --count 20

opentdx quote "SZ 000001, SH 600000"     # 批量报价
opentdx index "SH 999999, SZ 399001"     # 指数信息
opentdx stock-list SZ --count 20         # 股票列表
opentdx unusual SZ --count 20            # 异动数据

opentdx transaction SZ 000001 --count 50          # 逐笔成交(实时)
opentdx transaction SZ 000001 --date 2026-03-03   # 历史成交

opentdx tick SZ 000001                   # 分时图
opentdx tick SH 999999 --date 2026-03-16 # 历史分时
opentdx auction SZ 000001                # 竞价数据

扩展市场(港股 / 美股 / 期货)

opentdx g-kline US_STOCK TSLA --period DAILY --count 10
opentdx g-kline HK_MAIN_BOARD 00700
opentdx g-quote "US_STOCK TSLA, HK_MAIN_BOARD 00700"

MAC 协议(板块 / 统一K线 / 主力监控)

opentdx board HY --count 10              # 行业板块
opentdx board GN                          # 概念板块
opentdx board HK_ALL                      # 港股板块
opentdx board US_ALL                      # 美股板块

opentdx board-members 880761 --count 10   # 板块成分股行情
opentdx board-members 881394 --sort VOLUME --count 20

opentdx s-bars SZ 000001 --period DAILY --adjust QFQ   # 统一K线
opentdx s-bars US_STOCK TSLA --period WEEKLY

opentdx s-quotes "SZ 000001, SH 600000"   # 统一报价
opentdx monitor SH --count 10             # 主力监控

所有命令支持 --json 参数输出结构化数据,便于 AI / 脚本消费。


快速上手(Python)

完整接口说明见 TdxClient 使用指南

底层 Client 高级用法见 高级开发指南

from datetime import date
import pandas as pd
from opentdx.tdxClient import TdxClient
from opentdx.const import MARKET, PERIOD, ADJUST, CATEGORY, SORT_TYPE, EX_MARKET

with TdxClient() as client:
    # ── A 股行情 ──
    df = pd.DataFrame(client.stock_kline(MARKET.SZ, '000001', PERIOD.DAILY, count=100))
    quotes = pd.DataFrame(client.stock_quotes(
        [(MARKET.SZ, '000001'), (MARKET.SH, '600000')]
    ))
    index = pd.DataFrame(client.index_info(MARKET.SH, '999999'))

    # 行情列表(排序 + 过滤)
    top = pd.DataFrame(client.stock_quotes_list(
        CATEGORY.A, count=50, sort_type=SORT_TYPE.CHANGE_PCT
    ))

    # ── 分时 / 成交 ──
    ticks = pd.DataFrame(client.stock_tick_chart(MARKET.SZ, '000001'))
    trades = pd.DataFrame(client.stock_transaction(MARKET.SZ, '000001'))
    history = pd.DataFrame(client.stock_tick_chart(
        MARKET.SZ, '000001', date=date(2026, 3, 16)
    ))

    # ── 多日分时 ──
    multi = client.stock_tick_charts(MARKET.SZ, '000001', days=5)

    # ── 板块 ──
    from opentdx.const import BOARD_TYPE, SORT_ORDER
    members = pd.DataFrame(client.stock_board_members(
        "881001", count=200,
        sort_type=SORT_TYPE.CHANGE_PCT, sort_order=SORT_ORDER.DESC,
    ))

    # ── 资金流向 ──
    flow = client.stock_capital_flow(MARKET.SZ, '000001')
    print(flow[['今日主力净流入', '5日主力净流入']])

    # ── 所属板块 ──
    boards = client.stock_belong_board(MARKET.SZ, '000001')

    # ── 主力监控 ──
    monitor = pd.DataFrame(client.stock_market_monitor(MARKET.SZ, count=50))

    # ── F10 / 异动 / 竞价 ──
    f10 = client.stock_f10(MARKET.SZ, '000001')
    unusual = client.stock_unusual(MARKET.SZ)
    auction = pd.DataFrame(client.stock_auction(MARKET.SZ, '300308'))

    # ── 扩展市场 ──
    us_kline = pd.DataFrame(client.goods_kline(
        EX_MARKET.US_STOCK, 'TSLA', PERIOD.DAILY, count=100
    ))
    hk_quotes = pd.DataFrame(client.goods_quotes(
        [(EX_MARKET.HK_MAIN_BOARD, '00700')]
    ))

文档

文档 面向 说明
TdxClient 使用指南 新接触本库的量化开发者 TdxClient 全部接口、使用姿势、批量请求、pandas 配合
高级开发指南 熟悉本库的高级开发者 四个底层 Client 手动管理、协议直调、自定义字段、Transport 层
Parser 协议参考 协议研究者 全部 parser 的命令号、输入输出字段、编码约定

架构

opentdx/
    tdxClient.py          TdxClient — 统一入口(一行代码覆盖所有市场)
    const.py              常量枚举(MARKET / PERIOD / CATEGORY / EX_MARKET …)

    client/
        transport.py          Transport — 网络传输层(连接/收发/心跳/重试)
        baseClient.py         BaseClient — 通用基础设施
        standardClient.py     StandardClient — A 股行情(quotation 协议)
        extendedClient.py     ExtendedClient — 扩展市场(ex_quotation 协议)
        macMixin.py           MacQuotationMixin — MAC 板块/K线/分时/成交方法集
        macStandardClient.py  MacStandardClient — A 股 + MAC
        macExtendedClient.py  MacExtendedClient — 扩展市场 + MAC

    parser/
        quotation/            标准行情协议解析器(~30 个)
        ex_quotation/         扩展行情协议解析器(~15 个)
        mac_quotation/        MAC 协议解析器(~17 个)

    utils/
        bitmap.py             FieldBit / PresetField — 动态字段选择
        help.py               辅助工具
        cache.py              流通股本缓存
  • TdxClient 内部持有 MacStandardClient + MacExtendedClient,一个实例覆盖所有市场
  • MAC 协议方法(板块/K线/分时/资金流向/主力监控)全部可用,无需额外配置
  • 四层 Client 可独立使用,详见 高级开发指南

亮点

  • 统一入口TdxClient 一行代码覆盖 A 股 + 期货 + 港股 + 美股
  • CLI 工具opentdx doc 交互式文档,opentdx mm 实时异动监控
  • MAC 协议:统一 K线/分时/成交/板块接口,A 股港股美股通用
  • 主力监控:市场异动实时推送
  • 板块行情:行业/地区/概念板块成分股行情,支持任意字段排序
  • 资金流向:主力/散户资金流向,日/5 日维度
  • 扩展市场:期货、期权、港股、美股等行情获取
  • 自动分页:大批量数据自动分页请求,无需手动处理
  • 自动选服:自动检测服务器延迟,选择最快的主站
  • 动态字段:MAC 行情支持 FieldBit 按需选择返回字段,减少数据传输

#量化交易 #TDX接口 #Python金融


Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opentdx-0.2.4.tar.gz (98.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opentdx-0.2.4-py3-none-any.whl (120.6 kB view details)

Uploaded Python 3

File details

Details for the file opentdx-0.2.4.tar.gz.

File metadata

  • Download URL: opentdx-0.2.4.tar.gz
  • Upload date:
  • Size: 98.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for opentdx-0.2.4.tar.gz
Algorithm Hash digest
SHA256 71ec3cca98c0549813e65e4350242d26c13bc1c43f23fc476f568bbeda0fef5c
MD5 2ac75e13e1c84ad2e368da37ca89ec6a
BLAKE2b-256 15a70d70b0ce584bcebe9e7b9a43cf66ad58bb210e33530a0a280a1663cf98df

See more details on using hashes here.

File details

Details for the file opentdx-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: opentdx-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 120.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for opentdx-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 57dcc4475f3b72e4c30e0fa5a581bcea1a4f6b00d32a390821ecda45dfcbde47
MD5 5eda255d4a4e1bdb5f3581c648203c88
BLAKE2b-256 40ed8c051f20afa40b09a74b90c0af86d4c290800aaf7cd61728e37add9ac254

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page