mcpField
F
FXMacroData

FXMacroData

远程服务
fxmacrodata.com金融数据113 周前更新

关于 FXMacroData

FXMacroData 是面向宏观经济和市场时间序列研究者及开发者的 Python SDK,提供同步和异步接口,可获取经济指标、外汇、日历、COT 持仓及大宗商品数据。

主要功能

  1. 01宏观经济指标时间序列
  2. 02外汇价格与技术指标
  3. 03经济数据发布日历
  4. 04发现指标目录
  5. 05COT 持仓与大宗商品价格
  6. 06同步和异步客户端

适用场景

  1. 01构建宏观经济研究笔记本
  2. 02获取回测所需时间序列
  3. 03跟踪即将发布的经济数据

MCP 相关

该 SDK 可通过 OpenBB MCP 集成使用;`openbb-mcp` 会提供 FXMacroData 工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://fxmacrodata.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

55

此工具无需参数。

详细介绍

FXMacroData Python SDK 🐍📊

PyPI Version Python Versions License Build

FXMacroData Python SDK 提供了简单高效的接口,可从 FXMacroData 获取宏观经济指标、外汇价格、发布日期日历、COT 持仓数据和大宗商品价格。

通过同步和异步客户端,可将数据导入研究笔记本、回测和应用程序。

订阅 FXMacroData,即可获取非 USD 数据、完整可用历史数据、外汇、大宗商品和持仓数据。在关联订阅之前,可使用公开的 USD 工作流评估集成效果。


🌟 功能

  • 获取:
    • 宏观经济指标 — 政策利率、通胀、GDP、失业率、债券收益率等:涵盖 656 个端点上的 97 种不同指标
    • 外汇即期汇率,可选技术指标(SMA、RSI、MACD、布林带)
    • 发布日期日历 — 即将发布的经济数据日期
    • 数据目录 — 按货币查看可用指标
    • COT 数据 — CFTC 交易者持仓报告数据
    • 大宗商品价格 — 黄金、白银、铂金
  • 使用涵盖最近 90 天的公开 USD 宏观数据进行评估;关联 FXMacroData 订阅即可获取完整可用历史数据。
  • 通过 get_fx_price 获取外汇即期汇率历史数据。
  • 受保护的数据集需要授权的 FXMacroData 订阅密钥,包括非 USD 指标、外汇即期汇率历史数据、COT 和大宗商品数据。
  • 全面支持:
    • 同步客户端
    • 异步客户端
  • 轻量级:仅依赖 requests 和 aiohttp。

📦 安装

从 PyPI 安装:

pip install fxmacrodata

或从 GitHub 安装最新版本:

pip install git+https://github.com/fxmacrodata/fxmacrodata.git

🔧 使用

同步
from fxmacrodata import Client

client = Client(api_key="YOUR_API_KEY")

# Fetch macroeconomic indicators
data = client.get_indicator(
    "aud", "policy_rate",
    start_date="2023-01-01",
    end_date="2023-11-01"
)
print(data)

# Forex price endpoint
fx = client.get_fx_price("usd", "gbp", start_date="2025-01-01")
print(fx)

# Forex with technical indicators
fx = client.get_fx_price("eur", "usd", indicators="sma_20,rsi_14,macd")
print(fx)

# Release calendar
calendar = client.get_calendar("usd")
print(calendar)

# Data catalogue — discover available indicators
catalogue = client.get_data_catalogue("usd")
print(catalogue)

# COT positioning data
cot = client.get_cot("eur", start_date="2025-01-01")
print(cot)

# Commodity prices
gold = client.get_commodities("gold", start_date="2026-01-01")
print(gold)

异步
import asyncio
from fxmacrodata import AsyncClient

async def main():
    async with AsyncClient(api_key="YOUR_API_KEY") as client:
        # Fetch macroeconomic indicators
        data = await client.get_indicator("eur", "inflation")
        print(data)

        # Forex price endpoint
        fx = await client.get_fx_price("usd", "jpy")
        print(fx)

        # Release calendar
        calendar = await client.get_calendar("usd")
        print(calendar)

        # Data catalogue
        catalogue = await client.get_data_catalogue("usd")
        print(catalogue)

        # COT positioning
        cot = await client.get_cot("jpy")
        print(cot)

        # Commodity prices
        gold = await client.get_commodities("gold")
        print(gold)

asyncio.run(main())
超时和错误

每个请求默认超时时间为 30 秒。可针对每个客户端修改:

Client(api_key="YOUR_API_KEY", timeout=60)            # seconds
Client(api_key="YOUR_API_KEY", timeout=(3.05, 120))   # (connect, read)
AsyncClient(api_key="YOUR_API_KEY", timeout=60)       # total seconds

所有错误均为 FXMacroDataError 或其子类:

异常触发条件
FXMacroDataAPIErrorAPI 返回非 200 状态码(会设置 .status_code)。
FXMacroDataResponseErrorAPI 返回 200,但响应正文是错误消息或不是 JSON 对象。
FXMacroDataTimeoutError请求超时。
FXMacroDataTransportError连接失败(DNS、TLS、网络)。
FXMacroDataRedirectError重定向会将 API 密钥发送到不同来源,因此被拒绝。

错误消息中绝不会包含 API 密钥,且密钥仅会通过 HTTPS 发送到你配置的来源:如果重定向到其他主机或普通 HTTP, 则会被拒绝,而不会附带密钥继续跟随重定向。


OpenBB 集成

FXMacroData 支持通过此软件包实现所有实用的 OpenBB 集成方式:

  • OpenBB Python:可安装的提供方/路由扩展,适用于 obb.fxmacrodata.*。
  • OpenBB REST API:通过 openbb-api 提供 /api/v1/fxmacrodata/* 路由。
  • OpenBB Workspace,自动生成:由 openbb-api 根据内联元数据生成的小组件。
  • OpenBB Workspace,自定义:提供 widgets.json、apps.json 和数据端点的独立后端。
  • OpenBB MCP:通过 openbb-mcp 提供的工具。
  • OpenBB CLI:运行 openbb-build 后可用的命令。

OpenBB 软件包需要 Python 3.10+。安装 OpenBB Python 扩展:

pip install "fxmacrodata[openbb]"
openbb-build

然后通过 OpenBB Python 接口使用 FXMacroData:

from openbb import obb

obb.user.credentials.fxmacrodata_api_key = "YOUR_API_KEY"

catalogue = obb.fxmacrodata.data_catalogue(
    currency="USD",
    provider="fxmacrodata",
).to_df()

inflation = obb.fxmacrodata.macro_indicators(
    currency="USD",
    indicator="inflation",
    start_date="2020-01-01",
    provider="fxmacrodata",
).to_df()

eurusd = obb.fxmacrodata.fx_historical(
    base="EUR",
    quote="USD",
    start_date="2024-01-01",
    provider="fxmacrodata",
).to_df()

运行 OpenBB REST API 和自动生成的 Workspace 后端:

pip install "fxmacrodata[openbb-api]"
openbb-build
fxmacrodata-openbb-api --host 127.0.0.1 --port 6900

Workspace 可连接到 http://127.0.0.1:6900。自动生成的 /widgets.json 使用 FXMacroData 的内联 OpenBB 小组件元数据。

运行 OpenBB Workspace 自定义后端:

pip install "fxmacrodata[workspace]"
fxmacrodata-openbb-backend

默认后端 URL:

http://127.0.0.1:7779

Workspace 提供 /widgets.json、/apps.json、/catalogue、 /release_calendar、/macro_indicator、/forex、/cot 和 /commodity。 此后端默认禁用 Swagger/OpenAPI 文档。仅用于本地调试时,请在启动前 设置 FXMACRODATA_OPENBB_ENABLE_DOCS=1。

运行 OpenBB MCP:

pip install "fxmacrodata[mcp]"
openbb-build
fxmacrodata-openbb-mcp --default-categories fxmacrodata --host 127.0.0.1 --port 8001

运行 OpenBB CLI:

pip install "fxmacrodata[openbb-cli]"
openbb-build
openbb

完整的集成矩阵以及单独的上游 OpenBB 仓库贡献方式,请参阅 docs/openbb-integration.md。


📘 API 概览

get_indicator(currency, indicator, start_date=None, end_date=None)

获取宏观经济指标时间序列数据。

  • currency:"usd"、"aud"、"eur"、"gbp"、"cad"、"nok"、"nzd"、"jpy"、"brl"、"cny"、"dkk"、"pln"、"sek"、"sgd" 等。
  • indicator:"policy_rate"、"inflation"、"gdp"、"unemployment"、"trade_balance"、"current_account_balance"、"gov_bond_10y" 等。
  • 非 USD 货币需要 API 密钥。
get_fx_price(base, quote, start_date=None, end_date=None, indicators=None)

获取两种货币之间的每日外汇即期汇率。

  • indicators:可选的、以逗号分隔的技术指标——"sma_20"、"sma_50"、"sma_200"、"rsi_14"、"macd"、"ema_12"、"ema_26"、"bollinger_bands" 或 "all"。
  • 需要 API 密钥。
get_calendar(currency, indicator=None)

获取某种货币即将发布的经济数据日期。

  • indicator:可选,筛选指定的指标 slug。
  • 返回 announcement_datetime(Unix 时间戳)和 release(指标 slug)。
get_data_catalogue(currency, include_capabilities=False, include_coverage=False, indicator=None)

发现指定货币可用的宏观经济指标。

  • 返回一个以指标 slug 为键的字典,包含 name、unit、frequency 和 has_official_forecast。
  • 非 USD 货币需要 API 密钥。
get_cot(currency, start_date=None, end_date=None)

获取 CFTC 交易者持仓报告(COT)数据。

  • 支持的货币:AUD、CAD、CHF、EUR、GBP、JPY、NZD、USD。
  • 非 USD 货币需要 API 密钥。
get_commodities(indicator, start_date=None, end_date=None)

获取大宗商品价格时间序列。

  • indicator:"gold"、"silver" 或 "platinum"。
  • 需要 API 密钥。

💹 支持的货币和指标

支持 18 种货币: AUD、BRL、CAD、CHF、CNH、CNY、DKK、EUR、GBP、ILS、JPY、NGN、NOK、NZD、PEN、SEK、THB、USD。

下表展示了四种主要货币的部分指标覆盖情况。使用 get_data_catalogue() 可发现任意货币的完整列表。

类别指标USDEURAUDGBP
经济GDP 增长✓✓✓✓
通胀率✓✓✓✓
贸易差额✓✓✓✓
经常账户余额✓✓✓✓
零售销售✓✓✓✓
工业生产✓———
劳动力市场失业率✓✓✓✓
就业人数✓✓✓✓
全职就业人数✓✓✓—
兼职就业人数✓✓✓✓
劳动参与率✓✓✓✓
非农就业人数✓———
货币政策政策利率✓✓✓✓
无风险利率✓✓✓✓
央行资产✓—✓—
政府债券收益率2 年期政府债券✓✓✓✓
5 年期政府债券✓✓✓✓
10 年期政府债券✓✓✓✓
通胀挂钩债券✓✓✓✓

📄 许可证

MIT 许可证 © FXMacroData


🌐 链接

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。