数据源探索:获取机构持仓数据的常见途径

做量化分析,第一步就是找数据。机构持仓数据这东西,说难找也不难,说好找吧,坑也不少。我这些年折腾下来,常用的数据源其实就三个: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。别纠结,先跑起来再说。

核心总结

  • Wind:数据最全,但贵。适合机构用户。
  • 东方财富:免费,更新快。适合个人开发者。
  • Tushare:社区好,文档清。适合学习和小型项目。
  • 核心字段:机构名称、持仓市值、持仓比例、变动方向、报告期。

好了,数据源这块就聊到这儿。下一节咱们会深入讲怎么用这些数据计算机构持仓集中度。嗯,到时候见。


蓝海数据掘金营,专注资料整理