如何用 FMP 追踪华尔街聪明钱:13F 机构持仓、内部人交易与国会山议员买卖接口实战

在美股量化投研中,除了常规财报与日线量价,最具超额收益(Alpha)潜力的另类数据就是“聪明钱(Smart Money)”的真实仓位变动。受美国 SEC 与《停止利用国会知识交易法案》(STOCK Act)强制约束,华尔街三类核心资金必须定期亮出底牌:

  1. 大型资管机构(SEC Form 13F):管理美股资产 ≥ 1 亿美元的机构(如伯克希尔、桥水),季末结束后 45 天内必须披露多头持仓明细。
  2. 上市公司高管与大股东(SEC Form 4 / 13D / 13G):CEO、CFO、董事及持股 > 10% 内部人,发生交易后 2 个工作日内必须上报。
  3. 美国国会参众两院议员及配偶(STOCK Act PTR 报告):必须在单笔交易发生后 30~45 天内披露买卖标的与金额区间。

本文将基于 FMP数据源中文站 的三类聪明钱接口与 2026 年 10 月最新实测数据,直接拆解伯克希尔(CIK: 0001067983)、英伟达(NVDA)、苹果(AAPL)与佩洛西(Nancy Pelosi)的真实持仓与交易报文,并给出对齐披露时滞、过滤高管期权行权噪音、折算议员金额区间的核心清洗代码。

延伸阅读:初次接触 FMP 可先看《FMP 是什么?数据范围、接口体系、价格限制与中文接入指南》;财报三表勾稽与日线实测见《FMP 数据 API 深度测评》;若需盘口逐笔(Tick)或期权链对比,参见《FMP vs Massive(原 Polygon.io)深度对比》。


华尔街三类“聪明钱”数据源(13F、Form 4、国会山披露)在时效与颗粒度上有什么本质区别?

许多量化新手直接把 date(报告期末)或 transactionDate(交易发生日)当成信号触发日回测,导致严重的未来函数(Look-ahead Bias)。接入前必须先对齐三类数据的物理边界:

对比维度机构持仓(SEC Form 13F)内部人交易(SEC Form 4)国会山议员交易(Senate & House)
法定披露滞后(Lag)季度结束后 45 个自然日内(多卡在最后一天提交)交易发生后 2 个工作日内(时效性最高)交易发生后 30~45 个自然日内(偶有超 100 天逾期补报)
FMP 分类入口13F 机构持仓(8 个接口)内部人交易(6 个接口)参众两院交易披露(12 个接口)
核心接口路径/stable/institutional-ownership/extract<br>/stable/institutional-ownership/symbol-positions-summary/stable/insider-trading/search<br>/stable/insider-trading/statistics/stable/house-trades<br>/stable/senate-trades<br>/stable/house-trades-by-name
数量与金额精度精确到 1 股与 1 美元(shares 与 value)精确到 1 股与成交均价(securitiesTransacted 与 price)仅披露金额区间字符串(如 "$1,001 - $15,000")
多空与资产覆盖仅美股多头正股及期权(putCallShare),不含融券做空含二级市场买卖(P/S)、行权(M)、授股(A)等 15 类含正股(Stock)、期权(Stock Option)、私募(Other Securities)
回测避坑锚点必须以 acceptedDate / filingDate 为信号日,禁用季末 date必须过滤 price = 0 的授股/行权/赠与,只取真金白银买卖必须用 disclosureDate 触发信号,并将金额区间折算为中值

如何用 FMP 13F 接口还原伯克希尔(CIK 0001067983)的真实仓位与全市场机构建仓动向?

在 13F 机构持仓分类 下,实战最常用两条路径:按机构 CIK 查持仓明细,以及按股票代码查全市场机构筹码汇总。

1. 按机构 CIK 调取伯克希尔 2026Q2 持仓明细

先调 机构持仓披露日期(/stable/institutional-ownership/dates)确认最新已披露财季,再调 机构持仓明细提取 与 机构业绩表现汇总。

工程必填项:cik 参数必须传入 10 位带前导零的 SEC CIK 字符串(伯克希尔为 0001067983,传入 1067983 会漏数据,代码中统一用 str(cik).zfill(10))。

// GET /stable/institutional-ownership/extract?cik=0001067983&year=2026&quarter=2 (节选头号重仓股 AAPL,取数时间 2026-10-22)
[
  {
    "date": "2026-06-30",
    "filingDate": "2026-08-14",
    "acceptedDate": "2026-08-14",
    "cik": "0001067983",
    "securityCusip": "037833100",
    "symbol": "AAPL",
    "nameOfIssuer": "APPLE INC",
    "shares": 227917808,
    "value": 65950296923,
    "finalLink": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/56757.xml"
  }
]

结合 机构业绩表现汇总 实测返回,伯克希尔 2026Q2 共持有 29 只标的,13F 总市值 2,992.54 亿美元(环比 +13.74%),季度换手率仅 6.9%。前 8 大重仓股即占组合总市值的 81.52%:

排名股票代码 (symbol)发行人 (nameOfIssuer)2026Q2 持股数 (shares)期末市值 (value, USD)占 13F 总市值比例实际披露日 (filingDate)
1AAPLAPPLE INC227,917,808$65,950,296,92322.04%2026-08-14
2AXPAMERICAN EXPRESS CO151,610,700$51,282,319,27517.14%2026-08-14
3KOCOCA COLA CO400,000,000$32,508,000,00010.86%2026-08-14
4GOOGLALPHABET INC78,791,167$28,157,599,3519.41%2026-08-14
5BACBANK OF AMER CORP483,394,015$27,543,790,9759.20%2026-08-14
6CVXCHEVRON CORPORATION84,375,856$13,986,141,8904.67%2026-08-14
7OXYOCCIDENTAL PETE CORP264,941,431$12,868,205,3044.30%2026-08-14
8CBCHUBB LIMITED34,249,183$11,670,066,6153.90%2026-08-14
合计(前 8 / 全 29 只)———$243.97B / $299.25B81.52% / 100%滞后 45 天

2. 反向按股票代码统计全市场 6,400+ 家机构筹码集中度

若想监控全市场 13F 机构在单只标的上的吸筹与派发,直接调用 标的机构持仓汇总(/stable/institutional-ownership/symbol-positions-summary?symbol=NVDA&year=2026&quarter=2):


为什么内部人交易(Form 4)不能直接按买卖方向汇总?如何过滤高管期权行权与 RSU 授股噪音?

内部人交易分类 下的 Form 4 数据是 T+2 工作日级别的高频信号。但实测 内部人交易搜索 与 内部人交易统计 会发现:绝不能直接按 acquisitionOrDisposition(A 获得 / D 处置)做加总。

1. 实测案例:苹果会计长行权扣税与英伟达高管 0 元授股/赠与

// GET /stable/insider-trading/search?symbol=AAPL&page=0&limit=3 (2026-10-19 披露)
[
  {
    "symbol": "AAPL",
    "filingDate": "2026-10-19",
    "transactionDate": "2026-10-15",
    "reportingName": "Borders Ben",
    "typeOfOwner": "officer: Principal Accounting Officer",
    "transactionType": "M-Exempt",
    "acquisitionOrDisposition": "A",
    "securitiesTransacted": 1714,
    "price": 0
  },
  {
    "symbol": "AAPL",
    "filingDate": "2026-10-19",
    "transactionDate": "2026-10-15",
    "reportingName": "Borders Ben",
    "transactionType": "F-InKind",
    "acquisitionOrDisposition": "D",
    "securitiesTransacted": 883,
    "price": 342
  }
]

看上面 AAPL 首席会计官 Borders Ben 与同期 NVDA 的实测记录,不看 transactionType 会踩三个大坑:

  1. 把行权/授股当“增持”:Borders Ben 在 2026-10-15 交易(10-19 披露)获得的 1,714 股是 "M-Exempt"(RSU/期权行权转换,price: 0);NVDA 高管 Parker Nicholas P. 在 2026-09-09 交易(10-13 披露)获得的 160,418 股是 "A-Award"(股权激励授予,price: 0),均非二级市场掏钱买股。
  2. 把抵税/赠与当“砸盘”:Borders Ben 同日处置的 883 股是 "F-InKind"(公司自动扣股抵缴个税);NVDA 董事 COXE TENCH 在 2026-10-07 交易(10-09 披露)处置的 500,000 股是 "G-Gift"(0 元赠与)。
  3. 统计接口字段陷阱:调 内部人交易统计(/stable/insider-trading/statistics?symbol=NVDA)可见,2026Q3 NVDA 的 acquiredTransactions 为 3 笔(174,917 股),但 totalPurchases 为 0;2026Q4 disposedTransactions 为 1 笔(500,000 股),但 totalSales 也为 0。因为只有 totalPurchases / totalSales 才严格对应二级市场真金白银的公开买卖(P-Purchase / S-Sale)。

2. Form 4 交易类型(transactionType)量化清洗规则

通过 内部人交易类型字典(/stable/insider-trading-transaction-type)拉取 FMP 收录的全部 15 类代码后(SEC 原始完整代码表约 20 种,FMP 未收录极少见的 W/X 等),实战只需按以下规则过滤:

transactionTypeSEC 含义成交价 (price)信号定性与清洗规则
P-Purchase二级市场公开买入真实市价 (> 0)极强看多(高管真金白银买入),全额保留
S-Sale二级市场公开卖出真实市价 (> 0)偏空;若同一高管前后 2 天内有 M-Exempt(如 Borders Ben 次日分 4 笔卖出共 1,240 股),属行权变现,权重折半;若无行权伴随(如 NVDA 董事 STEVENS MARK A 在 2026-09-18 纯卖出 135.6 万股套现 2.98 亿美元),记为强减持
A-Award / M-Exempt股权激励授予 / 期权行权0 或行权价薪酬发放与存量转股,直接剔除
F-InKind / G-Gift以股抵税 / 股权赠与市价或 0法定扣税与家族/慈善赠与,直接剔除

国会山参众两院议员买卖(Senate & House)接口只有金额区间,量化回测该如何折算并规避披露滞后?

FMP 在 参众两院交易披露分类 下提供了 12 个接口。我们调用 众议院议员交易按姓名查询(/stable/house-trades-by-name?name=Pelosi)与 参议院议员交易按标的查询(/stable/senate-trades?symbol=NVDA),实测佩洛西(senateID: "P000197")报文如下:

// GET /stable/house-trades-by-name?name=Pelosi (节选,取数时间 2026-10-22)
[
  {
    "symbol": "BE",
    "senateID": "P000197",
    "disclosureDate": "2026-08-24",
    "transactionDate": "2026-07-24",
    "firstName": "Nancy",
    "lastName": "Pelosi",
    "owner": "Spouse",
    "assetDescription": "Bloom Energy Corporation Class A Common Stock",
    "assetType": "Stock Option",
    "type": "Purchase",
    "amount": "$1,000,001 - $5,000,000"
  }
]

结合参众两院实测数据,代码中必须执行四条清洗规则:

  1. 金额区间(amount)取算术中值:议员只勾选区间(如 "$1,001 - $15,000"、"$1,000,001 - $5,000,000"),用正则提取上下界后按 (low + high) / 2 折算估算金额(如后者折算为 300 万美元)。
  2. 统一参众两院 type 枚举:参众两院的 type 字段均同时存在 "Purchase"、"Sale"、"Sale (Partial)"(如参议员 Sheldon Whitehouse 减持 NVDA)与 "Sale (Full)"(如参议员 Cory Booker 清仓 NVDA)四种枚举值,判断卖出方向切忌用 type == "Sale" 硬匹配,必须统一用前缀判断 type.startswith("Sale")。
  3. 剔除无代码私募(symbol == ""):佩洛西 2026-10-02 披露买入的 "REOF XXX, LLC" 为非上市私募(assetType: "Other Securities",symbol: ""),需过滤掉空 symbol。
  4. 拦截超 45 天逾期补报单:实测 NVDA 参议院记录发现,参议员 Alan Armstrong 在 2026-03-27 买入 $50,001 - $100,000 的 NVDA,直到 2026-07-21 才披露(滞后 116 天)。跟单策略必须剔除 disclosureDate - transactionDate > 45 天 的陈旧记录,且严格以 disclosureDate 作为交易触发日。

洗干净数据之后怎么用?三路聪明钱接口的三大高阶投研与量化策略应用

只看单一维度的持仓或买卖记录,在实盘中极易掉入“季报滞后接盘”或“单笔交易噪音”陷阱。真正成熟的量化投研体系,会将上述三类接口与行情、财务接口做跨维度交叉,构建以下三类高阶实战策略:

高阶应用一:三路聪明钱“多空背离与共振”预警模型(以 NVDA 2026 实盘复盘高位派发)

信号维度调取的 FMP 接口2026Q2~Q3 实测指标表现信号方向与投研定性
第一路:13F 机构季报(慢变量)标的机构持仓汇总截至 2026-06-30(08-14 披露):6,483 家机构持仓(+179 家),持股占比 69.68%(+3.12%),建减仓家数比 1.36🟢 表面滞后看多(反映二季度机构仍在加仓,散户若在 8 月中旬看 13F 极易盲目追高)
第二路:Form 4 高管交易(快变量)内部人交易统计 + 内部人交易搜索进入 2026Q3(7~9 月):二级市场高管买入 0 笔(totalPurchases: 0),真实卖出 25 笔;其中董事 STEVENS MARK A 在 09-18 单笔套现 2.98 亿美元(135.6 万股),法务长 Teter Timothy S. 在 09-21 连续 3 笔卖出 30,460 股🔴 高频强烈看空(最了解订单节奏的核心内部人在 220 美元上方零买入、大额独立减持)
第三路:国会山议员披露(快变量)参议院交易按标的查询 + 众议院交易按标的查询2026 年 8~9 月:参议员 Cory Booker 清仓卖出(Sale (Full),$15,001 - $50,000),参议员 Sheldon Whitehouse 连续两笔部分减持,众议员 Daniel Meuser 卖出🔴 高频同步撤退(参众两院多席位在三季度同步兑现算力股浮盈)

策略执行准则:当目标标的满足 「当季 13F 建减仓比 > 1.2 + 近 30 天 Form 4 存在净买入(totalPurchases > 0)+ 国会山无清仓式卖出 + TTM 财务比率 自由现金流为正」 四重多头共振时才纳入右侧做多池;反之若如上表 NVDA 出现“13F 满仓 + 内部人与议员高频零买连卖”的背离,立即触发止盈或风控降仓。

高阶应用二:“抄巴菲特作业不站岗”——13F 持仓 × 历史日线均价还原机构建仓成本中枢

伯克希尔 2026Q2 的 13F 直到 2026-08-14 才公布。如果某只股票是巴菲特在 Q2(2026-04-01 至 2026-06-30)新进或大举加仓的标的,8 月中旬公布时股价可能已脱离其建仓成本区。实战可通过联动 机构持仓明细提取 与 全量历史日线 分四步还原机构成本中枢:

口径特别提示:FMP 日线 vwap 字段是已结算单根日 K 线的四价算术均值 (open + high + low + close) / 4,并非盘中逐笔撮合的真 VWAP(详见 FMP vs Massive 数据对拍实测)。此处基于日线均值做季度成交量加权仅作为建仓成本区间的近似代理(Proxy),误差主要来自日内振幅,用于中长线安全边际判定足够,切勿当成微观逐笔真实成交价使用。

高阶应用三:Form 4 内部人“集群买入(Cluster Buying)”与职级×仓位增幅打分模型

同样是高管 P-Purchase 买入 50 万美元,身家百亿的外部董事象征性买一点,与平时持股不多的 CFO 突然押上三分之一仓位加仓,信息含金量天差地别。利用 Form 4 原生字段可直接构建三维量化打分模型:


三路聪明钱数据清洗与高阶因子计算有哪些核心 Python 逻辑?

在工程接入时,常规的 HTTP 请求可交由任意客户端处理,真正决定因子质量的只有以下 四段核心清洗与打分逻辑(10 位 CIK 补零、Form 4 行权去噪与职级增幅打分、国会山区间折算与逾期过滤、季度机构建仓成本计算):

import re
from datetime import datetime

# 1. 13F 机构查询:强制补齐 10 位前导零(避免传 1067983 返回空数组)
cik = str(1067983).zfill(10)  # -> "0001067983"

# 2. 13F × 历史日线:计算机构建仓季度的成交量加权成本线 (Institutional VWAP Cost)
def calc_quarterly_inst_cost(eod_rows: list) -> float:
    vol_sum = sum(float(r.get("volume") or 0) for r in eod_rows)
    return round(sum(float(r["vwap"]) * float(r["volume"]) for r in eod_rows) / vol_sum, 2) if vol_sum > 0 else 0.0

# 3. Form 4 内部人交易:剔除 0 元行权/授股,结合高管职级与自身仓位增幅计算信号强度
def filter_real_insider_trades(rows: list, ex_dates: list = None) -> list:
    if ex_dates is None:
        ex_dates = [datetime.strptime(r["transactionDate"], "%Y-%m-%d") for r in rows if r.get("transactionType") == "M-Exempt"]
    valid = [r for r in rows if r.get("transactionType") in ("P-Purchase", "S-Sale") and float(r.get("price") or 0) > 0]
    out = []
    for r in valid:
        role = (r.get("typeOfOwner") or "").upper()
        role_w = 1.5 if any(k in role for k in ("CEO", "CFO", "COO", "ACCOUNTING")) else (0.7 if any(k in role for k in ("DIRECTOR", "10%")) else 1.0)
        tx_dt = datetime.strptime(r["transactionDate"], "%Y-%m-%d")
        near_ex = any(abs((tx_dt - ed).days) <= 2 for ed in ex_dates)
        qty, owned = float(r["securitiesTransacted"]), float(r.get("securitiesOwned") or 0)
        stake_ratio = round(qty / max(owned - qty, 1.0), 4) if owned > qty else None
        out.append({"name": r["reportingName"], "type": r["transactionType"], "usd": round(qty * float(r["price"]), 2),
                    "weight": 0.5 if (r["transactionType"] == "S-Sale" and near_ex) else 1.0, "role_weight": role_w,
                    "stake_change_ratio": stake_ratio})
    return out

# 4. 国会山议员交易:金额区间(如 "$1,000,001 - $5,000,000")取中值 + 剔除 >45 天逾期单
def parse_amount_midpoint(amount_str: str) -> float:
    nums = [int(x.replace(",", "")) for x in re.findall(r"\$([\d,]+)", amount_str)]
    return (nums[0] + nums[1]) / 2.0 if len(nums) == 2 else (float(nums[0]) if len(nums) == 1 else 0.0)

def is_timely_congress_stock(r: dict, max_lag: int = 45) -> bool:
    if not r.get("symbol") or r.get("assetType") not in ("Stock", "Stock Option"):
        return False
    return (datetime.strptime(r["disclosureDate"], "%Y-%m-%d") - datetime.strptime(r["transactionDate"], "%Y-%m-%d")).days <= max_lag

常见问题(FAQ):追踪机构与内部人持仓时最容易踩哪些坑?

Q1:为什么伯克希尔 13F 股票总市值不等于财报里的总权益投资?

因为 SEC Form 13F 只强制披露美国本土上市的 13F 证券(美股正股、ADR 与美股期权),不包含伯克希尔持有的日本五大商社等非美股头寸。核对全球总资产需结合 财务报表分类 下的 资产负债表接口(/stable/balance-sheet-statement?symbol=BRK-A)。

Q2:除了 Form 4 高管交易,如何监控外部激进投资人举牌超过 5%?

当外部基金首次买超 5% 举牌线时需提交 Schedule 13D/13G。可直接调用 内部人交易分类 下的 受益所有权收购(13D/13G)(/stable/acquisition-of-beneficial-ownership?symbol=AAPL)捕捉举牌事件。

Q3:国会山接口里的 senateID(如佩洛西的 P000197)在参众两院通用吗?

通用。FMP 将国会唯一识别码(Bioguide ID)统一映射在 senateID 字段上,即使佩洛西是众议院议员也可直接将该 ID 传入 议员净资产追踪(/stable/senate-net-worth?senateID=P000197)查询历年净资产。

登录后可领取FMP Ultimate档1个月试用 Key,覆盖全量接口。免费试用 1 个月 →