7709-代码表¶
作用¶
分页或全量查询证券代码表,返回代码、名称、市场、价格精度、昨收,以及本地派生的品种分类和板块分类。
| 项目 | 内容 |
|---|---|
| 主要调用 · 分页 | client.codes.list(market, ...) |
| 主要调用 · 全量 | client.codes.all(market, ...) |
| 旧版兼容 · 分页 | client.get_codes(exchange, ...) |
| 旧版兼容 · 全量 | client.get_codes_all(exchange, refresh=False) |
| 底层接口 | 0x044d |
| 返回模型 | list[SecurityCode] |
示例¶
分页取某个市场:
from eltdx import TdxClient
with TdxClient(timeout=3) as client:
first_page = client.codes.list("sz", start=0, limit=1600)
all_sz = client.codes.all("sz")
all_a_share = client.get_a_share_codes_all()
分别取沪、深、北:
from eltdx import TdxClient
with TdxClient(timeout=3) as client:
sh_codes = client.get_codes_all("sh")
sz_codes = client.get_codes_all("sz")
bj_codes = client.get_codes_all("bj")
按市场 + 品种 / 板块过滤:
from eltdx import TdxClient
with TdxClient(timeout=3) as client:
all_codes = (
client.get_codes_all("sh")
+ client.get_codes_all("sz")
+ client.get_codes_all("bj")
)
sh_a_share = [item for item in all_codes if item.exchange == "sh" and item.category == "a_share"]
sz_a_share = [item for item in all_codes if item.exchange == "sz" and item.category == "a_share"]
bj_a_share = [item for item in all_codes if item.exchange == "bj" and item.category == "a_share"]
sse_main = [item for item in all_codes if item.board == "sse_main_board"]
sse_star = [item for item in all_codes if item.board == "sse_star_market"]
szse_main = [item for item in all_codes if item.board == "szse_main_board"]
szse_chinext = [item for item in all_codes if item.board == "szse_chinext"]
bse_stock = [item for item in all_codes if item.board == "bse_listed_stock"]
etfs = [item for item in all_codes if item.category == "etf"]
indexes = [item for item in all_codes if item.category == "index"]
参数¶
| 参数 | 含义 |
|---|---|
market |
市场,日常推荐传 sz、sh、bj |
start |
分页起始位置,从 0 开始 |
limit |
本页最多取多少条,常用 1600 |
page_size |
codes.all() 内部分页条数,默认 1600 |
refresh |
仅 get_codes_all() 支持;跳过缓存重新拉取 |
市场参数¶
日常调用推荐传字符串,数字主要用于兼容旧代码或理解底层协议。
| 推荐写法 | 含义 | 底层 market_id |
|---|---|---|
sz |
深市 | 0 |
sh |
沪市 | 1 |
bj |
北交所 | 2 |
解析字段¶
SecurityCode 字段 |
含义 |
|---|---|
exchange / market_id |
市场前缀和市场编号 |
code / full_code |
六位代码 / 完整代码 |
name |
证券名称 |
multiple |
交易单位,股票常见为 100 |
decimal |
价格展示小数位 |
previous_close_price |
代码表里的昨收参考价 |
volume_ratio_base |
量比计算基准量 |
unknown0_raw |
量比基准量原始 4 字节 |
previous_close_raw |
昨收价原始 4 字节 |
unknown3_raw |
未拆细附加原始字段 |
category |
本地派生品种分类,如 a_share、b_share、etf、index |
category_reason |
分类规则说明 |
board |
本地派生板块,如主板、创业板、科创板、北交所 |
board_reason |
板块规则说明 |
category 和 board 是 SDK 根据 full_code 的交易所和代码段规则派生出来的字段。服务器原始记录里直接给的是代码、名称、交易单位、小数位、昨收、量比基准量和保留字段。
返回类型¶
| 调用 | 返回 |
|---|---|
client.codes.list("sz") |
list[SecurityCode],某一页代码对象 |
client.codes.all("sz") |
list[SecurityCode],某市场全量代码对象 |
client.get_codes_all("sz") |
list[SecurityCode],某市场全量代码对象,默认缓存 |
client.get_a_share_codes_all() |
list[str],完整 A 股代码字符串 |
client.get_stock_codes_all() |
list[str],A 股 + B 股完整代码字符串 |
client.get_etf_codes_all() |
list[str],ETF 完整代码字符串 |
client.get_index_codes_all() |
list[str],指数完整代码字符串 |
市场取法¶
| 想取什么 | 调用 |
|---|---|
| 深市代码表 | client.get_codes_all("sz") 或 client.codes.all("sz") |
| 沪市代码表 | client.get_codes_all("sh") 或 client.codes.all("sh") |
| 北交所代码表 | client.get_codes_all("bj") 或 client.codes.all("bj") |
| 深市分页 | client.codes.list("sz", start=0, limit=1600) |
| 沪市分页 | client.codes.list("sh", start=0, limit=1600) |
| 北交所分页 | client.codes.list("bj", start=0, limit=1600) |
get_codes_all(market) 默认会缓存全量代码表;如果要强制重拉,用 refresh=True。
分页规则¶
client.codes.all(market) 内部会自动按页循环:
| 步骤 | 说明 |
|---|---|
| 第一页 | start=0 |
| 下一页 | start += page_size |
| 停止条件 | 当前页返回数量 < page_size |
| 默认页大小 | 1600 |
如果只想自己控制分页,用 client.codes.list(market, start=..., limit=...)。
派生分类值¶
category 是本地根据代码前缀派生出来的品种分类。
category |
含义 | 规则 |
|---|---|---|
a_share |
A 股 / 北交所上市股票 | sh600/601/603/605/688/689、sz000/001/002/003/004/300/301、bj92 |
b_share |
B 股 | sh900、sz200 到 sz209 |
etf |
ETF / 场内基金口径 | sh510/511/512/513/515/516/517/518/520/560/561/562/563/588、sz158/159 |
index |
指数 | sh000/880/881/999、sz399、bj899 |
private_convertible_bond |
北交所私募可转债口径 | bj810 |
bond |
北交所债券样本口径 | bj821 |
unknown |
未命中当前内置规则 | 其他前缀 |
当前 SecurityCode.category 覆盖常用大类。LOF、REITs、可转债、回购、优先股等更细分品种,可以继续按代码段扩展;unknown3_raw 保留为原始附加字段。
board 是本地根据 A 股代码前缀派生出来的板块分类。非 A 股通常是 none。
board |
含义 | 规则 |
|---|---|---|
sse_main_board |
上交所主板 | sh600/601/603/605 |
sse_star_market |
科创板 | sh688/689 |
szse_main_board |
深交所主板 | sz000/001/002/003/004 |
szse_chinext |
创业板 | sz300/301 |
bse_listed_stock |
北交所上市股票 | bj92 |
none |
不适用或未命中 | 非 A 股、未知前缀 |
常见过滤写法¶
| 想取什么 | 写法 |
|---|---|
| 全部 A 股 | [item for item in all_codes if item.category == "a_share"] |
| 沪市 A 股 | [item for item in all_codes if item.exchange == "sh" and item.category == "a_share"] |
| 深市 A 股 | [item for item in all_codes if item.exchange == "sz" and item.category == "a_share"] |
| 北交所股票 | [item for item in all_codes if item.board == "bse_listed_stock"] |
| 上交所主板 | [item for item in all_codes if item.board == "sse_main_board"] |
| 科创板 | [item for item in all_codes if item.board == "sse_star_market"] |
| 深交所主板 | [item for item in all_codes if item.board == "szse_main_board"] |
| 创业板 | [item for item in all_codes if item.board == "szse_chinext"] |
| ETF | [item for item in all_codes if item.category == "etf"] |
| 指数 | [item for item in all_codes if item.category == "index"] |
| B 股 | [item for item in all_codes if item.category == "b_share"] |
如果只要完整代码字符串,可以再取 full_code:
便捷过滤¶
| 方法 | 返回 |
|---|---|
get_stock_codes_all() |
A 股 + B 股完整代码列表 |
get_a_share_codes_all() |
A 股完整代码列表 |
get_etf_codes_all() |
ETF 完整代码列表 |
get_index_codes_all() |
指数完整代码列表 |
get_stock_count(market) |
某市场股票数量 |
get_a_share_count(market) |
某市场 A 股数量 |
这些便捷方法覆盖常用大类。主板、创业板、科创板、北交所、B 股等更细分的列表,直接按上面的 board / category 字段过滤即可。