数据源探索:获取机构持仓数据的常见途径
做量化分析,第一步就是找数据。机构持仓数据这东西,说难找也不难,说好找吧,坑也不少。我这些年折腾下来,常用的数据源其实就三个:Wind、东方财富、Tushare。今天咱们一个一个捋清楚。
Wind:机构标配,但门槛高
Wind(万得)是国内金融圈的老大哥。几乎所有券商、基金公司都在用。我个人习惯把Wind当作“标准答案”——它的数据质量确实高,字段也全。
但问题也很明显:贵。个人用户基本买不起,一年几万块起步。而且它的API接口是Python的WindPy,用起来有点“老派”。
核心字段:Wind的机构持仓数据,主要看这几个字段——
- 机构名称:比如“易方达基金”、“全国社保基金”
- 持仓市值:该机构持有某只股票的市值(元)
- 持仓比例:占流通A股的比例(%)
- 变动方向:增持、减持、新进、退出
- 报告期:比如2024Q3、2024年报
代码示例(WindPy):
from WindPy import w
w.start()
# 获取贵州茅台2024Q3的机构持仓
data = w.wsd("600519.SH", "inst_hold_ratio", "2024-09-30", "2024-09-30", "")
print(data)
嗯,这里要注意:Wind的字段名是英文缩写,比如inst_hold_ratio就是机构持仓比例。我第一次用的时候,光查字段名就花了半天。
东方财富:免费且好用
如果你没有Wind账号,东方财富的Choice数据是个不错的替代品。它也有Python接口,叫akshare(基于东方财富的数据源)。
我曾经在项目里用东方财富的数据做回测,发现它的更新速度其实不比Wind慢多少。而且免费!这对个人开发者来说太友好了。
小技巧:东方财富的数据字段和Wind略有不同。比如“机构持仓比例”在Wind里叫inst_hold_ratio,在东方财富里可能叫机构持股比例合计。建议先拉一列数据看看,再写代码。
代码示例(akshare):
import akshare as ak
# 获取贵州茅台2024Q3的机构持仓
df = ak.stock_institute_hold_detail(symbol="600519", date="20240930")
print(df.head())
东方财富的数据结构是DataFrame,字段名是中文。我个人觉得中文字段名反而更直观,不用猜缩写。
Tushare:社区活跃,文档清晰
Tushare是另一个我很喜欢的数据源。它的社区非常活跃,文档写得也清楚。而且Tushare的积分制度很有意思——你贡献数据或者写文章,就能换积分,积分够了就能调更多数据。
我记得有一次需要获取“社保基金”的持仓数据,Tushare里直接有个fund_portfolio接口,一调就出来了。省了我不少时间。
避坑指南:Tushare的接口有调用频率限制。我曾经写了个循环,一次性拉了1000只股票的数据,结果直接被封了半小时。建议每次调用之间加个time.sleep(0.5)。
代码示例(Tushare):
import tushare as ts
# 设置token
ts.set_token('你的token')
# 获取贵州茅台2024Q3的机构持仓
pro = ts.pro_api()
df = pro.fund_portfolio(ts_code="600519.SH", report_date="20240930")
print(df.head())
数据字段解析:到底哪些字段有用?
三个数据源的字段大同小异。我整理了一个对照表,方便你切换数据源时参考:
| 字段含义 | Wind | 东方财富 | Tushare |
|---|---|---|---|
| 机构名称 | inst_name | 机构名称 | fund_name |
| 持仓市值 | inst_market_value | 持仓市值 | market_value |
| 持仓比例 | inst_hold_ratio | 占流通股比例 | hold_ratio |
| 变动方向 | inst_change_type | 变动方向 | change_type |
| 报告期 | report_date | 报告期 | report_date |
你想想看,这些字段其实就回答了三个问题:谁在买?买了多少?买还是卖?
说白了,机构持仓分析的核心就是“跟踪聪明钱”。机构比散户更理性,他们的持仓变动往往预示着未来的股价方向。
知识体系:数据源与字段的关系
下面这张图,是我自己梳理的数据源与字段关系。你看一眼就能明白整个框架:
从这张图能看出来,不管用哪个数据源,最终要拿到的字段其实就那五个。我个人建议:如果你在公司,用Wind;如果自己玩,用东方财富或Tushare。别纠结,先跑起来再说。
核心总结:
- Wind:数据最全,但贵。适合机构用户。
- 东方财富:免费,更新快。适合个人开发者。
- Tushare:社区好,文档清。适合学习和小型项目。
- 核心字段:机构名称、持仓市值、持仓比例、变动方向、报告期。
好了,数据源这块就聊到这儿。下一节咱们会深入讲怎么用这些数据计算机构持仓集中度。嗯,到时候见。