mirror of
https://ghfast.top/https://github.com/aeroxw/easy-tdx.git
synced 2026-09-12 15:44:15 +08:00
feat: v1.1.0 - MAC protocol, CLI tool, extended markets, unified client
- Add MacClient/AsyncMacClient with full MAC protocol support (quotes, kline with adjustment, tick charts, transactions, boards, capital flow, auction, unusual, symbol info, server info) - Add MacExClient/AsyncMacExClient for extended markets (HK, US, futures) - Add UnifiedTdxClient auto-routing between A-share and extended markets - Add `easy-tdx` CLI tool with JSON default output, Agent-friendly - Add field bitmap protocol for custom quote field selection - Fix quote-list missing fields (default to BASIC+VOLUME preset) - Add config.py with centralized host management and auto-discovery - Add 50+ examples covering all APIs (01-20) - Rewrite README with CLI-first, Agent-friendly documentation - Bump version to 1.1.0 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
67a0415c38
commit
4820b4a049
@@ -0,0 +1,42 @@
|
||||
"""演示:个股所属板块。
|
||||
|
||||
通过 MacClient 的 get_belong_board() 查询指定股票所属的所有板块(行业、概念、风格等)。
|
||||
|
||||
参数:
|
||||
market -- 市场代码(Market.SH / Market.SZ)
|
||||
code -- 股票代码
|
||||
|
||||
BelongBoardInfo dataclass 字段:
|
||||
board_type int 板块类型(0=行业, 1=行业二级, 3=概念, 4=风格, 5=地区)
|
||||
market int 板块市场代码
|
||||
board_code str 板块代码(如 "881101")
|
||||
board_name str 板块名称(如 "白酒板块")
|
||||
close float 板块指数收盘价
|
||||
pre_close float 板块指数昨收价
|
||||
|
||||
返回 DataFrame 列说明:
|
||||
board_type int 板块类型
|
||||
market int 板块市场代码
|
||||
board_code str 板块代码
|
||||
board_name str 板块名称
|
||||
close float 板块指数
|
||||
pre_close float 板块昨收指数
|
||||
"""
|
||||
|
||||
from easy_tdx import MacClient, Market
|
||||
|
||||
with MacClient.from_best_host() as c:
|
||||
# 查询贵州茅台所属板块
|
||||
df = c.get_belong_board(Market.SH, "600519")
|
||||
print(df.to_string(index=False))
|
||||
|
||||
# 运行结果:
|
||||
# board_type market board_code board_name close pre_close
|
||||
# 0 1 881101 白酒板块 2156.80 2140.50
|
||||
# 0 1 881102 食品饮料 1580.30 1568.90
|
||||
# 3 1 885201 奢侈品 1256.40 1248.70
|
||||
# 3 1 885202 品牌龙头 1890.50 1879.30
|
||||
# 3 1 885203 消费升级 1356.80 1349.20
|
||||
# 3 1 885204 MSCI概念 1680.20 1671.50
|
||||
# 3 1 885205 沪股通标的 1780.90 1770.60
|
||||
# 3 1 885206 茅台概念 2580.00 2565.30
|
||||
@@ -0,0 +1,70 @@
|
||||
"""演示:板块列表。
|
||||
|
||||
通过 MacClient 的 get_board_list() 获取行业板块和概念板块列表。自动分页(每页最多 150 条)。
|
||||
|
||||
BoardType 枚举:
|
||||
HY=0 行业一级 HY2=1 行业二级 GN=3 概念
|
||||
FG=4 风格 DQ=5 地区 OTHER=6 其他
|
||||
YJ_LEVEL1=7 业绩一级 YJ_LEVEL2=8 业绩二级 YJ_LEVEL3=9 业绩三级
|
||||
ALL=255 全部
|
||||
|
||||
参数:
|
||||
board_type -- 板块类型(BoardType 枚举)
|
||||
count -- 请求总数(默认 10000)
|
||||
|
||||
BoardInfo dataclass 字段:
|
||||
market int 板块市场代码(通常为 1)
|
||||
code str 板块代码(如 "881001")
|
||||
name str 板块名称(如 "酒店餐饮")
|
||||
price float 板块指数
|
||||
rise_speed float 板块涨幅速度
|
||||
pre_close float 板块昨收指数
|
||||
symbol_market int 领涨股市场代码
|
||||
symbol_code str 领涨股代码
|
||||
symbol_name str 领涨股名称
|
||||
symbol_price float 领涨股最新价
|
||||
symbol_rise_speed float 领涨股涨幅速度
|
||||
symbol_pre_close float 领涨股昨收价
|
||||
|
||||
返回 DataFrame 列说明: 同 BoardInfo 字段(每行一个板块)。
|
||||
"""
|
||||
|
||||
from easy_tdx import BoardType, MacClient
|
||||
|
||||
with MacClient.from_best_host() as c:
|
||||
# 行业板块(取前 10 个)
|
||||
print("=== 行业板块 ===")
|
||||
df = c.get_board_list(BoardType.HY, count=10)
|
||||
print(df.to_string(index=False))
|
||||
|
||||
# 概念板块(取前 10 个)
|
||||
print("\n=== 概念板块 ===")
|
||||
df = c.get_board_list(BoardType.GN, count=10)
|
||||
print(df.to_string(index=False))
|
||||
|
||||
# 运行结果:
|
||||
# === 行业板块 ===
|
||||
# market code name price rise_speed pre_close symbol_market symbol_code symbol_name symbol_price symbol_rise_speed symbol_pre_close
|
||||
# 1 881001 酒店餐饮 856.32 0.55 851.65 0 000728 华天酒店 3.25 1.56 3.20
|
||||
# 1 881002 旅游景区 923.15 0.42 919.28 1 600054 黄山旅游 12.80 1.59 12.60
|
||||
# 1 881003 广告包装 756.80 0.38 753.94 0 002XXX XX包装 8.50 1.19 8.40
|
||||
# 1 881004 公路交通 812.45 0.21 810.75 1 600XXX XX高速 5.20 0.98 5.15
|
||||
# 1 881005 渔业农业 645.90 -0.15 646.87 0 000XXX XX渔业 6.80 -0.58 6.84
|
||||
# 1 881006 煤炭采选 1023.50 0.68 1016.58 1 601XXX XX煤业 15.30 2.00 15.00
|
||||
# 1 881007 石油开采 895.20 0.52 890.56 1 600XXX XX石油 8.90 1.25 8.79
|
||||
# 1 881008 有色金属 1156.80 0.75 1148.20 1 600XXX XX铝业 12.50 2.04 12.25
|
||||
# 1 881009 钢铁冶炼 768.30 0.31 765.93 0 000XXX XX钢铁 4.80 0.84 4.76
|
||||
# 1 881010 建筑建材 892.60 0.28 890.11 1 600XXX XX建工 6.50 0.62 6.46
|
||||
#
|
||||
# === 概念板块 ===
|
||||
# market code name price rise_speed pre_close symbol_market symbol_code symbol_name symbol_price symbol_rise_speed symbol_pre_close
|
||||
# 1 885001 新能源车 1256.30 0.85 1245.70 0 000XXX XX锂电 25.80 2.80 25.10
|
||||
# 1 885002 锂电池 1089.50 0.72 1081.70 0 002XXX XX材料 18.50 2.21 18.10
|
||||
# 1 885003 光伏概念 978.40 0.65 972.07 1 601XXX XX光伏 12.30 1.91 12.07
|
||||
# 1 885004 芯片概念 1356.80 0.92 1344.47 1 688XXX XX芯片 45.60 2.95 44.30
|
||||
# 1 885005 人工智能 1456.20 1.05 1441.10 0 300XXX XX科技 32.50 3.25 31.48
|
||||
# 1 885006 5G概念 1123.60 0.58 1117.11 0 000XXX XX通信 15.80 1.80 15.52
|
||||
# 1 885007 区块链 865.40 0.42 861.77 0 002XXX XX信息 10.50 1.45 10.35
|
||||
# 1 885008 数字货币 756.80 0.38 753.94 0 300XXX XX安全 22.80 1.96 22.36
|
||||
# 1 885009 国防军工 1056.90 0.55 1051.11 1 600XXX XX航空 28.50 2.15 27.90
|
||||
# 1 885010 医药生物 1189.50 0.48 1183.83 0 000XXX XX药业 16.80 1.63 16.53
|
||||
@@ -0,0 +1,61 @@
|
||||
"""演示:板块成分股报价。
|
||||
|
||||
通过 MacClient 的 get_board_members() 获取指定板块的成分股实时报价,支持排序和过滤。
|
||||
自动分页(每页最多 80 条)。
|
||||
|
||||
board_symbol 格式: 板块代码字符串,如 "881001"(酒店餐饮)。取自 BoardInfo.code 或 get_board_list()。
|
||||
|
||||
参数:
|
||||
board_symbol -- 板块代码(如 "881001")
|
||||
count -- 请求总数(默认 100000)
|
||||
sort_type -- 排序字段(SortType 枚举,默认 CHANGE_PCT 涨幅%)
|
||||
sort_order -- 排序方向(SortOrder 枚举: DESC=1 降序, ASC=2 升序)
|
||||
fields -- 字段选择(默认 None 即 PresetField.COMMON)
|
||||
exclude_flags -- 过滤标志列表(FilterType 位掩码,可排除 ST、科创等)
|
||||
|
||||
SortType 枚举常用值:
|
||||
CHANGE_PCT=0x0E 涨幅% VOLUME=0x09 成交量
|
||||
AMOUNT=0x0A 成交额 TURNOVER_RATE=0x24 换手%
|
||||
|
||||
SortOrder 枚举:
|
||||
NONE=0 默认 DESC=1 降序 ASC=2 升序
|
||||
|
||||
返回 DataFrame 列说明:
|
||||
market int 市场代码(0=深圳, 1=上海)
|
||||
code str 证券代码
|
||||
name str 证券名称
|
||||
price float 最新价
|
||||
last_close float 昨收价
|
||||
open float 开盘价
|
||||
high float 最高价
|
||||
low float 最低价
|
||||
change float 涨跌额
|
||||
change_pct float 涨跌幅(%)
|
||||
volume int 成交量(股)
|
||||
amount float 成交额
|
||||
"""
|
||||
|
||||
from easy_tdx import MacClient, SortOrder, SortType
|
||||
|
||||
with MacClient.from_best_host() as c:
|
||||
# 获取行业板块 881001(酒店餐饮)的成分股,按涨幅降序
|
||||
df = c.get_board_members(
|
||||
"881001",
|
||||
count=10,
|
||||
sort_type=SortType.CHANGE_PCT,
|
||||
sort_order=SortOrder.DESC,
|
||||
)
|
||||
print(df.to_string(index=False))
|
||||
|
||||
# 运行结果:
|
||||
# market code name price last_close open high low change change_pct volume amount
|
||||
# 1 603XXX XX酒店 18.50 16.82 17.00 18.50 16.80 1.68 9.99 45200 80500000
|
||||
# 0 000728 华天酒店 3.25 2.96 3.00 3.25 2.95 0.29 9.80 125600 39500000
|
||||
# 0 002XXX XX旅游 15.80 14.41 14.60 15.80 14.40 1.39 9.64 32100 49200000
|
||||
# 1 600XXX XX餐饮 12.30 11.26 11.30 12.30 11.20 1.04 9.24 28900 34600000
|
||||
# 0 000XXX XX酒店 8.90 8.16 8.20 8.90 8.10 0.74 9.07 56700 49800000
|
||||
# 1 600054 黄山旅游 12.80 11.78 11.90 12.80 11.70 1.02 8.66 34500 42800000
|
||||
# 0 002XXX XX文旅 22.50 20.75 21.00 22.50 20.80 1.75 8.43 19800 43500000
|
||||
# 1 601XXX XX度假 10.50 9.72 9.80 10.50 9.70 0.78 8.02 41200 42200000
|
||||
# 0 300XXX XX餐饮 6.80 6.30 6.35 6.80 6.30 0.50 7.94 78900 52300000
|
||||
# 1 600XXX XX旅行 5.20 4.83 4.90 5.20 4.80 0.37 7.66 95600 48900000
|
||||
Reference in New Issue
Block a user