前阵子把黄金EA从原来的小机房迁出来,顺手做了件一直想干没干的事——写了个延迟测试脚本,把手上能试的8家VPS挨个跑了一遍。本来只是想看看哪家到IC Markets的ping值好看点,结果测完发现,真正拉开EA实盘表现的根本不是那几毫秒的平均延迟,而是抖动和订单往返的稳定性。我那个黄金头皮策略,在不同机房上跑同一段行情,滑点差了将近一个点,按0.1手算一个月下来够交半年VPS费了。
先说测试脚本本身,逻辑不复杂,MT4/MT5都能挂。核心就是用 OrderSend 发一个0.01手的挂单再立刻删掉,循环200次,记录每次从发出到回报的毫秒数,同时抓 GetTickCount 做本地时间戳。关键坑在这:一开始我只测了ping,用的系统自带命令,结果数据完全没参考价值——ping走的是ICMP,跟MT4实际走TCP到交易服务器的路径根本不是一回事。后来改成在EA里直接测订单往返,才拿到真实数据。另一个坑是别在行情活跃时段测,我头一次是伦敦开盘跑的,数据抖得没法看,后来统一挪到亚盘午休那段相对平静的时间,重复测三轮取中位数。
8家机房跑下来,大致能分三档,我按对比的形式说:
这里要重点说个反直觉的发现:平均延迟低不等于实盘滑点小。有一家平均才42ms,但抖动大,尖峰多,我那个黄金EA在它上面反而比平均60ms那家滑点还高。原因就是EA发单的瞬间如果撞上尖峰,那一单就废了。所以选VPS别只看商家标的那行ping值,一定要自己跑脚本看P95和P99分位,也就是最差那5%和1%的订单往返时间,这个才决定你实盘的极端滑点。
还有个坑得提醒:测试时把交易品种的点差和流动性考虑进去。我在测的时候正好赶上一次数据发布,同一家机房测出来的滑点比平时翻倍,差点误判。建议至少跨两个交易日、避开重大数据时段测,样本才有意义。另外MT5的EA记得用OnTimer配合测,别用OnTick,不然tick稀疏的时候采样点太少。
迁完之后我把黄金EA挪到了中档那家法兰克福机房,月费省了一半,滑点从原来的0.7个点降到0.45左右,净值曲线肉眼可见地平滑了些。当然这不是终点,我还在琢磨要不要上
你们平时选VPS都看哪些指标?有没有人跑过类似的脚本,测出来的数据和商家宣传差多少?贴出来一起对比下。
先说测试脚本本身,逻辑不复杂,MT4/MT5都能挂。核心就是用 OrderSend 发一个0.01手的挂单再立刻删掉,循环200次,记录每次从发出到回报的毫秒数,同时抓 GetTickCount 做本地时间戳。关键坑在这:一开始我只测了ping,用的系统自带命令,结果数据完全没参考价值——ping走的是ICMP,跟MT4实际走TCP到交易服务器的路径根本不是一回事。后来改成在EA里直接测订单往返,才拿到真实数据。另一个坑是别在行情活跃时段测,我头一次是伦敦开盘跑的,数据抖得没法看,后来统一挪到亚盘午休那段相对平静的时间,重复测三轮取中位数。
8家机房跑下来,大致能分三档,我按对比的形式说:
- 低延迟档:两家在伦敦LD4附近的,平均往返38-45ms,抖动小,200次里超过80ms的只有个位数。优点是黄金EA滑点基本控制在0.2-0.3个点,缺点是贵,同配置月费比普通机房高出一截,而且开户审核麻烦。
- 中档:三家在法兰克福和阿姆斯特丹的,平均55-70ms,但抖动明显大,偶尔会蹦出150ms的尖峰。滑点实测0.4-0.6个点。性价比最高,适合不追求极致但求稳定的策略。
- 普通档:两家在美东和一家亚洲的,平均90ms往上,尖峰能到300ms。黄金这种波动快的品种,滑点直接奔着一个点去了,头皮策略基本没法跑,但挂单型的中长线EA还能凑合。
这里要重点说个反直觉的发现:平均延迟低不等于实盘滑点小。有一家平均才42ms,但抖动大,尖峰多,我那个黄金EA在它上面反而比平均60ms那家滑点还高。原因就是EA发单的瞬间如果撞上尖峰,那一单就废了。所以选VPS别只看商家标的那行ping值,一定要自己跑脚本看P95和P99分位,也就是最差那5%和1%的订单往返时间,这个才决定你实盘的极端滑点。
还有个坑得提醒:测试时把交易品种的点差和流动性考虑进去。我在测的时候正好赶上一次数据发布,同一家机房测出来的滑点比平时翻倍,差点误判。建议至少跨两个交易日、避开重大数据时段测,样本才有意义。另外MT5的EA记得用OnTimer配合测,别用OnTick,不然tick稀疏的时候采样点太少。
迁完之后我把黄金EA挪到了中档那家法兰克福机房,月费省了一半,滑点从原来的0.7个点降到0.45左右,净值曲线肉眼可见地平滑了些。当然这不是终点,我还在琢磨要不要上
- 多机房冗余
- 按行情时段切换
你们平时选VPS都看哪些指标?有没有人跑过类似的脚本,测出来的数据和商家宣传差多少?贴出来一起对比下。
