说实话,MT5虚拟主机这玩意儿,我一开始是瞧不上的。总觉得VPS那点配置,跑个EA跟老牛拉破车似的,不如自己电脑稳当。结果去年年底,我那个跑黄金的EA在凌晨两点半给我来了个断线重连,单子卡在服务器端没发出去,直接错过了一波180点的行情。从那以后我才明白,对于咱们这种搞自动化交易的,虚拟主机不是选配,是刚需。
先说说我踩过的第一个坑,就是选机房位置。很多人图便宜,选个香港或者新加坡的廉价VPS,觉得离得近延迟就低。但实际上,如果你的经纪商服务器在伦敦,那香港到伦敦的物理距离摆在那儿,延迟再优化也下不来。我后来换成了经纪商同地域的机房,比如我用的那家英国券商,我就选伦敦的VPS,延迟直接从120ms降到了8ms。这个事儿,选机房位置,务必以经纪商服务器所在地为准,别管VPS商宣传的多天花乱坠,延迟实测数据骗不了人。
接着说部署步骤,其实MT5虚拟主机部署比MT4要省心不少,但有几个细节新手容易忽略。我现在的流程是这样:
再说说VPS配置参数,别听VPS商忽悠什么2核4G够用了。我实测下来,跑三个的EA,尤其是带图表优化或者多品种对冲的,2核4G肯定卡,CPU经常100%,延迟波动会很大。我现在的配置是4核8G,跑五个EA外加一个监控脚本,CPU占用稳定在40%左右。内存方面,MT5本身吃内存不大,但如果你开了很多图表,每个图表都挂EA,内存占用就会上去。另外,硬盘一定选SSD,不是NVMe也没关系,但机械硬盘绝对不行,回测数据读写频繁,机械硬盘会让你等到怀疑人生。
踩过的第二个坑是关于掉线的。有段时间我的EA总是隔几天就掉一次线,日志里显示“connection lost”,但VPS上的网络明明是通的。后来排查发现,是MT5自带的“网络超时设置”太短了。默认好像是20秒还是30秒,如果你网络抖动稍微大一点,它就自动断线重连了。我把这个值改成了60秒,在config目录下的common.ini里,找到Timeout的值,改成60000,这个问题就再没出现过。另外,别忘了在VPS上装一个TeamViewer或者AnyDesk,方便你远程排查,但用完之后记得退出,不然占内存。
最后说一句关于监控的。虚拟主机跑起来之后,别以为就万事大吉了。我建议你在VPS上挂一个简单的定时任务,比如每隔五分钟ping一下经纪商的服务器IP,通了就记录一下,不通就发个邮件或者TG消息通知你。我用的一个免费脚本就能实现,网上搜“MT5 VPS ping monitor”就有很多现成的。这样就算半夜出问题,你也能第一时间知道,不至于第二天起来才发现单子全没了。我现在基本上每周会登录一次VPS看看日志,清理一下日志文件,毕竟日志文件越来越大,占硬盘也影响性能。
有汇友可能会问,VPS上跑EA,是不是还要考虑跟经纪商的连接稳定性?对,这就要看你选的VPS商本身线路质量了。我目前用的这家,客服响应还算快,但有一次机房网络割接也没提前通知,导致我损失了一单。所以,有条件的话,最好搞一个备用VPS,哪怕配置低点,做个热备,把EA和设置文件都同步过去,主VPS一挂,立刻切换。这算是老手的一点小偏执吧,你们觉得有没有必要?还是说有其他更省心的方案?
先说说我踩过的第一个坑,就是选机房位置。很多人图便宜,选个香港或者新加坡的廉价VPS,觉得离得近延迟就低。但实际上,如果你的经纪商服务器在伦敦,那香港到伦敦的物理距离摆在那儿,延迟再优化也下不来。我后来换成了经纪商同地域的机房,比如我用的那家英国券商,我就选伦敦的VPS,延迟直接从120ms降到了8ms。这个事儿,选机房位置,务必以经纪商服务器所在地为准,别管VPS商宣传的多天花乱坠,延迟实测数据骗不了人。
接着说部署步骤,其实MT5虚拟主机部署比MT4要省心不少,但有几个细节新手容易忽略。我现在的流程是这样:
- 第一步,先确定你的VPS系统。别用Windows Server 2022那种花里胡哨的,用Windows Server 2019或者2022标准版就行,但务必关闭自动更新。系统更新这玩意儿,半夜给你重启一下,EA全停了,哭都来不及。我吃过这个亏,后来直接组策略里把更新服务禁用了。
- 第二步,安装MT5,这里有个关键点,安装路径不要用默认的C盘Program Files,我习惯装到D盘根目录,比如D:\MT5。因为有些EA会读写DLL文件,路径带空格或者权限限制,容易触发杀毒误报。装完以后,右键主程序,属性里勾选“以管理员身份运行”,这个很重要,否则EA调API接口的时候会报权限错误。
- 第三步,就是最关键的一步,配置EA的运行环境。很多人直接双击EA就完事了,其实不对。你要先打开MT5的“工具-选项-EA交易”,把“允许算法交易”打勾,然后
- 里再勾选“允许DLL导入”。如果EA用了自定义指标,还得去“常用”标签页里,把“允许导入自定义指标”也打开。这三个勾缺一个,EA要么不跑,要么跑着跑着就给你报个error 138。
再说说VPS配置参数,别听VPS商忽悠什么2核4G够用了。我实测下来,跑三个的EA,尤其是带图表优化或者多品种对冲的,2核4G肯定卡,CPU经常100%,延迟波动会很大。我现在的配置是4核8G,跑五个EA外加一个监控脚本,CPU占用稳定在40%左右。内存方面,MT5本身吃内存不大,但如果你开了很多图表,每个图表都挂EA,内存占用就会上去。另外,硬盘一定选SSD,不是NVMe也没关系,但机械硬盘绝对不行,回测数据读写频繁,机械硬盘会让你等到怀疑人生。
踩过的第二个坑是关于掉线的。有段时间我的EA总是隔几天就掉一次线,日志里显示“connection lost”,但VPS上的网络明明是通的。后来排查发现,是MT5自带的“网络超时设置”太短了。默认好像是20秒还是30秒,如果你网络抖动稍微大一点,它就自动断线重连了。我把这个值改成了60秒,在config目录下的common.ini里,找到Timeout的值,改成60000,这个问题就再没出现过。另外,别忘了在VPS上装一个TeamViewer或者AnyDesk,方便你远程排查,但用完之后记得退出,不然占内存。
最后说一句关于监控的。虚拟主机跑起来之后,别以为就万事大吉了。我建议你在VPS上挂一个简单的定时任务,比如每隔五分钟ping一下经纪商的服务器IP,通了就记录一下,不通就发个邮件或者TG消息通知你。我用的一个免费脚本就能实现,网上搜“MT5 VPS ping monitor”就有很多现成的。这样就算半夜出问题,你也能第一时间知道,不至于第二天起来才发现单子全没了。我现在基本上每周会登录一次VPS看看日志,清理一下日志文件,毕竟日志文件越来越大,占硬盘也影响性能。
有汇友可能会问,VPS上跑EA,是不是还要考虑跟经纪商的连接稳定性?对,这就要看你选的VPS商本身线路质量了。我目前用的这家,客服响应还算快,但有一次机房网络割接也没提前通知,导致我损失了一单。所以,有条件的话,最好搞一个备用VPS,哪怕配置低点,做个热备,把EA和设置文件都同步过去,主VPS一挂,立刻切换。这算是老手的一点小偏执吧,你们觉得有没有必要?还是说有其他更省心的方案?
