如何用 Python 按市值 / 流通市值筛选股票?(小市值策略数据准备) 一句话回答市值 最新价 × 总股本流通市值 最新价 × 流通股本。AlphaFeed 的标的元数据接口直接提供total_shares总股本和float_shares流通股本配合实时行情的last_price几行 Python 就能给全市场算市值、做分层和小市值选股。为什么市值这么关键市值是最重要的横截面因子之一小市值效应是 A 股经典也高波动、高风险的现象很多策略需要按市值分层大/中/小盘分别对待剔除超大盘或超小盘、控制组合的市值暴露都要先算出市值。问题是很多免费数据源只给行情不给股本或者股本字段口径混乱、需要东拼西凑。而市值必须用实时价 × 股本动态计算——昨天的市值不等于今天的。第一步拿到股本数据标的元数据af.instruments返回的ext里含总股本、流通股本、上市日期、涨跌停价等实测字段fromalphafeedimportAlphaFeed afAlphaFeed()# 读取 ALPHAFEED_API_KEYinstaf.instruments.get(600519.SH)extinst[ext]print(ext[total_shares],ext[float_shares],ext[listing_date])# 1250081601.0 1250081601.0 2001-08-27ext里可用于市值/报价的关键字段字段含义total_shares总股本股float_shares流通股本股tick_size最小变动价位limit_up/limit_down今日涨/跌停价listing_date上市日期第二步全市场算市值思路全 A 快照拿last_price批量元数据拿股本按symbol合并后相乘。importpandasaspd# 1. 全 A 实时价qaf.quotes.get(universesCN_Stock,to_dataframeTrue)[[symbol,last_price,ext.name]]# 2. 批量股本SDK 自动分批默认每批 200instsaf.instruments.batch(q[symbol].tolist(),show_progressTrue)sharespd.DataFrame([{symbol:i[symbol],total_shares:i.get(ext,{}).get(total_shares),float_shares:i.get(ext,{}).get(float_shares)}foriininsts])# 3. 合并并计算市值单位亿元mq.merge(shares,onsymbol,howinner).dropna(subset[total_shares])m[total_mktcap]m[last_price]*m[total_shares]/1e8m[float_mktcap]m[last_price]*m[float_shares]/1e8print(m[[symbol,ext.name,last_price,total_mktcap,float_mktcap]].head())第三步市值分层按流通市值分成大/中/小盘deftier(cap):ifcap1000:# ≥ 1000 亿return大盘ifcap100:# 100~1000 亿return中盘return小盘# 100 亿m[tier]m[float_mktcap].apply(tier)print(m[tier].value_counts())第四步小市值选股含必要过滤小市值策略最忌“踩雷”务必叠加流动性、剔除 ST 与次新股等过滤# 结合成交额需在 quotes 里保留 amount 字段q2af.quotes.get(universesCN_Stock,to_dataframeTrue)q2q2.merge(shares,onsymbol,howinner).dropna(subset[float_shares])q2[float_mktcap]q2[last_price]*q2[float_shares]/1e8smallq2[(q2[float_mktcap]20)# 流通市值 ≥ 20 亿避免过度微盘(q2[float_mktcap]50)# ≤ 50 亿聚焦小盘(q2[amount]1e8)# 流动性(~q2[ext.name].str.contains(ST,naFalse))# 剔除 ST].sort_values(float_mktcap)print(f小市值候选:{len(small)}只)print(small[[symbol,ext.name,last_price,float_mktcap,amount]].head(20))剔除次新股可结合listing_date上市不足 N 天的排除。第五步等权构建小市值组合topNsmall.head(20).copy()topN[weight]1/len(topN)print(topN[[symbol,ext.name,float_mktcap,weight]].to_string(indexFalse))定期如每月重新扫描、再平衡就是一个最朴素的小市值轮动框架。回测时记得用前复权 K 线并考虑停牌、涨停无法买入等约束。和其他数据源比能力免费聚合库TushareAlphaFeed总股本/流通股本字段零散、口径不一daily_basic 等接口(需积分)instruments.ext直接给实时价算动态市值实时性弱实时有限快照last_price全市场批量易被封频次受限instruments.batch自动分批常见问题FAQQtotal_shares单位是什么A股。总市值 last_price × total_shares除以1e8得“亿元”。Q总市值和流通市值用哪个选股A小市值/流动性相关一般看流通市值float_shares衡量公司整体规模看总市值。Q市值会变多久算一次A市值随价格实时变化选股时用当日快照现算即可不要缓存历史市值当今天用。Q需要付费吗A全市场universes查询与大批量instruments需 Starter 及以上少量标的可用免费额度。小结“按市值选股”的前提是能稳定拿到股本 实时价。AlphaFeed 把总股本、流通股本放进标的元数据配合全市场快照市值计算、分层、小市值选股都变成几行 pandas。参考AlphaFeed Python SDK 文档https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart

相关新闻

最新新闻

不刷题不背八股:Ultralytics深圳招聘背后,如何真正用会YOLO实战技术栈

不刷题不背八股:Ultralytics深圳招聘背后,如何真正用会YOLO实战技术栈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 4:11:04
电源焦虑破解:看懂额定功率、+12V与6pin接口定义

电源焦虑破解:看懂额定功率、+12V与6pin接口定义

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 4:11:04
0.8B小模型微调实战:低成本打造垂直领域AI专家

0.8B小模型微调实战:低成本打造垂直领域AI专家

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 4:11:04
训练赛当比赛打:解决慢热与根据对手换阵容的实战指南

训练赛当比赛打:解决慢热与根据对手换阵容的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 4:11:04
基于ARM的数字集成电路测试系统设计:从选型到排错

基于ARM的数字集成电路测试系统设计:从选型到排错

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 4:11:04
用PyTorch从零构建中文GPT:从Transformer到语音交互实践

用PyTorch从零构建中文GPT:从Transformer到语音交互实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/6 4:06:04