mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 16:54:20 +08:00
替代年久失修的 pytdx,修复已知 bug,保留未解字段供逆向分析。 主要内容: - codec 层:get_price 变长编码、get_volume 自定义浮点、datetime/frame 解析 - transport 层:同步(socket)+ 异步(asyncio)双实现,共用命令层 - 命令层(11 条):security_count/list/quotes/bars、minute_time(今日+历史)、 transaction(当日+历史)、xdxr_info、finance_info、company_info - 高层 API:TdxClient + AsyncTdxClient - 单元测试 26 条,全部通过;真实服务器集成测试覆盖全部命令 修复 pytdx Bug #1–5:xdxr 循环读取错误位置、GBK 截断崩溃、 pre_close 误用 get_volume、逐笔/分时未解字段被丢弃 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
"""xmtdx — 通达信 TCP 协议 A 股行情数据客户端。
|
|
|
|
快速开始::
|
|
|
|
from xmtdx import TdxClient, Market, KlineCategory
|
|
|
|
with TdxClient("180.153.18.170") as c:
|
|
count = c.get_security_count(Market.SH)
|
|
bars = c.get_security_bars(Market.SH, "600000", KlineCategory.DAY, 0, 5)
|
|
|
|
asyncio 版本::
|
|
|
|
import asyncio
|
|
from xmtdx import AsyncTdxClient, Market, KlineCategory
|
|
|
|
async def main():
|
|
async with AsyncTdxClient("180.153.18.170") as c:
|
|
bars = await c.get_security_bars(Market.SH, "600000", KlineCategory.DAY, 0, 5)
|
|
|
|
asyncio.run(main())
|
|
"""
|
|
|
|
from .client import AsyncTdxClient, TdxClient
|
|
from .exceptions import TdxCommandError, TdxConnectionError, TdxDecodeError, TdxError
|
|
from .models import (
|
|
XDXR_CATEGORY_NAMES,
|
|
CompanyInfoCategory,
|
|
FinanceInfo,
|
|
KlineCategory,
|
|
Market,
|
|
MinuteBar,
|
|
SecurityBar,
|
|
SecurityInfo,
|
|
SecurityQuote,
|
|
TransactionRecord,
|
|
XdxrRecord,
|
|
)
|
|
|
|
__all__ = [
|
|
# 客户端
|
|
"TdxClient",
|
|
"AsyncTdxClient",
|
|
# 枚举
|
|
"Market",
|
|
"KlineCategory",
|
|
# 数据模型
|
|
"SecurityBar",
|
|
"SecurityQuote",
|
|
"SecurityInfo",
|
|
"MinuteBar",
|
|
"TransactionRecord",
|
|
"XdxrRecord",
|
|
"XDXR_CATEGORY_NAMES",
|
|
"FinanceInfo",
|
|
"CompanyInfoCategory",
|
|
# 异常
|
|
"TdxError",
|
|
"TdxConnectionError",
|
|
"TdxDecodeError",
|
|
"TdxCommandError",
|
|
]
|
|
|
|
__version__ = "0.1.0"
|