什么是终端延迟(Ping)?与交易服务器之间的往返时间
终端延迟(ping)是 MetaTrader 终端与经纪商交易服务器之间的往返时间,也就是一个数据包发出去再回来要多久,单位是毫秒。它取决于网络路径,与上面跑的策略无关:在这段空档里,您请求的价格只是一个愿望。MetaTrader 以微秒报告这个值,ShowMyTrades 换算成毫秒并保留一位小数,所以 12,245 µs 显示为 12.2 ms。
工作原理
终端会记下最近一次测到的、与交易服务器之间的往返时间。订单的每一步,都叠加在这个时间之上。
Ping (ms) = 终端 ↔ 交易服务器之间最近一次测得的往返时间
订单延迟 ≈ ping/2 (请求发出)
+ 经纪商撮合与校验
+ ping/2 (确认返回)
三项里只有中间那一项归经纪商。第一项和第三项取决于地理位置和路由,所以同一家经纪商,同一数据中心里的终端读数是 3 ms,地球另一端的家庭网络则是 280 ms。
参考区间:
- 低于 50 ms:优秀,卡片的提示框里用的就是这个词。通常是离经纪商数据中心很近的 VPS。
- 50 到 150 ms:家庭或办公室网络连接区域服务器的正常水平。
- 高于 200 ms(提示框的警告阈值):订单执行明显变慢,实际滑点扩大。
这些到底有多要紧,取决于一个区别。止损单和止盈单存放在交易服务器上,不在终端里,所以连接再差也会照常触发。Ping 只会拖慢由终端发起的操作:开仓、手动平仓、改单,以及所有写在 EA(智能交易系统)内部、而不是作为服务器端订单存在的追踪逻辑。
为什么重要
在市价执行下,延迟会直接变成成本:成交价是请求到达那一刻的价格,而不是请求发出时屏幕上的那个价格。200 ms 的往返就是五分之一秒,这段时间里市场可以随意变动,而且偏偏在订单最要紧的时候动得最厉害。
这五分之一秒贵不贵,完全看目标。持仓几个小时、瞄准五十点行情的单子,根本感觉不到。目标只有三到五点的系统,同样的时间里可能丢掉相当一部分优势,而且笔笔如此。回测对此只字不提:回测里永远按请求价格瞬间成交。
怪经纪商之前,先看 ping。读数 300 ms 时成交差,其实是网络问题,只是顶着经纪商的名字。
数据显示了什么
以下数字只描述在 ShowMyTrades 上发布的账户,不代表交易者整体。只有所有者自己的终端运行我们的 EA,才会有终端读数;而 1 万+ 个已连接的账户中,绝大多数用的是 MetaTrader。cTrader 和 TradeLocker 账户通过经纪商的 API 连接,没有本地终端,也就没有 ping 可报。
这批账户对延迟非常敏感。自动交易占比的中位数为 99%,53.9% 的账户自动化程度超过 90%,几乎每个订单都是程序发出的,一路往返,没有人停下来核对价格。这些账户连接着 703 个不同的经纪商服务器,并不存在统一的延迟环境。
持仓时间中位数为 2.4 小时,处于中位数的账户,根本到不了毫秒定胜负的程度。以秒为单位交易的那部分账户,才是这个数字值得放在页面上的原因。
在 ShowMyTrades 上的位置
Ping 是终端面板六个卡片中的第一个,在账户所有者自己的控制台里、该账户的页面上。MT5 上标题为终端与已打开的图表,因为终端还会报告已打开的图表;MT4 上标题只是终端,因为 MT4 的 EA 不收集这份列表。其余卡片是重传、终端版本号、内存、自动交易和 DLL 导入。
标题旁边有状态徽章(已连接、未连接交易服务器或离线),以及读数是多久以前的。数据新不新说了算,标志说了不算:超过 11 分钟没有更新,账户就会显示为离线,不管终端最后报告的是什么。
有两个限制要注意。这个面板只有所有者能看到,提供数据的接口会拒绝访问别人的账户,所以终端读数,包括已打开图表上的 EA 名称,从不出现在公开页面或小组件中。另外,它只适用于 MetaTrader:cTrader 和 TradeLocker 账户没有终端;终端报告过一次之前,这个面板也根本不会显示。
常见误解
- “Ping 低,经纪商就好。”它衡量的是路径,不是交易对手。读数 2 ms、成交却很差的服务器,不过是一条通往坏价格的快车道。
- “一次读数就能说明问题。”它只是最近一次同步时的值。稳定比数值本身更重要,而稳定性正是重传补上的信息。
- “有了 VPS,执行就没问题了。”VPS 解决的是网络路径。撮合速度、报价源和点差政策,一样都没变。
同一段往返,如果从网络的角度而不是从这个卡片的角度来讲,就是服务器延迟。同一策略在两家经纪商运行时,怎样把延迟和成本分开看,见同一策略、两家经纪商、不同结果。