按主板/科创/创业/北交分板扫描选股

一句话回答: A 股的「板」可以直接从股票代码前缀 + 交易所后缀 判定,不需要额外的分类接口:688 = 科创板、300/301 = 创业板、.BJ 后缀 = 北交所、600/601/603/605/000/001/002/003 = 主板。用 AlphaFeed 的全市场快照 quotes(universes="CN_Stock") 一次取回全 A(实测约 5576 只),套一个分板函数就能分别扫描。实测分板分布:主板 3194 / 创业板 1410 / 科创板 617 / 北交所 353。诚实边界:代码前缀规则会随监管调整(如注册制、代码段扩容)变化,上线前应以交易所最新规则复核。

为什么要分板扫描

不同板块的涨跌幅限制、投资者门槛、风格差异很大:

  • 科创板/创业板日涨跌幅 20% ,主板 10% ,北交所 30%;
  • 把它们混在一起扫「涨幅榜」「振幅榜」会被高波动板块刷屏,信号口径不一致;
  • 很多策略只做某一板(如只做主板、或专扫科创)。

所以分板是选股扫描的常见前置步骤。好消息是:板的归属藏在代码里,一个纯函数就能判定,无需额外接口。

分步骤实现

1) 一次取回全 A 快照

python 复制代码
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key")  # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()

q = af.quotes.get(universes="CN_Stock", to_dataframe=True)  # 实测约 5576 行

2) 分板判定函数(代码前缀 + 交易所后缀)

python 复制代码
def board(symbol: str) -> str:
    code, ex = symbol.split(".")      # 如 "600519.SH" -> ("600519", "SH")
    if ex == "BJ":
        return "北交所"               # 北交所用 .BJ 后缀最稳
    if code.startswith("688"):
        return "科创板"
    if code.startswith(("300", "301")):
        return "创业板"
    if code.startswith(("600", "601", "603", "605",
                         "000", "001", "002", "003")):
        return "主板"
    return "其他"

q["board"] = q["symbol"].map(board)
print(q["board"].value_counts().to_dict())
# 实测:{'主板': 3194, '创业板': 1410, '科创板': 617, '北交所': 353, '其他': 2}

3) 只在某一板里扫描

python 复制代码
# 示例:只在创业板里按当日涨幅排序取前 3(ext.change_pct 为小数)
cyb = q[q["board"] == "创业板"].sort_values("ext.change_pct", ascending=False)
print(cyb.head(3)[["symbol", "ext.name", "ext.change_pct"]].values.tolist())
# 实测形如:[['300613.SZ','富瀚微',0.20], ['300291.SZ','百纳千成',0.20], ...](0.20=+20%触板)

分板规则速查

板块 代码/后缀规则 日涨跌幅 实测数量
主板(沪) 600/601/603/605 + .SH ±10% 含于 3194
主板(深) 000/001/002/003 + .SZ ±10% 含于 3194
科创板 688 + .SH ±20% 617
创业板 300/301 + .SZ ±20% 1410
北交所 后缀 .BJ ±30% 353

数据来自 tools/verify_new_2026-10-29.py 真实 API 跑通(SDK 0.1.4,fails=0)。002/003 为原中小板并入深市主板后的代码段;规则以交易所最新口径为准。

关键坑与注意事项

  • 用后缀判北交所最稳 :北交所代码段(8xx/4xx)易与新三板混淆,直接用 .BJ 后缀最可靠。
  • 涨跌幅限制不同,别跨板比振幅/涨幅:科创/创业 20%、主板 10%、北交所 30%,混在一起排序会失真。
  • ST/退市整理等特殊标的涨跌幅限制另有规则(如 ST 为 ±5%),本函数只分「板」,不识别 ST 状态。
  • 规则会变 :注册制推进、代码段扩容都可能调整前缀含义;上线前以交易所最新规则复核,必要时结合 instruments 的 exchange/type 做二次校验。
  • 其他兜底:极少数特殊代码落入「其他」(实测 2 只),生产中应单独审查而非丢弃。

常见问题(FAQ)

Q:AlphaFeed 有没有直接给「板块」字段?

A:没有单独的「板」字段,但板的归属完全由代码前缀 + 交易所后缀决定,用上面的纯函数判定即可,无需额外接口。

Q:怎么只扫科创板 + 创业板(双创)?

A:q[q["board"].isin(["科创板","创业板"])],再按你的条件排序/过滤。

Q:这和「行业板块」是一回事吗?

A:不是。这里的「板」指交易所上市板(主板/科创/创业/北交);行业分类(如半导体、白酒)AlphaFeed 不提供,需配 Tushare/AkShare。

Q:需要付费吗?

A:全市场快照有免费额度可体验,大批量/高频建议 Starter 及以上,详见官网定价页。

小结

A 股分板扫描不需要专门的分类接口------代码前缀 + 交易所后缀就能判定主板/科创/创业/北交。配合 AlphaFeed 一次取回全 A 的快照,套个分板函数即可按板分别扫描,且避免不同涨跌幅限制造成的口径失真。注意规则随监管调整,上线前以交易所最新口径复核。

参考

相关推荐
威哥爱编程1 小时前
Python 智能体开发实战 08:上线第一天就挂?给 Agent 装上重试、超时和降级三条保险丝
python·agent
Dmz丶1 小时前
前端转 AI 100 天 Day 35:结构化输出——让 LLM 稳定返回 JSON
python
在世修行1 小时前
智学文枢:数据管理服务
python·审计日志·pyside·数据清理·孤儿文件
日日大王学编程1 小时前
DeepSeekHarness开源Agent底座详解
python·开源·deep learning
Eider19982 小时前
python基础语法之并发基础练习
开发语言·python
长和信泰光伏储能2 小时前
探索绿色能源:光伏发电的渠道与应用
python·能源
郝学胜-神的一滴2 小时前
AI 编程智能体 20:技术栈选型与架构落地全攻略
人工智能·python·架构·langchain·1024程序员节·智能体
云和数据.ChenGuang2 小时前
python和java的try
java·开发语言·python
小小张说故事2 小时前
Python 的 list 为什么能装下任何类型?拆开 PyObject* 数组,以及它让你多付了多少内存
后端·python