Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
Official CPI, jobs, GDP, and central-bank events with point-in-time history.
$25/month 14-day free trial
Start Free Trial
Predicting Gold Prices Using Macro Data: A Step-by-Step Framework image
Share headline card X LinkedIn Email
Download

Implementation

How-To Guides

Predicting Gold Prices Using Macro Data: A Step-by-Step Framework

黄金是由实际利率,通胀预期,美元强度和央行资产负债表所决定的.所有这些都可通过API进行测量.本指南展示了如何从FXMacroData中抽取关键宏观系列并在Python中构建复合黄金信号分数表.

其他语言版本 English
Share article X LinkedIn Email

为什么宏观数据会成为黄金

黄金不是由收益,股息或收入增长驱动的.它的价格基本上是持有非利资产的机会成本和市场对货币和地缘政治不稳定的集体恐惧的函数.这意味着宏观数据实际利率,通胀预期,美元强度,央行资产负债表解释了黄金长期价格轨迹的大部分.

对于交易者和分析师来说,这是一个优势:关键变量在固定日历上发布,高精度测量,并通过API访问.FXMacroData显示了美国 (主要黄金驱动力) 和任何其他G10货币的相关指标,其中央行决定影响黄金需求.

核心论点

实际利率下降时,黄金上.美元下跌时,金价上;通货膨胀预期上时,黃金上升.每一个信号都能通过宏观数据终点实时观察到.

步骤1: 找出黄金的现货价格

在建立预测框架之前,建立基线:今天的黄金价格. 商品终点现在我们要做什么?

curl "https://fxmacrodata.com/api/v1/commodities/gold?api_key=YOUR_API_KEY&start=2024-01-01"
{
  "data": [
    { "date": "2025-04-08", "val": 3014.75 },
    { "date": "2025-04-07", "val": 2980.20 },
    { "date": "2025-04-04", "val": 3038.55 }
  ]
}

在Python中,一个清洁的方式来拉出这个数组是:

import requests

BASE = "https://fxmacrodata.com/api/v1"
KEY  = "YOUR_API_KEY"

def get_series(path: str, start: str = "2024-01-01") -> list[dict]:
    r = requests.get(f"{BASE}{path}", params={"api_key": KEY, "start": start})
    r.raise_for_status()
    return r.json()["data"]

gold = get_series("/commodities/gold")
# [{'date': '2025-04-08', 'val': 3014.75}, ...]

黄金现货价格 LBMA PM 固定

黄金价格从2000美元升至3000美元, 由于实际利率下降和美元动力转变.

步骤2:追踪美国实际利率

黄金的最强的单一宏观预测因素是美国的实际利率,即通货膨胀后可获得的安全资产回报率.当实际利息非常负 (政策利率低于通货通胀),黄金就会成为合理的价值储备.当真实利率变得积极并上升时,黄金面临国债的激烈竞争.

两个FXMacroData系列让你准确地构建实际利率图像:

tips_10y    = get_series("/announcements/usd/inflation_linked_bond")
breakeven   = get_series("/announcements/usd/breakeven_inflation_rate")
policy_rate = get_series("/announcements/usd/policy_rate")

尽管名义通胀率上升,但在2022年初的TIPS收益率从-2021年初上升到2023年底的2.0%时,黄金停滞不前.信号很清楚:持有黄金的机会成本已经变得有意义.

信号规则:提示收益率制度

  • 提示 10Y < -0.5%:强烈的黄金后风
  • 提示 10Y 在 -0.5%至 +0.5%之间:中性观察变化方向
  • 金的结构性逆风

提示 10Y 实际收益率与黄金价格

值得注意的是,TIPS收益率轴是翻转的,

第三步:监测美国通货膨胀制度

黄金与通货膨胀的关系比流行说法更细微. 在非常短期内,黄金并不总是立即对单个CPI打印作出反应.重要的是通货通胀制度,市场是否认为通货胀将保持高,以及美联储是否落后于曲线.

拉出核心通胀套件来跟踪制度变化:

cpi          = get_series("/announcements/usd/inflation")
core_cpi     = get_series("/announcements/usd/core_inflation")
pce          = get_series("/announcements/usd/pce")
breakeven    = get_series("/announcements/usd/breakeven_inflation_rate")

这里最有前性的信号是 破产率通胀率十年间平衡通胀率急剧上,比如从2.2%升至2.8%在两个月的时间里,这表明债券市场预计通胀将持续.即使政策利率同时上也会支持黄金,因为实际利率可能仍在下跌.

使用 通货膨胀终点 现在我 终点值 总体CPI决定了叙事,但PCE驱动了美联储的决策.在总体CPI上升而PCE保持固的情况下,的分歧通常不会产生持续的黄金购买压力.

美国通胀成分

标题CPI是主导情报的,但核心PCE是推动美联储的决策. 通胀的上升表明市场预计价格压力将持续,

第四步:关注美联储政策信号和资产负债表

黄金对美联储信誉非常敏感.市场价格黄金部分是为了抵御货币值,即央行将资产负债表扩张到无法放松的风险.两个FXMacroData指标直接捕捉到这一点.

fed_rate     = get_series("/announcements/usd/policy_rate")
fed_assets   = get_series("/announcements/usd/cb_assets")
m2           = get_series("/announcements/usd/m2")

没有什么. 美联储总资产 黄金在美国联邦储备局的资产负债表中占据了数万亿美元的资金.在量化宽松周期 (20082014,20202022年) 中,该系列大幅扩大,黄金在这两期都大幅上.当QT (量化收紧) 开始于2022年的时候,黄金の势头不仅因为实际利率上升,而且因为资产总额表信号转向下行.

货币供应量增长是一个较长的滞后指标.当M2以两位数的年率增长 (2021年为25%以上),它从历史上预示着最终支持黄金的通货膨胀压力.当 M2增长逆转并变为负值 (就像2023年大部分时间一样),货币值情况会减弱.

第五步:检查美元的实力

黄金的价格以美元计算,因此美元强的价值使黄金价格在美元下降,并降低了非美国买家的购买力激励. 贸易权重指数,提供了最清洁的整体图像.

twi = get_series("/announcements/usd/trade_weighted_index")

结构上,黄金和美元往往是相反相关的,但这种关系在真正的危机时期会崩,当两者都能同时因安全避难所需求而上时.由于美国汇率差异缩小,美元疲软的情况比全球风险减退 (黄金也可能受益,但机械转换较弱) 导致的美元疲弱的情况更可靠.

贸易权重美元与黄金

美元轴转换:美元走弱 (图中较高) 和黄金值一起走,说明结构反相关性.

为了建立这种利率差异的多货币图像,使用FXMacroData的政策利率终点,例如与美联储利率相比, 欧元政策利率 美元的利率优势是否正在缩小.

步骤6:建立一个复合金宏观分数表

上面的框架可以被分解成一个简单的分数表,将一个方向信号分配给每个指标,并将它们汇总成净偏差.

def score_signal(series: list[dict], bullish_when: str) -> float:
    """Return +1 (bullish gold), 0 (neutral), or -1 (bearish gold)."""
    if len(series) < 2:
        return 0.0
    latest = series[-1]["val"]
    prev   = series[-2]["val"]
    change = latest - prev

    if bullish_when == "falling":
        if change < -0.05:
            return 1.0
        elif change > 0.05:
            return -1.0
        return 0.0
    elif bullish_when == "rising":
        if change > 0.05:
            return 1.0
        elif change < -0.05:
            return -1.0
        return 0.0
    elif bullish_when == "negative":
        return 1.0 if latest < 0 else (-1.0 if latest > 1.0 else 0.0)
    return 0.0


scores = {
    "TIPS 10Y (real rate)"     : score_signal(tips_10y,    bullish_when="negative"),
    "Breakeven inflation"      : score_signal(breakeven,   bullish_when="rising"),
    "Fed policy rate"          : score_signal(policy_rate, bullish_when="falling"),
    "Fed total assets (QE)"    : score_signal(fed_assets,  bullish_when="rising"),
    "M2 money supply"          : score_signal(m2,          bullish_when="rising"),
    "Trade-weighted USD"       : score_signal(twi,         bullish_when="falling"),
}

net_score = sum(scores.values())
print(f"Net gold macro score: {net_score:+.0f} / {len(scores)}")
for name, s in scores.items():
    arrow = "▲" if s > 0 else ("▼" if s < 0 else "→")
    print(f"  {arrow}  {name}: {s:+.0f}")

六种输入中净分数为+4或以上是黄金的强大宏观尾风.净分分数是-3或以下是逆风.中间范围 (-2到+3) 要求更密切关注主导驱动器而不是复合物.

样本输出

Net gold macro score: +4 / 6
  ▲  TIPS 10Y (real rate): +1
  ▲  Breakeven inflation: +1
  →  Fed policy rate: 0
  ▲  Fed total assets (QE): +1
  →  M2 money supply: 0
  ▲  Trade-weighted USD: +1

黄金宏观分数表

六个宏观输入的雷达视图. 外环的点是黄金的;内环是下行.净+4/6信号强大的宏观尾风.

步骤7:包括风险感

黄金在风险降低时也可以作为安全避险资产. 风险情绪指标 黄金价格本身,澳元/美元,美元/日元以及金融压力指数的综合值提供实时模式信号.

risk = get_series("/risk-sentiment")
latest_risk = risk[-1]["val"]  # Range: -1.0 (full risk-off) to +1.0 (full risk-on)

if latest_risk < -0.4:
    print("Risk-off regime: safe-haven gold demand likely elevated")
elif latest_risk > 0.4:
    print("Risk-on regime: macro drivers dominate gold signal")
else:
    print("Neutral regime: watch macro scorecard for direction")

在风险降低时 (分数低于-0.4),即使是宏观评分表弱的黄金也可以在安全避险位置上大幅上.风险情绪覆盖是短期内可以推翻下行宏观读数的断路器,这就是为什么有纪律的黄金の交易者总是同时持有两种观点.

整合起来:一个现场监控片段

完成了所有所需的序列,计算了黄金宏观分数表,

import requests
from datetime import date, timedelta

BASE = "https://fxmacrodata.com/api/v1"
KEY  = "YOUR_API_KEY"
START = str(date.today() - timedelta(days=90))

def get_series(path: str) -> list[dict]:
    r = requests.get(f"{BASE}{path}", params={"api_key": KEY, "start": START})
    r.raise_for_status()
    return r.json().get("data", [])

def score(series: list[dict], mode: str) -> float:
    if len(series) < 2:
        return 0.0
    v, p = series[-1]["val"], series[-2]["val"]
    if mode == "falling":
        return 1.0 if v - p < -0.05 else (-1.0 if v - p > 0.05 else 0.0)
    if mode == "rising":
        return 1.0 if v - p > 0.05 else (-1.0 if v - p < -0.05 else 0.0)
    if mode == "negative":
        return 1.0 if v < 0 else (-1.0 if v > 1.0 else 0.0)
    return 0.0

inputs = {
    "TIPS 10Y real rate"     : (get_series("/announcements/usd/inflation_linked_bond"), "negative"),
    "Breakeven inflation"    : (get_series("/announcements/usd/breakeven_inflation_rate"), "rising"),
    "Fed policy rate"        : (get_series("/announcements/usd/policy_rate"), "falling"),
    "Fed total assets"       : (get_series("/announcements/usd/cb_assets"), "rising"),
    "M2 money supply"        : (get_series("/announcements/usd/m2"), "rising"),
    "Trade-weighted USD"     : (get_series("/announcements/usd/trade_weighted_index"), "falling"),
}

gold   = get_series("/commodities/gold")
risk   = get_series("/risk-sentiment")

net = sum(score(s, m) for s, m in inputs.values())

print("=" * 52)
print(f"  Gold Macro Scorecard  |  {date.today()}")
print("=" * 52)
if gold:
    print(f"  Gold spot  : ${gold[-1]['val']:,.2f} / troy oz")
if risk:
    print(f"  Risk regime: {risk[-1]['val']:+.2f}  (-1=risk-off, +1=risk-on)")
print(f"  Net signal : {net:+.0f} / {len(inputs)}")
print("-" * 52)
for name, (s, m) in inputs.items():
    sig = score(s, m)
    arrow = "▲ bullish" if sig > 0 else ("▼ bearish" if sig < 0 else "→ neutral")
    val   = f"  [{s[-1]['val']:.2f}]" if s else ""
    print(f"  {arrow:12s}  {name}{val}")
print("=" * 52)

解释和限制

这一框架确定了宏观 制度 对于黄金来说,不是准确的入口点.

  • 延迟是重要的. 宏观数据发布,如CPI和非农业工资单,有一个到四周的滞后. 评分表反映了最近发布的值,而不是实时经济状况.
  • 位置是重要的. 即使在宏观经济中出现强势,黄金期货的大量买入也可能意味着交易已经有价. 商品部分应在可用时补充宏观评分表.
  • 由于地缘政治冲击, 军事冲突,主权债务危机以及央行储备多元化决定,
  • 跨货币需求 新兴市场的央行,特别是中国和印度,是黄金的重要买家.其需求是由储备多元化动机驱动的,这些动力可能与美国宏观信号截然不同. 外汇储备 它们可以作为有用的二次检查.

下一步

  • 通过 添加银和信号 商品/银 现在我 商品/ 黄金/银的比率是一个众所周知的制度指标.
  • 您的脚本在每次CPI或FOMC公告后自动重新运行, 而不是固定每日计时器.
  • 扩大到其他主要央行政策利率 (ECB,BoJ,BoE) 以评估全球货币宽松是否正在扩大黄金的历史上看好宏观背景.

本文中使用的美国宏观指标和大宗商品数据的完整目录可在 美国人民币 您可以使用任何FXMacroData API 密钥访问. 没有任何信息可以提供.现在我们要做什么?

Blogroll

AI Answer-Ready

Key Facts

Page
Predicting Gold Prices With Macro Data
Section
Articles
Canonical URL
https://fxmacrodata.com/zh/articles/predicting-gold-prices-with-macro-data
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:06 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is this page about? This page explains Predicting Gold Prices With Macro Data with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.