
股票市值接口到底有没有免费的路子
很多刚接触量化交易的朋友,第一反应就是去搜“股票市值接口”。搜出来的结果要么是付费的金融终端,要么是各种技术博客里贴的半截代码。我直接说结论:有,而且不少是免费的。但免费的东西往往带着坑,你得知道坑在哪。
股票市值就是股价乘以总股本。总股本这个数据,交易所每天都会公布。股价你随便找个行情软件都能看到。所以理论上,你不需要一个专门的“市值接口”,你只需要两个东西:实时股价接口 + 总股本数据。
交易所官网就是最大的免费接口
上海证券交易所和深圳证券交易所的官网,每天收盘后都会发布股票的成交概况,里面包含总股本和流通股本。这些数据是公开的,你可以用爬虫抓,也可以手动下载。缺点是没有实时性,盘中你想算实时市值,得自己拿最新股价去乘。

举个例子,贵州茅台的总股本是12.56亿股。你从行情接口拿到当前股价是1700元,那一算市值就是2.135万亿。这个计算过程没有任何神秘的地方。
量化框架里藏着的现成函数
如果你用Python写策略,Tushare、AkShare、Baostock这些开源库都提供了市值相关的字段。拿AkShare来说,一行代码就能拉出全市场股票的实时行情,里面直接包含总市值和流通市值。
import akshare as ak
df = ak.stock_zh_a_spot_em()
print(df[['代码', '名称', '最新价', '总市值', '流通市值']].head())
这段代码拉的是东方财富的实时行情。总市值字段是现成的,你不需要自己乘。但要注意,这类免费接口的数据来源是财经网站,盘中会有几秒到几十秒的延迟。做高频交易肯定不行,做日线级别的策略完全够用。
期货的市值概念不一样
股票有市值,期货没有市值这个说法。期货合约的价值是合约乘数乘以当前价格。螺纹钢一手10吨,价格3500元,那一手合约价值就是3.5万元。你保证金交易,实际占用资金可能是3500元。杠杆十倍。
做期货量化的人关心的是持仓限额、保证金比例和合约乘数。这些数据在三大商品交易所的官网都能查到。上期所、大商所、郑商所每天都会发布合约参数表。你写程序的时候,把这些参数硬编码进去,或者写个定时任务每天抓一次。
用市值做策略的几个实战思路
第一个思路是小市值轮动。A股历史上小市值因子长期有效。你每个月末把全市场股票按总市值从低到高排序,买入市值最小的20只,下个月再轮换。这个策略在2017年之前收益惊人,2017年之后因为退市制度和监管趋严,效果打了折扣。但作为一个经典的量化因子,依然值得研究。
第二个思路是市值中性化。你做多因子模型的时候,市值是一个很强的风格因子。如果你不把它剥离掉,你的策略收益可能全是小市值带来的。做法很简单,把每只股票的收益率对市值做回归,取残差作为新的收益率。
第三个思路是期货里的类似逻辑。商品期货没有市值,但有持仓市值或者合约价值。你可以用合约价值来加权,构建一个商品期货的动量组合。合约价值大的品种,权重高一点。
接口调用要注意的坑
免费接口最怕两件事:一是限流,二是数据错。AkShare和Tushare都有调用频率限制。你写个循环一秒钟拉几百次,IP会被封。解决办法是加time.sleep,或者用批量接口一次拉全市场。
数据错的问题更隐蔽。有些接口返回的总市值是错的,比如把流通市值当成总市值,或者单位搞错了。你拿到数据之后,先跟东方财富或者同花顺的页面核对几只票。确认无误再写进策略。
复权问题也绕不开。股票除权除息之后,股价会跳空。你算市值用的是总股本,总股本在送转股之后会变。如果你用前复权价格去乘当前总股本,算出来的市值是错的。正确做法是用未复权价格乘最新总股本。
自己动手写一个市值监控脚本
假设你只想盯着自己持仓的十几只股票,每天盘中算一下实时市值。写个简单的Python脚本就够了。
import akshare as ak
import time
codes = ['600519', '000858', '300750']
while True:
df = ak.stock_zh_a_spot_em()
df = df[df['代码'].isin(codes)]
for _, row in df.iterrows():
print(f"{row['名称']} 总市值: {row['总市值']/1e8:.2f}亿")
time.sleep(60)
这个脚本每分钟跑一次,拉全市场行情然后筛选你的持仓。打印出来的市值单位是亿元。你把它挂在服务器上,随时能看到持仓的市值变化。
付费接口贵在哪
Wind和Choice的接口一年几万到几十万。贵在实时性、历史深度和数据清洗。他们的总股本数据是经过审计的,复权因子算得准,停牌股票的处理也规范。散户做日线策略,免费接口够用。资金上千万,做分钟级交易,再考虑付费。
期货数据更特殊。免费的期货接口能拿到行情,但拿不到逐笔委托和席位数据。你要是做高频或者套利,这些数据是刚需。那只能花钱买。
股票市值接口这件事,核心就一句话:数据本身不稀缺,稀缺的是稳定、准确和低延迟。免费接口能帮你跑通策略逻辑,验证因子有效性。等你真金白银要上实盘了,再根据资金规模和交易频率选择付费数据源。