第 09 篇
股票数据
股票「元数据」类 API 的清单:单只股票的上市/退市/名称信息(getsecurityinfo)、全市场股票清单(getallsecurities)、判断一段时间内是否 ST(getextras)、融资融券数据(getmtss)。素材见 raw/collections/jq-getting-started/09-41-股票数据md.md。它服务「股票池要排除 ST/刚上市股」这类过滤需求。
这是什么
一张数据 API 速查表,讲四类「关于股票本身」的数据怎么取。前面章节的数据是价格/财务(用于算信号),这里的「股票数据」是证券属性:上市退市时间、名称、类型、是否 ST、融资融券余额——主要用于构建与过滤股票池。
核心要点
- 股票数据包含:上市时间、退市时间、代码、名称、是否 ST 等。
1. 单只股票信息:get_security_info(code)
- 传证券代码,返回一个对象,属性:
display_name:中文名称。name:缩写名称。start_date:上市日期。end_date:退市日期。type:类型,含 stock(股票)、index(指数)、etf、fja / fjb(分级基金 A/B 类)。parent:分级基金的母基金代码。
2. 所有股票信息:get_all_securities(types=['stock'])
- types 默认
['stock'],可传多种类型。 - 返回 pandas.DataFrame,列:display_name(中文名)、name(简称)、start_date(上市)、end_date(退市)、type(类型)。
3. 判断是否 ST:get_extras(info, security_list, start_date, end_date, df=True)
- 参数:
info='is_st';security_list= 股票代码列表;start_date / end_date 起止日期;df控制返回类型。 - 返回:
df=True(默认):pandas.DataFrame,列索引 = 股票代码,行索引 = datetime。df=False:dict,key = 股票代码,value = numpy.ndarray。
- 示例:
get_extras('is_st', security_list, start_date='2015-01-01', end_date='2015-12-31')。 - 用途:判断某段时间哪些股票被 ST——对应 2.0 篇「过滤 ST 股」的落地。
4. 融资融券:get_mtss(security_list, start_date, end_date, fields=None)
- 取一只或多只股票某时间段的融资融券信息。
- fields 可选,默认 None = 全部字段。字段表:
| 字段 | 含义 |
|---|---|
| date | 日期 |
| sec_code | 股票代码 |
| fin_value | 融资余额 |
| fin_buy_value | 融资买入额 |
| fin_refund_value | 融资偿还额 |
| sec_value | 融券余额 |
| sec_sell_value | 融券卖出额 |
| sec_refund_value | 融券偿还额 |
| fin_sec_value | 融资融券余额 |
- 返回 pandas.DataFrame,默认列索引为全部字段。
- 用途:融资融券反映杠杆资金动向,可做资金面/情绪类因子。
机制 / 论证
- 这批 API 与「取价格、取财务」分开成另一族,是因为它们回答的是「某只股票存不存在、能不能碰」这类前置问题:上市/退市时间用来排除上市太短的股票(避免无历史)、is_st 用来排除风险股、type 用来区分股票与基金/指数——正好补上市值轮动 2.0 提到的「过滤停牌/涨停/ST」里的 ST 与上市资格部分。
get_extras的 df 参数是个通用接口设计:同一种查询可按需返回 DataFrame(要行列对齐做分析)或 dict/ndarray(轻量遍历),取决于下游用法。
可操作
- 取单只股票元数据:
info = get_security_info('000001.XSHE'),用info.display_name / start_date / end_date / type。 - 建全市场股票池:
df = get_all_securities(types=['stock']),得到含上市退市日期的 DataFrame,可再按start_date过滤次新股。 - 过滤 ST:
st_df = get_extras('is_st', 股票列表, start_date=..., end_date=...);把某日 is_st 为 True 的股票从候选池剔除。 - 取两融:
df = get_mtss(股票列表, start_date, end_date),字段见上表(默认全字段)。 - 参数要点:types 默认 ['stock'];get_extras 的 info 用 'is_st';日期可用字符串或 datetime。
术语
- display_name / name:中文全名 / 简称。
- start_date / end_date:上市 / 退市日期。
- type:证券类型(stock / index / etf / fja / fjb)。
- parent:分级基金母基金代码。
- is_st:是否特别处理(ST)。
- 融资融券(margin trading):fin = 融资(借钱买股),sec = 融券(借券卖出)。
不确定 / 待验证
- raw 的融资融券字段表有两处疑似笔误:
sec_sell_value注释写「融资卖出额」、sec_refund_value注释写「融资偿还额」——按命名(sec = 融券)与语义应为融券卖出额 / 融券偿还额,已在表内修正,[需要验证] 官方字段定义。 - get_mtss 的参数名 raw 写作
seecurity_list(拼写错误,应为 security_list)。 - get_security_info 的 type 枚举(fja/fjb 等)为 raw 所列,是否含更多类型(如 bond)[需要验证]。
- get_extras 的 info 除 'is_st' 外还能查什么(如停牌、涨跌停历史),raw 未展开。
相关
- 市值轮动策略 2.0 — 过滤 ST/停牌/涨停的需求来源
- 聚宽证券元数据 API(股票信息 / ST / 融资融券) — 本篇 API 的 concept 化
- 股票池(交易对象范围与过滤) — 股票池与过滤
- 聚宽新手入门教程(JoinQuant 平台实操) — 本教程总览
更新 2026-09-06