Skip to main content
当你第一次打开交易平台的报价窗口,映入眼帘的是一串不断跳动的数字——这些就是市场实时报价。但你可能很快就会产生疑问:价格后面到底有几位小数?「点数」和「Pip」是同一回事吗?EA 里设置止损 50 点,实际是多少钱?这篇文章将帮你彻底理清 MT4/MT5 中报价与点数的逻辑,为你后续的 EA 开发和手动交易打下坚实基础。

报价怎么看

MT4/MT5 的报价窗口(市场报价)默认展示每个品种的 Bid(卖出价)Ask(买入价)。两者之间的差值就是点差(Spread),这是经纪商的主要收入来源之一。

Bid(卖出价)

你以此价格卖出(做空开仓或平多仓)。通常是两个报价中较低的那个。

Ask(买入价)

你以此价格买入(做多开仓或平空仓)。通常是两个报价中较高的那个。
4 位报价 vs 5 位报价: 目前绝大多数 MT4/MT5 经纪商使用 5 位报价(也称「精准报价」),最后一位(第 5 位小数)被称为「分点」,精度是传统 4 位报价的 10 倍。

什么是点数(Point)

在 MT4/MT5 中,Point(点) 是价格报价的小数点最后一位的 1 个单位。 (注意:Point 是价格显示的最小精度,而价格实际变动的最小步长称为 Tick Size。在很多外汇品种中 1 Tick Size = 1 Point,但在某些股指或加密货币中,Tick Size 可能是 5 Points 或 10 Points,即价格只能以 5 或 10 的倍数跳动。)
  • 对于 5 位报价经纪商(EURUSD):1 Point = 0.00001
  • 对于 4 位报价经纪商(EURUSD):1 Point = 0.0001
你可以在平台的品种规格窗口中找到「点值(Point Size)」字段来确认当前经纪商的精度。
在 MQL4/MQL5 代码中,_Point 是一个内置变量,代表当前品种的最小价格变动单位。编写 EA 时,止损/止盈的距离通常用 n * _Point 来表示。

Pip 与 Point 的区别

「Pip」是外汇交易中的传统计量单位,历史上对应 4 位报价的最小变动。进入 5 位报价时代后,Pip 与 Point 出现了区别:
在编写 EA 时,如果你直接填写「止损 = 50」,在 5 位报价经纪商上实际只有 5 个 Pip 的止损距离,而不是 50 个 Pip。务必根据经纪商报价位数来换算参数值。
以下是一个直观的对比示例:
在 EA 参数里设置止损/止盈时,通常以 Point 为单位,要注意区分经纪商是 4 位还是 5 位报价。建议在 EA 中加入自动检测逻辑:if(_Digits == 5 || _Digits == 3) pipSize = 10 * _Point;

不同品种的点数

Point 的实际含义因品种而异,不同资产类别的小数位数各不相同:

点值计算

知道了 Point 的大小,接下来要了解每个 Point 对应多少钱——即点值(Point Value)
1

确认合约规模

从品种规格中查看合约规模,例如 EURUSD 为 100,000 单位/手。
2

确认计价货币

EURUSD 的盈亏以 USD 计算;USDJPY 的盈亏以 JPY 计算(需换算)。
3

套用公式

EURUSD 示例(1 手):
点值 = 100,000 × 0.00001 × 1 = **1/Point(即每pip1 / Point**(即每 pip 约 10)
XAUUSD 示例(1 手):
点值 = 100 × 0.01 × 1 = $1 / Point
注意: 上述“合约规模 × Point 大小”的公式,仅计算单手的点值,且主要适用于外汇直盘和部分交叉盘,不能作为所有 MT5 品种的通用公式。计算实际订单的点值盈亏还需乘以手数。实际交易中,点值计算还涉及:
  • 盈亏货币与账户货币之间的实时汇率转换
  • 经纪商设定的 SYMBOL_TRADE_TICK_SIZESYMBOL_TRADE_TICK_VALUE
  • 不同资产类别(外汇、股票、指数、期货、CFD)的特定合约计算模式
对于 EA 开发者:强烈建议不要在代码中硬编码上述外汇公式,而应使用 MT5 内置的 OrderCalcProfitOrderCalcMargin 函数。这些函数会自动考虑当前账户环境、品种规格和实时汇率,提供完全精确的计算结果。
MT5 在开仓前会在订单界面显示预估的「1 点价值」(MT4 需通过第三方脚本或 EA 查看),你也可以在策略测试器的交易明细中查看每笔交易的实际点值,这是验算 EA 盈亏逻辑的好方法。