Skip to main content

通达信行情协议 Python 库,支持快照、分时、逐笔、K 线、集合竞价和历史 09:25 竞价接口

Project description

eltdx

通达信行情协议的 Python 库

安装后就能直接调快照、分时、逐笔、K 线、集合竞价、历史 09:25 竞价结果等接口,返回结果统一、字段清楚,也支持查看原始十六进制数据。主要用于个人行情研究,请勿用于任何商业或违法用途。

PyPI Python 3.10+ CI License

简单介绍

eltdx 优点:

  • 一个统一入口:TdxClient
  • 让常用接口直接就能调:get_quote()get_minute()get_trades()get_kline()get_auction_0925()
  • 返回结果尽量好懂:统一 dataclass,不直接丢一堆裸 dict
  • 时间字段给 Python 原生 date / datetime
  • 价格字段同时保留浮点值和 *_milli 整数值
  • 需要排查问题时,可以打开 include_raw=True 看原始十六进制

当前版本重点覆盖:

  • 行情快照
  • 分时
  • 逐笔
  • K 线
  • 集合竞价
  • 历史 09:25 竞价结果
  • 公司行为 / 股本变化 / 复权因子
  • 一些常用 helper

安装

推荐的安装方式:

python -m pip install eltdx

升级:

python -m pip install -U eltdx

如果你是拉源码自己调:

pip install -e .

环境要求:

  • Python >=3.10

快速开始

最简单的用法:

from eltdx import TdxClient

with TdxClient() as client:
    quotes = client.get_quote(["sz000001", "sh600000"])
    for quote in quotes:
        print(quote.code, quote.last_price, quote.last_close_price, quote.server_time)

如果你想看原始协议数据:

from eltdx import TdxClient

with TdxClient() as client:
    minute = client.get_minute("sz000001", include_raw=True)
    print(minute.raw_frame_hex)
    print(minute.raw_payload_hex)

如果你只想快速拿某个交易日 09:25 那一笔:

from eltdx import TdxClient

with TdxClient() as client:
    row = client.get_auction_0925("000001", "2026-04-09")
    print(row.code, row.trading_date, row.has_auction_0925)
    print(row.price, row.volume, row.amount)

如果你想自己指定服务器地址:

from eltdx import TdxClient

with TdxClient(
    hosts=["124.71.187.122:7709", "122.51.120.217:7709"],
    pool_size=2,
    batch_size=80,
) as client:
    quote = client.get_quote("sz000001")[0]
    print(quote.last_price)

常用功能

先连上,再取数据

  • connect():主动建立连接
  • close():关闭连接
  • with TdxClient() as client::适合一次性脚本,跑完自动关

最常会用到的接口

  • get_quote():拿快照行情
  • get_minute() / get_history_minute():拿分时
  • get_trades() / get_trades_all():拿逐笔
  • get_auction_0925():快速拿历史 09:25 那一笔
  • get_kline() / get_kline_all():拿 K 线
  • get_call_auction():拿集合竞价
  • get_gbbq() / get_xdxr() / get_equity() / get_factors():拿公司行为、股本和复权相关数据

用起来比较省心的地方

  • with 可用可不用;短任务推荐用,长连接也可以手动控制
  • get_quote() 自带自动分批,不用你自己切列表
  • 默认支持多连接分发,批量取快照会更稳一些
  • 返回字段统一,做展示、落库、计算都比较顺手
  • get_auction_0925() 只扫历史逐笔里的目标记录,批量导出比全量逐笔更省

注意

get_count(exchange) 不是股票总数

它是“这个市场的代码表条目数”,不是“这个市场一共有多少只股票”。

如果你更想拿到股票口径的数量,可以试试:

  • get_stock_count(exchange)
  • get_a_share_count(exchange)

get_codes() / get_codes_all() 不只是股票列表

这里面会混有股票、指数、板块分类项、ETF、基金、债券回购等条目。

如果你想直接拿一组更实用的代码去拉行情,可以试试:

  • get_stock_codes_all()
  • get_a_share_codes_all()
  • get_etf_codes_all()
  • get_index_codes_all()

with 不是强制的

  • 你只是临时拉一把数据:用 with
  • 你要一直保持连接:手动 connect() / close() 也可以

hosthosts 都可以传

  • host=:只测一个地址时比较方便
  • hosts=:传多个地址,交给客户端自己处理
  • 不传时会回退到库内默认地址列表

文档指北

如果你是第一次用,建议按这个顺序看:

FAQ

如果我只拉一次数据,推荐怎么写?

直接用:

with TdxClient() as client:
    ...

这样最省心,代码块结束后会自动关连接。

如果我要做长连接实时场景呢?

那就自己控制连接生命周期:

client = TdxClient()
client.connect()
try:
    ...
finally:
    client.close()

为什么 get_count("sh") 看起来特别大?

因为它不是股票总数,而是代码表条目数。

为什么 get_codes() 里看起来不全是股票?

因为它本来就不只是股票,还会带上指数、ETF、板块分类项等条目。

我只想拿 A 股代码,应该用哪个?

优先用:

  • get_a_share_codes_all()

如果你希望把 B 股也一起算进去,再试:

  • get_stock_codes_all()

项目参考

联系方式

许可证

MIT

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

eltdx-0.4.1.tar.gz (85.7 kB view details)

Uploaded Source

Built Distribution

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

eltdx-0.4.1-py3-none-any.whl (40.0 kB view details)

Uploaded Python 3

File details

Details for the file eltdx-0.4.1.tar.gz.

File metadata

  • Download URL: eltdx-0.4.1.tar.gz
  • Upload date:
  • Size: 85.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eltdx-0.4.1.tar.gz
Algorithm Hash digest
SHA256 f26c4c26ce07559d51c1ed4d671fb76f2bb30d4f023c487bd7d8e39540eea900
MD5 eba75d2c30337dfe1ac0c5955c9e6263
BLAKE2b-256 0c995926022e98cdb1aa6e64d557aad0862be2686c533d7f95e3da4880bcde28

See more details on using hashes here.

Provenance

The following attestation bundles were made for eltdx-0.4.1.tar.gz:

Publisher: publish.yml on electkismet/eltdx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eltdx-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: eltdx-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 40.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eltdx-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 99af8f12e630e416deeec22ceda50093f3e812bdfe6b00a3d60034ceaf04e342
MD5 60c096ab85b84baac379578c809e5c90
BLAKE2b-256 e3e8a221393c27e00125b48bd9d8f8dee30bc42d91cdf9ce76b59ad45d90ae37

See more details on using hashes here.

Provenance

The following attestation bundles were made for eltdx-0.4.1-py3-none-any.whl:

Publisher: publish.yml on electkismet/eltdx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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