返回博客

什么是市场中间汇率?买入价、卖出价与点差详解

V
Vlado Grigirov
November 08, 2026
Currency API Exchange Rates Mid-Market Rate Bid Ask Spread Educational Finexly

你在 Google 上查到一个汇率,然后在银行、信用卡发卡机构和支付应用里却看到了不同的数字。Google 上显示的通常是市场中间汇率(mid-market rate),而它与你实际被收取的汇率之间的差距,正是货币兑换成本的主要藏身之处。如果你开发的产品涉及多种货币的资金,理解这个差距就不是可选项。

本指南将解释什么是市场中间汇率、它与买入价(bid)、卖出价(ask)和点差(spread)的关系、为什么普通消费者很少能获得它,以及如何借助 Finexly API 文档 中的端点在代码中使用它。

什么是市场中间汇率?

市场中间汇率(也称中间价、银行间汇率或即期中间价)是买方愿意买入某种货币的价格与卖方愿意卖出该货币的价格之间的中点。它是市场上最接近某一货币对在特定时刻"公允"价格的数字,不含任何费用或加价。

每个货币对都有两个报价:

  • Bid(买入价):交易商向你买入基础货币的价格。
  • Ask(卖出价,或称报价):交易商向你卖出基础货币的价格。

卖出价始终高于买入价。市场中间汇率正好位于两者的中间。

mid = (bid + ask) / 2
spread = ask - bid

例如,如果 EUR/USD 的买入价为 1.0840、卖出价为 1.0842,则中间汇率为 1.0841,点差为 0.0002,即 2 个点(pip)。这些数字仅用于举例说明。如果你对 pip 还不熟悉,请阅读我们的外汇中的 pip 是什么指南。

买入价、卖出价与点差:每个报价背后的三个数字

点差是即时成交的价格。随时准备买入和卖出的交易商要承担库存风险,因此会在买入价和卖出价之间收取一小段差价。在主要货币对深度充足的银行间市场,点差可能只有零点几个 pip。对于冷门货币对或流动性不足的市场,点差会明显扩大。

通常有三个因素决定点差的大小:

  1. 流动性:EUR/USD、USD/JPY 等交易活跃的货币对点差很窄,冷门货币对点差很宽。参见主要、次要和冷门货币对。
  2. 波动性:在央行决议或重要数据公布前后,交易商会扩大点差以自我保护。
  3. 交易规模与时间:在主要交易时段之外以及周末,点差通常更宽。

市场中间汇率与你实际获得的汇率

接下来是令人不舒服的部分。市场中间汇率是一个参考点,而不是你通常能够成交的价格。零售客户很少能拿到它,因为服务商总得在某处赚钱。典型的零售汇率是这样构成的:

customer_rate = mid_rate × (1 - markup)     # when the customer sells the base currency
customer_rate = mid_rate × (1 + markup)     # when the customer buys the base currency

加价是叠加在任何明示费用之上的。这就是为什么宣称"零手续费"的服务商仍然可能很贵:成本已经嵌入了汇率之中。对比服务商的诚实方法,是以市场中间汇率为基准衡量总成本:

cost_pct = (mid_rate - customer_rate) / mid_rate × 100

请注意,有些服务商确实按市场中间汇率兑换,并另外收取透明的费用。两种模式都可以是公平的;关键在于你能看到并比较总成本。同样的逻辑也适用于境外刷卡支付,其中的动态货币转换(DCC)往往会加上一大笔隐藏的加价。

市场中间汇率从何而来?

并不存在唯一官方的市场中间汇率。外汇市场是去中心化的场外市场。银行、交易商和交易平台各自发布报价,数据供应商再对其进行聚合。你在网上看到的"市场中间汇率",通常是多个流动性来源的混合结果,在交易时段内持续刷新,因此两家服务商在同一时刻显示的数值可能略有不同。

此外还有针对一天中固定时点的基准,例如用于投资组合估值的伦敦下午 4 点定盘价。想深入了解数据供应商如何生成这些数字,请阅读汇率 API 的数据从哪里来。

为什么开发者应该关心市场中间汇率

如果你在构建处理多种货币的产品,市场中间汇率就是你的参考汇率。常见用途包括:

  • 展示价格:在商品页面向客户展示参考换算价格。
  • 透明收费:把中间汇率与你收取的汇率并排展示,让加价清晰可见。
  • 会计与报告:以统一的基准对余额重新估值,并记录损益。
  • 利润率控制:计算每笔兑换你实际赚取了多少加价。
  • 审计服务商:发现支付合作伙伴的汇率何时偏离市场。

一条实用规则:分别存储中间汇率和实际适用汇率。如果只保存收取的汇率,之后就无法证明你的加价是多少。

使用 Finexly 获取市场中间汇率

一次请求即可获取实时汇率:

curl "https://api.finexly.com/v1/latest?base=EUR&symbols=USD&apikey=YOUR_API_KEY"

Python:计算你的加价和客户汇率

import requests

API_KEY = "YOUR_API_KEY"

def get_mid_rate(base: str, quote: str) -> float:
    r = requests.get(
        "https://api.finexly.com/v1/latest",
        params={"base": base, "symbols": quote, "apikey": API_KEY},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()["rates"][quote]

def customer_quote(amount: float, base: str, quote: str, markup_pct: float):
    mid = get_mid_rate(base, quote)
    applied = mid * (1 - markup_pct / 100)
    return {
        "mid_rate": mid,
        "applied_rate": applied,
        "customer_receives": round(amount * applied, 2),
        "markup_cost": round(amount * (mid - applied), 2),
    }

print(customer_quote(1000, "EUR", "USD", markup_pct=1.5))

把 API 返回的汇率视为你的参考中间汇率,并在其上叠加你自己明确的加价。请遵循我们的货币舍入指南来控制小数位。

JavaScript:向用户展示汇率对比

const API_KEY = "YOUR_API_KEY";

async function compareRates(base, quote, providerRate) {
  const res = await fetch(
    `https://api.finexly.com/v1/latest?base=${base}&symbols=${quote}&apikey=${API_KEY}`
  );
  const { rates } = await res.json();
  const mid = rates[quote];
  const hiddenCostPct = ((mid - providerRate) / mid) * 100;
  return { mid, providerRate, hiddenCostPct: hiddenCostPct.toFixed(2) };
}

compareRates("EUR", "USD", 1.0680).then(console.log);

如何以市场中间汇率为基准比较服务商

一个简单、可重复的方法适用于任何兑换:

  1. 在服务商报价的同一时刻,获取该货币对的市场中间汇率。
  2. 计算按中间汇率你本应收到的金额。
  3. 计算扣除费用和加价后服务商实际给你的金额。
  4. 将差额除以按中间汇率计算的金额,得到总成本百分比。

请在不同时间点多做几次,因为点差会时宽时窄。历史数据有助于你获得跨越数周的公允图景,而不只是一次快照;参见我们的历史汇率 API 指南。

需要避免的常见错误

  • 把中间汇率当作可成交价格。 它只是参考。真实交易发生在买入价或卖出价上。
  • 混淆反向汇率。 当你自己的定价涉及点差时,EUR/USD 的中间价并不严格等于 USD/EUR 中间价的倒数。选定一个方向并保持一致。
  • 缓存时间过长。 汇率时刻在变。根据使用场景缓存几秒或几分钟,而不是几小时。
  • 把加价藏在汇率里。 许多市场的监管机构越来越要求清晰披露成本。展示中间汇率是一种信任信号。
  • 过早舍入。 只对最终金额舍入,不要对中间汇率舍入。

常见问题

简单来说,什么是市场中间汇率?

它是全球市场上某一货币对买入价与卖出价之间的中点。它不含费用或加价,因此是衡量公平性的有用基准。

市场中间汇率和银行间汇率是一回事吗?

两者几乎可以互换使用。它们都描述银行和交易商之间相互交易所围绕的汇率,不过不同数据源的具体数值会略有差异。

为什么银行不给我市场中间汇率?

银行和支付服务商通过每笔兑换的点差和加价赚钱。有些服务商使用中间汇率并收取明示费用,所以务必比较总成本。

如何找到某个货币对的真实市场中间汇率?

使用可靠的实时数据源(例如货币 API),并与你得到的报价进行比较。两者的百分比差异就是你的实际成本。

我可以通过 API 获取市场中间汇率吗?

可以。货币 API 会返回实时参考汇率,你可以将其用作中间汇率,再叠加自己的加价,或与第三方报价进行比较,如上面的代码所示。

构建透明的货币定价

准备好把实时汇率集成到你的项目中了吗?获取免费的 Finexly API 密钥,无需信用卡。每月可免费使用 1,000 次请求,随着业务增长可通过我们的价格方案升级。你也可以在编码前使用货币换算器核对任意汇率,或比较货币 API找到最适合你的方案。

Vlado Grigirov

Senior Currency Markets Analyst & Financial Strategist

Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...

View full profile →