Methodology/黄金与外汇
Methodology

黄金真的上涨了,还是你的货币贬值了?

从 2025 年 7 月 10 日到 2026 年 7 月 10 日,美元计价黄金上涨了 23.93%。计入本地货币的外汇变动后,同一黄金头寸以欧元计算上涨 26.95%,以印尼盾计算上涨 37.97%,以土耳其里拉计算上涨 45.50%。

MMexchangerate.dev·Jul 13, 2026·7 分钟阅读

对于以每美元兑换值计价的货币来衡量黄金的投资者而言,本地货币黄金回报率为 (1 + gold USD return) × (1 + USD/local FX return) − 1。最后一项很关键:直接相加两个百分比变动只是一种近似值,而非精确结果。本对比使用同一两个交易日的已结算金条价格和未经前向填充的外汇观测值。

Key points
在所选的这一年里,美元计价黄金回报率为 23.93%;本文展示的本地货币回报率从欧元的 26.95% 到土耳其里拉的 45.50% 不等。
本地货币黄金回报率由美元黄金价格变动、外汇变动,以及一个较小的交互项共同构成。
这个公式是一个会计恒等式,并不能说明是什么导致了任一市场的变动。
两个端点的观测值都必须是所选交易日已结算或已发布的数据。
本研究对比中排除了前向填充的外汇观测值。

本系列文章要回答的问题

美元计价的黄金走势图能回答一个有用的问题,但它无法说明本地投资者的实际体验。当黄金以印尼盾、印度卢比、日元、欧元或土耳其里拉计价时,美元价格本身与美元兑该货币的汇率都会计入最终结果。

这并不意味着本地黄金价格上涨只有一个简单的原因。这一计算只是把某个既定区间内可观察到的价格因素和外汇因素分离开来,它不做任何预测,也不对投资者应该怎么做提出任何主张。

精确公式

g 为美元计价黄金回报率,f 为以本地货币兑每美元表示的汇率回报率,L 为本地货币黄金回报率。则:

formula · local-currency gold returncopy
g = gold_usd_end / gold_usd_start - 1
f = usd_to_local_end / usd_to_local_start - 1
L = (gold_usd_end × usd_to_local_end) / (gold_usd_start × usd_to_local_start) - 1

L = g + f + (g × f)

最后这个表达式有助于解释:g 是美元黄金部分,f 是货币部分,g × f 是二者的交互项。这正是为什么简单地把两个百分比变动相加并不精确。

经过验证的对比区间

经过验证的共同交易日
2025 年 7 月 10 日和 2026 年 7 月 10 日均有已结算的 XAU/USD 每日收盘价,以及欧元、日元、印尼盾、印度卢比和土耳其里拉未经前向填充的美元基准外汇观测值。周末及数据尚未生成的日期已被排除。

所选区间:2025-07-102026-07-10。黄金收盘价:从每金衡盎司 3323.81 美元到 4119.172 美元。每个汇率均以本地货币兑每美元表示。所有展示的百分比均四舍五入至小数点后两位;计算过程保留完整精度。

货币美元黄金/外汇构成本地货币回报率
EUR23.93% + 2.44% + 0.58%26.95%
JPY23.93% + 10.63% + 2.54%37.10%
IDR23.93% + 11.33% + 2.71%37.97%
INR23.93% + 11.16% + 2.67%37.76%
TRY23.93% + 17.41% + 4.17%45.50%

数据来源观测值

美元黄金部分来自已结算的每日 XAU-USD-SPOT K 线数据。外汇部分来自欧元、日元、印尼盾、印度卢比和土耳其里拉的带日期美元基准观测值。两次外汇响应均为 source: ecb_dailyis_forward_filled: false,且 data_updated_at 与请求日期一致。这些是指示性参考汇率,而非结算价或成交价。

requests · exact inputs to preservecopy
GET https://api.goldprice.dev/v1/bars?symbol=XAU-USD-SPOT&interval=1d&from=2025-07-10T00:00:00Z&to=2026-07-10T00:00:00Z&limit=400

GET https://api.exchangerate.dev/v1/2025-07-10/USD?symbols=EUR,JPY,IDR,INR,TRY
GET https://api.exchangerate.dev/v1/2026-07-10/USD?symbols=EUR,JPY,IDR,INR,TRY

只有当黄金 K 线已结算且外汇观测值未经前向填充时,某个日期才是有效的。如果某个日历周年日不能同时满足这两个条件,两个对比日期会一起向前回退,直到找到最近的一对共同交易日。这样可以避免一个序列悄悄借用另一个序列不同的日期。

复现这一计算

python · calculate and verify each currencycopy
from decimal import Decimal

gold_start = Decimal("3323.81")
gold_end = Decimal("4119.172")
fx_start = Decimal("16237.25")  # IDR per USD on 2025-07-10
fx_end = Decimal("18076.55")    # IDR per USD on 2026-07-10

g = gold_end / gold_start - 1
f = fx_end / fx_start - 1
local_return = (gold_end * fx_end) / (gold_start * fx_start) - 1
interaction = g * f

assert local_return == g + f + interaction

这个断言是一项有用的发布前检查。如果在精确十进制运算后仍出现非零差值,通常意味着汇率方向被弄反了、日期没有对齐,或者某个中间值被过早四舍五入。

这一计算没有衡量的内容

  • 零售商溢价、税费、存储成本、点差或交割成本。
  • 可交易的成交价或结算价。外汇观测值是指示性参考数据。
  • 因果解释、预测或投资建议。

如果你的应用代码需要更长的本地货币序列,请参阅历史外汇区间指南goldprice.dev K 线参考文档。关键不在于这个乘法本身,而在于保留那两个能让这个乘法在历史上站得住脚的观测值。

MM
exchangerate.dev
面向开发者的历史外汇数据方法论说明。

Keep reading

Guide历史外汇汇率与时间序列,一次调用获取Read Guide无前视偏差地回填外汇汇率Read Guide用本币回测黄金回报率Read