对于以每美元兑换值计价的货币来衡量黄金的投资者而言,本地货币黄金回报率为 (1 + gold USD return) × (1 + USD/local FX return) − 1。最后一项很关键:直接相加两个百分比变动只是一种近似值,而非精确结果。本对比使用同一两个交易日的已结算金条价格和未经前向填充的外汇观测值。
本系列文章要回答的问题
美元计价的黄金走势图能回答一个有用的问题,但它无法说明本地投资者的实际体验。当黄金以印尼盾、印度卢比、日元、欧元或土耳其里拉计价时,美元价格本身与美元兑该货币的汇率都会计入最终结果。
这并不意味着本地黄金价格上涨只有一个简单的原因。这一计算只是把某个既定区间内可观察到的价格因素和外汇因素分离开来,它不做任何预测,也不对投资者应该怎么做提出任何主张。
精确公式
设 g 为美元计价黄金回报率,f 为以本地货币兑每美元表示的汇率回报率,L 为本地货币黄金回报率。则:
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-07-10 至 2026-07-10。黄金收盘价:从每金衡盎司 3323.81 美元到 4119.172 美元。每个汇率均以本地货币兑每美元表示。所有展示的百分比均四舍五入至小数点后两位;计算过程保留完整精度。
数据来源观测值
美元黄金部分来自已结算的每日 XAU-USD-SPOT K 线数据。外汇部分来自欧元、日元、印尼盾、印度卢比和土耳其里拉的带日期美元基准观测值。两次外汇响应均为 source: ecb_daily,is_forward_filled: false,且 data_updated_at 与请求日期一致。这些是指示性参考汇率,而非结算价或成交价。
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 线已结算且外汇观测值未经前向填充时,某个日期才是有效的。如果某个日历周年日不能同时满足这两个条件,两个对比日期会一起向前回退,直到找到最近的一对共同交易日。这样可以避免一个序列悄悄借用另一个序列不同的日期。
复现这一计算
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 线参考文档。关键不在于这个乘法本身,而在于保留那两个能让这个乘法在历史上站得住脚的观测值。
