CommitmentOfTraders(交易者持仓)

此类接口提供 CFTC 持仓报告信息,包括商业套保者、非商业投机者与小型交易者的多空头寸及其变化,可按品种和报告日期查询,也能取回历史分析结果。常用来观察原油、黄金、股指等品种的拥挤程度与情绪拐点;数据按周更新,适合中期观察而非日内择时。

典型使用场景

4 个场景
投机头寸拥挤度监控

计算非商业净多头(Net Long)处于过去 3 年的分位数,识别极端拥挤信号。

商业套保商动向跟踪

观察生产商与贸易商的套保净头寸变化,辅助大宗商品中长期拐点判断。

宏观跨资产情绪看板

横向汇总美元、黄金、美债、标普 500 期货的机构持仓周度增减。

CTA 趋势过滤因子

将 COT 投机净持仓极值与价格突破信号结合,提高商品期货策略胜率。

接口怎么选?

3 项选型对照

COT(Commitments of Traders)报告由 CFTC 每周五公布(反映截至当周周二的持仓),是宏观对冲、商品期货、外汇与股指期货观察“聪明钱(商业套保商 vs 投机基金)”头寸拥挤度的核心数据源。

本类别提供三个接口:先用 COT Report List(COT 报告清单) 查合约代码,再用 COT Report(COT 持仓报告) 取 128 个原始持仓字段,或直接用 COT Analysis By Dates(COT 报告分析) 获取计算好的多空净持仓与情绪判断。

你的需求推荐接口选择理由
查询支持 COT 报告的全部期货/商品/外汇合约代码COT Report ListCOT 报告清单获取合法的合约 symbol 与名称映射
获取 CFTC COT 原始持仓报告全部细分字段COT ReportCOT 持仓报告含非商业(投机)、商业(套保)、未报告等 128 个完整字段
直接获取多空持仓对比与市场趋势信号COT Analysis By DatesCOT 报告分析已提炼多空比例与变化方向,省去手动聚合

数据覆盖与参数口径

  • 覆盖品种:大宗商品(黄金/原油/农产品)、外汇期货、美股股指期货、国债期货
  • 发布节奏:周频(通常反映每周二收盘持仓,周五美东下午披露)
  • 核心分组:Non-Commercial(非商业/投机基金)、Commercial(商业套保)、Nonreportable(散户小单)
  • 核心返回字段:symbol、date、name、openInterestAll、noncommPositionsLongAll、noncommPositionsShortAll、commPositionsLongAll
  • 入库幂等主键:按 (symbol, date) 唯一去重;回测信号生效时点需由周二 date 顺延至周五收盘后

调用示例

Python 关键代码

示例场景:拉取指定合约的 COT 持仓报告明细 · 对应接口:COT Report(COT 持仓报告)

Python(核心参数与字段清洗逻辑)
resp = requests.get(
    "https://quote-fmp.com/stable/commitment-of-traders-report",
    params={"symbol": "GC", "from": "2024-01-01", "to": "2024-03-01", "apikey": FMP_KEY},
    timeout=15,
)
resp.raise_for_status()
df = pd.DataFrame(resp.json())
# 按 date 升序重排并数值化 openInterestAll(未平仓合约(全部))
df["openInterestAll"] = pd.to_numeric(df["openInterestAll"], errors="coerce")
df = df.sort_values("date").reset_index(drop=True)
  • 先通过 COT Report List(COT 报告清单) 确认目标品种在 COT 体系里的代码。
  • 回测时注意周二持仓截面与周五公开披露日之间有 3 天滞后。

数据注意事项

4 条实盘要点
  • COT Report(COT 持仓报告) 返回的 date 为周二持仓统计截止日,而 CFTC 实际在周五美东收盘后才公布;量化回测切勿在周二当天触发信号,以防引入未来函数。
  • 跨品种横向比较持仓拥挤度时,应将 COT Report(COT 持仓报告) 中的非商业净持仓除以总未平仓量(openInterestAll)做百分比标准化,或直接读取 COT Analysis By Dates(COT 报告分析)。
  • 先通过 COT Report List(COT 报告清单) 获取各品种在 CFTC COT 体系下的专用 symbol(如黄金 GC、原油 CL),它与现货或普通行情代码未必完全一致。
  • COT 数据为周频时间序列,拉取长周期历史时建议显式传入 from 与 to 日期区间并按 (symbol, date) 幂等落库。

常见问题

4 个问题
COT 报告里的 Non-Commercial 和 Commercial 代表什么?

Non-Commercial(非商业持仓)主要指对冲基金与大型投机机构,以博取价差为目的;Commercial(商业持仓)指矿商、农户、跨国企业等现货产业方,以套期保值锁定风险为主。

为什么用 COT 数据做回测不能直接用返回的 date 字段当信号触发日?

返回的 date 是持仓统计截止日(周二),而 CFTC 实际在当周周五收盘后才向市场公布。实盘回测应将信号生效日推迟到周五收盘或下周一开盘。

COT Report(COT 持仓报告) 和 COT Analysis By Dates(COT 报告分析) 怎么选?

需要构建自定义因子(如净持仓占总未平仓合约 Open Interest 比例)时用 COT Report(COT 持仓报告) 拿全量 128 个字段;只需快速查看多空强弱概要时用 COT Analysis By Dates(COT 报告分析)。

如何衡量某个期货品种当前的投机多空拥挤度?

可从 COT Report(COT 持仓报告)提取非商业多头(noncommPositionsLongAll)减去非商业空头(noncommPositionsShortAll)得到净投机头寸,再除以总未平仓量(openInterestAll),或直接调用 COT Analysis By Dates(按日期分析 COT 报告)查看过去 52 周/3 年的分位水平。

接口一览(3个)

1 个功能模块
准备好接入交易者持仓相关接口了吗?接口路径与 FMP 保持兼容,替换域名和 API Key 即可开始。
领取 1 个月试用 Key