什么是 13F 机构持仓报告?
什麼是 13F 報告?简单的说,美国证券交易委员会(United States Securities and Exchange Commission,缩写:SEC),对于控制管理一亿美元资产以上的投资机构,必须在每个季度结束后的45天之内
,向 SEC 提交报告,揭露所有管理的股权资产(股票、ETF)多头部位(不包含期货 & 固定收益等其他资产)
其中当然就包括大家耳熟能详的像是
- 巴菲特的波克夏・海瑟威 Berkshire Hathaway
- 桥水基金 Bridgewater Associates
- 索罗斯基金 Soros Fund
- 比尔及梅琳达盖兹基金会 Bill & Melinda Gates Foundation
- 木头姐的方舟投资 ARK Investment
...etc
如何取得13F机构持仓报告
原始资料
至于如何查询 13F 报告?有几种方法,整理如下:
SEC 官网
可以先进这个连结:https://www.sec.gov/edgar/searchedgar/companysearch.html
以查询 波克夏・海瑟威 为例,就在查询输入「Berkshire Hathaway」
点选「View filings」
找到「13F-HR」
有两种格式,xml 和 html 两种,可自行选择看的比较习惯的格式
以 html 为例,点选后可以看到这个页面,直接连结:https://www.sec.gov/Archives/edgar/data/1067983/000095012322002973/xslForm13F_X01/0000950123-22-002973-9815.xml
捉取资料
这个 blog 当然不会只有教你看到表格,怎么把资料捉回来才重要,在正常的情况下,捉这个表格应该很容易,直接上程式码
import requests
import pandas as pd
url = "https://www.sec.gov/Archives/edgar/data/1067983/000095012322002973/xslForm13F_X01/0000950123-22-002973-9815.xml"
data=pd.read_html(requests.get(url).text)[3]
data.to_csv("c:/data/berkshire_hathaway.csv")
但实际执行后,发现会有错误:ValueError: No tables found
试着先印出
requests.get(url).text
发现是没有表格资料的?怎么解决?我的方法是直接把页面存下来放在自己 local 端的 web server,然后用同样的程式码,把连结改为自己的 web server,就可以取得表格资料,反正要爬的页面不多,这应该是最无脑轻松的方法
整理后的网站
应该还是有不少人看到原始资料会是一头雾水,以工程师的角度来看,取得原始资料存进资料库是最佳解,但对一般投资人可以只想看到别人整理后的资料,以下介绍几个整理后的网站
DATAROMA
同样以查询 波克夏・海瑟威 为例,直接在页面找到 Warren Buffett - Berkshire Hathaway
点选后就有完整资料了,这个网站的缺点是广告多了些,有点碍眼,然后追踪77间投资公司,我们想看的不见的都有,像是 ARK 就找不到
WHALEWISDOM
同样以查询 波克夏・海瑟威 为例,搜寻输入「Berkshire Hathaway」,下拉选项选「13F Files Only」
搜寻后就有完整资料了,这个网站的缺点是进阶功能会需要注册会员
财经M平方
这个应该不需要介绍了,台湾自己的网站,有基本的持股比例和季变化,推荐