现货价、买入价、卖出价与价差:贵金属价格如何报价
了解黄金、白银、铂金和钯金的现货价、买入价、卖出价、中间价和价差的含义,交易商如何形成报价,以及如何通过 API 请求并正确展示买卖价。
为什么一盎司黄金有好几个价格
在同一时刻查看三个网站上的金价,您常常会看到三个略有不同的数字,而金币交易商的网站上又会显示另外两个。它们并不一定有错,只是回答的问题不同:一个显示的是市场中间现货价,一个是期货合约价格,一个是交易商卖给您金条的价格,还有一个是交易商从您手中回购的价格。
如果您要开发任何展示或使用贵金属价格的产品,例如交易商网店、投资组合追踪器、首饰价格计算器或内部报表,就需要清楚自己使用的是哪一个数字。本文将解释相关术语(现货价、买入价、卖出价、中间价和价差),介绍交易商如何将批发报价转化为零售价格,并演示如何通过 MetalAPI REST API 请求和展示买入价与卖出价。
本文旨在介绍价格的报价方式,仅供学习参考,不构成投资或交易建议。示例中的所有数字均为示意。
现货价:即期交割的参考价格
现货价(spot price)是标准数量的金属用于即期交割(而非在未来某个日期交割)的价格。批发黄金市场主要以场外交易(OTC)方式进行,以伦敦为中心;按照惯例,这里的“现货”是指在交易后两个工作日结算。
贵金属以金衡盎司(31.1034768 克)计价,通常以美元报价,并使用类似 ISO 的代码:XAU 代表黄金,XAG 代表白银,XPT 代表铂金,XPD 代表钯金。因此,XAU/USD 读作“每金衡盎司黄金的美元价格”,就像 EUR/USD 读作“每欧元的美元价格”一样。
由于现货市场是场外市场,并没有一家交易所发布官方的最新成交价。银行和流动性提供商各自推送双边报价,您在网站上看到的“现货价”是根据这些报价得出的代表性数值,最常见的是中间价。以下几种相关价格很容易与现货价混淆:
- 期货价格,例如 COMEX 黄金合约,用于未来某个月份的交割。它与现货价的差异通常来自持有成本,即交割前的利息和仓储费用。
- 基准价格,例如 LBMA 黄金价格(每个伦敦工作日通过两次竞价确定)和 LBMA 白银价格(每天确定一次),是用于结算合约和评估持仓价值的单一参考值。它们在固定时间确定,两次定价之间不会变动。
- 金币和金条的零售价格在现货价的基础上包含溢价,下文会详细介绍。
买入价、卖出价与中间价
在双边市场中,每个报价都由两个数字组成:
- 买入价(bid)是做市商当前愿意支付的最高价格,也就是您可以卖出的价格。
- 卖出价(ask,也称 offer)是做市商愿意卖出的最低价格,也就是您可以买入的价格。
卖出价总是大于或等于买入价。中间价(mid)是两者的平均值,即 (bid + ask) / 2。没有人会恰好按中间价成交;它是一个位于买卖双方之间的中性参考值,不偏向买方也不偏向卖方。因此,它自然成为图表、投资组合估值和“今日金价”这类标题所用的数字,也是大多数价格 API 默认返回的价格。
| 术语 | 含义 | 典型用途 |
|---|---|---|
| 买入价(Bid) | 买方愿意支付的最优价格 | 估算您卖出金属可得的价值;交易商回购价格的参考 |
| 卖出价(Ask / Offer) | 卖方愿意接受的最优价格 | 买入成本;交易商销售价格的参考 |
| 中间价(Mid) | 买入价与卖出价的平均值 | 图表、估值、标题价格 |
| 价差(Spread) | 卖出价减去买入价 | 衡量流动性以及一买一卖的往返成本 |
下面用示例数字计算一下。假设批发黄金报价为买入价 3,997.62、卖出价 3,998.16(单位:美元/金衡盎司):
买入价 (bid) = 3,997.62
卖出价 (ask) = 3,998.16
中间价 (mid) = (3,997.62 + 3,998.16) / 2 = 3,997.89
价差 = 3,998.16 - 3,997.62 = 0.54 USD
价差占中间价的百分比 = 0.54 / 3,997.89 ≈ 0.0135 %(约 1.35 个基点)实际中的价差
价差是“即时成交”的代价:立即买入再立即卖出所要付出的成本。比较价差时应使用相对值,即占中间价的百分比或基点(百分之一个百分点)。同样是 0.50 的绝对价差,对于每盎司数千美元的黄金和每盎司几十美元的白银,意义截然不同。
以下几个因素会使价差扩大或收窄:
- 金属的流动性。黄金是交易最活跃的贵金属,相对价差通常最小。铂金和钯金的交易量要小得多,因此按百分比计算,它们的价差通常更大。
- 交易时段。主要交易中心的交易时间重叠时,价差往往最小;而在清淡时段,例如纽约每日收盘前后,以及纽约时间周日晚间每周重新开盘时,价差则较大。
- 波动与新闻。在重大经济数据发布前后或市场承压期间,做市商会扩大报价价差以保护自己。
- 交易规模。报价价差适用于标准交易规模。超大订单的报价可能更宽,而小额零售购买还涉及批发价差中完全没有包含的成本。
在代码中计算价差时,请使用数据源中未经取整的数字,并以中间价为基准衡量相对价差:
function spreadStats(bid, ask) {
const mid = (bid + ask) / 2;
const spread = ask - bid;
return {
mid,
spread,
spreadPct: (spread / mid) * 100,
spreadBps: (spread / mid) * 10000,
};
}
spreadStats(3997.62, 3998.16);
// mid ≈ 3997.89, spread ≈ 0.54, spreadPct ≈ 0.0135, spreadBps ≈ 1.35批发价差和零售价差是两回事。黄金的银行间价差远低于百分之一,而交易商对一盎司金币的销售价与回购价之间的差距要大得多,因为它还涵盖了产品溢价、分销成本和交易商的利润。
交易商如何将现货价转化为报价
贵金属交易商、珠宝商或交易应用很少原样展示批发报价。大多数会从一个实时参考价(中间价,或买入价和卖出价)出发,再在买卖两侧分别加上自己的条款。常见的结构如下:
- 销售价(客户支付的价格)= 参考卖出价 × 重量 × 纯度 + 溢价
- 回购价(客户收到的价格)= 参考买入价 × 重量 × 纯度 − 折扣
溢价涵盖加工制造(铸造小金币每盎司的成本高于浇铸大金条)、保险、运输、支付成本和利润。它可以是高于现货价的一个百分比、每件固定金额或两者兼有,并因产品、规格、交易商和需求而异。
两者之间通常还有两种换算。面向美国以外客户的价格需要从美元换算为当地货币,这就引入了汇率,有时还会产生额外的外汇价差。而按克或按 K 数销售的产品(例如首饰)需要从金衡盎司换算,并按纯度折算:22K 金为 22/24,纯度约 91.67%;18K 金的纯度为 75%。
| 步骤(示例,1 盎司金币) | 销售端 | 回购端 |
|---|---|---|
| 批发参考价,美元/金衡盎司 | 卖出价 3,998.16 | 买入价 3,997.62 |
| 交易商调整(仅为示例) | +3.0% 溢价 | −1.0% 折扣 |
| 客户价格,美元 | ≈ 4,118.10 | ≈ 3,957.64 |
表中的溢价和折扣是为举例而虚构的,实际数值差异很大。关键在于结构:面向客户的价差等于批发价差加上交易商在买卖两侧的调整,而批发价差通常只占其中最小的一部分。
通过 MetalAPI 请求买入价和卖出价
MetalAPI 默认返回中间价。对于现货贵金属,中间价来自银行间买卖报价源。在 Standard 及以上套餐中,您还可以在 currencies 中的品种代码后添加 -BID 和 -ASK,同时请求买卖两侧的价格:
curl "https://metalapi.com/api/v1/latest?currencies=XAU,XAU-BID,XAU-ASK" \
-H "Authorization: Bearer YOUR_API_KEY"所请求的每一侧价格都会以两个方向出现在 rates 中,与中间价完全相同。USDXAU-BID 是以美元/金衡盎司计的买入价,XAU-BID 是它的倒数:
{
"success": true,
"timestamp": 1792834892,
"date": "2026-10-24",
"base": "USD",
"rates": {
"XAU": 0.0002501319446,
"USDXAU": 3997.89,
"XAU-BID": 0.0002501488386,
"USDXAU-BID": 3997.62,
"XAU-ASK": 0.0002501150529,
"USDXAU-ASK": 3998.16
}
}有几个细节值得了解:
- 适用品种。买入价和卖出价适用于来自银行间报价源的品种,即贵金属和主要货币。基于期货的品种(例如铜或原油)只发布单一价格。如果某个品种不提供某一侧价格,
rates中就不会包含对应的键,因此请先检查键是否存在,不要想当然。 - 同一快照。买入价、卖出价和中间价来自同一快照,因此彼此一致。它们按您套餐的更新间隔刷新:Standard 每 10 分钟,Advanced 和 Pro 每分钟,Ultra 和 Business 每 15 秒,Enterprise 每 5 秒。
- 其他货币和单位。
base和unit的用法与平常一样,因此base=EUR&unit=gram会返回以欧元/克计的黄金买入价和卖出价。换算为其他基础货币时使用该货币的中间汇率;如果还需要加上外汇价差,请自行添加。 - 套餐。在 Free 和 Lite 套餐中,包含
-BID或-ASK品种的请求会返回错误106(plan_restriction)。与其他套餐限制一样,该请求不计费。 - 历史数据。历史端点(每日收盘价、时间序列、OHLC)返回的是中间价。买入价和卖出价只包含在最新报价中。
- AI 助手。如果您在 Claude 或 ChatGPT 中使用 MetalAPI,同样的后缀也适用于
get_latest_pricesMCP 工具的symbols参数。参见 AI 与 MCP。
正确展示报价
与金属价格有关的大多数错误发生在展示层,而不是数据本身。以下是一份简短的检查清单:
- 说明是哪种价格。为中间价做好标注(“现货价”或“中间价”)。如果同时展示买卖两侧,请从客户的角度标注:客户按卖出价买入,按买入价卖出。交易商网站常用“我们买入”和“我们卖出”,这是交易商的角度;在同一页面上混用两种约定会让人困惑。
- 注明单位和货币。单独一个“$3,997.89”含义不明,请写明“美元/金衡盎司”或“欧元/克”。尤其要注意盎司:在 MetalAPI 的
unit参数中,ounce和oz表示常衡盎司(28.35 克),而金银条按金衡盎司(troy_oz,默认值)定价。 - 注明时间。显示响应中
timestamp字段给出的报价时间,它是数据的时间,而不是您发出请求的时间。对于更新有延迟的套餐,请说明价格的刷新频率。 - 处理交易时间。现货金属和主要货币的交易时间为纽约时间周日 17:00 至周五 17:00。周末期间,MetalAPI 会持续返回周五的收盘价,因此请显示“已休市”提示,不要让冻结的价格看起来像实时价格。
- 只在展示时取整。计算时保留完整精度,到最后一步再取整。用取整后的买入价和卖出价计算出的价差,误差可能占到价差本身的很大比例。
- 防止报价倒挂。如果您自己的调整导致销售价低于回购价,请将其视为缺陷,并在修复之前停止报价。
- 说明价格仅供参考。来自数据 API 的价格只是信息,而不是交易要约。如果向客户展示这些价格,请明确说明以结账时或交易确认单上确认的价格为准。
综合以上要点,下面是一个小示例:它获取以欧元/克计的黄金中间价、买入价和卖出价,并附带标签和时间戳输出:
const res = await fetch(
"https://metalapi.com/api/v1/latest?base=EUR&unit=gram¤cies=XAU,XAU-BID,XAU-ASK",
{ headers: { Authorization: "Bearer " + process.env.METALAPI_KEY } },
);
const data = await res.json();
if (!data.success) throw new Error(data.error.code + ": " + data.error.info);
const r = data.rates;
const eur = new Intl.NumberFormat("en-GB", { style: "currency", currency: "EUR" });
const asOf = new Date(data.timestamp * 1000).toISOString();
console.log("Gold, EUR per gram, as of " + asOf);
console.log("Mid:", eur.format(r.EURXAU));
if (r["EURXAU-BID"] !== undefined && r["EURXAU-ASK"] !== undefined) {
console.log("You sell at (bid):", eur.format(r["EURXAU-BID"]));
console.log("You buy at (ask):", eur.format(r["EURXAU-ASK"]));
}速查表
| 术语 | 定义 |
|---|---|
| 现货价(Spot) | 即期交割的价格;在批发市场中,指交易后两个工作日结算 |
| 买入价(Bid) | 市场向您买入的价格 |
| 卖出价(Ask / Offer) | 市场向您卖出的价格 |
| 中间价(Mid) | (bid + ask) / 2;常用的参考价,也是 API 默认返回的价格 |
| 价差(Spread) | 卖出价减去买入价;通常以占中间价的百分比或基点表示 |
| 基点 | 0.01%,即百分之一个百分点 |
| 溢价 | 交易商针对实物产品在参考价之上的加价 |
| 金衡盎司 | 31.1034768 克;贵金属的计价单位 |
想亲自试一试?注册获取免费密钥即可使用中间价;包含买入价和卖出价的套餐请参见定价。API 文档列出了所有参数,数据格式与单位指南则更详细地介绍了基础货币、质量单位和倒数汇率。
继续阅读
通过 MCP 让 Claude 和 ChatGPT 获取实时金价
借助 MetalAPI MCP 服务器,让 Claude、ChatGPT、Cursor 和 VS Code 获取实时黄金及金属价格:OAuth 与 API 密钥两种接入方式、可用工具、安全设计和配额说明。
通过 API 获取铜、铝、锌和原油价格:开发者指南
通过 API 获取铜、铝、锌、钢材、原油和天然气价格:市场惯用单位与统一计价、近月期货的含义、单位与货币换算,并附代码示例。
如何选择贵金属价格 API:需要问清楚的 12 个问题
选择贵金属价格 API 的中立清单:数据来源、时效性、历史数据、单位、买卖价、调用限制、定价、安全、使用条款与 MCP 支持,并附对比模板和实测方法。