先说个数据,我上周帮三个汇友排查EA不跑单的问题,最后发现两个都是VPS时区没同步,一个是因为MT4的DLL调用权限没开。这东西看着不起眼,但真能卡死你一整周。所以今天不聊基础安装,直接说部署阶段那些文档里不会写的事。
第一坑:VPS选型别只看核心数
很多人觉得2核4G跑个MT5绰绰有余,但如果你同时挂3个EA以上,或者用了带图表对象的策略,内存占用会飙升到2.5G以上。我自己的标准是 4G内存起步,CPU主频不低于2.8GHz,硬盘无所谓,但系统必须选Windows Server 2019或2022,别用Linux装Wine,延迟和兼容性都吃亏。另外,时区一定要设成UTC+2或UTC+3(取决于你的经纪商服务器),不然后台日志和你的本地时间错位,排查问题能疯掉。
再说部署流程。我习惯按这个顺序走,能少80%的幺蛾子:
这里有个我踩过的大坑:某次部署一个网格EA,本地模拟完美,上VPS后前两单正常,第三单突然不执行。查了半天发现是 经纪商服务器在周末调整了合约规格,而我EA里的固定手数没做动态校验。所以现在我的建议是,EA里所有涉及手数、止损、止盈的参数,一律用 变量引用账户杠杆和合约大小,别写死。另外,如果你用MT5,注意 填充模式(Filling Mode) 要设成IOC或FOK,很多ECN账户默认是Return,会导致部分成交时EA卡状态。
还有关于VPS的日常维护,我每周固定做三件事:首先,检查任务管理器里是否有残留的terminal进程,有时候崩溃后自动重启会挂两个实例,导致订单重复;然后,看网络延迟,用ping命令测你到经纪商服务器的RTT,超过80ms就得考虑换机房;还有,备份config和preset文件,别只备份ea和指标,有时候你调了半天的魔术号和注释规则全在preset里,丢了就白干。
最后说个容易被忽略的点:EA的日志里如果有 “trade context busy” 这样的报错,别急着改代码,先看是不是同时开了多个EA共用一个交易信号。我见过有人把两个不同策略的EA挂同一个图表,结果互相锁单,最后只能逐个禁用排查。还有,如果用了外部DLL库,记得在MT4的 工具-选项-智能交易系统 里勾选“允许DLL导入”,不然API调用会静默失败,你根本不知道。
就说这么多吧,你们部署时遇到最诡异的报错是什么?我看看有没有遇到过类似的,说不定能帮你省几天排查时间。
第一坑:VPS选型别只看核心数
很多人觉得2核4G跑个MT5绰绰有余,但如果你同时挂3个EA以上,或者用了带图表对象的策略,内存占用会飙升到2.5G以上。我自己的标准是 4G内存起步,CPU主频不低于2.8GHz,硬盘无所谓,但系统必须选Windows Server 2019或2022,别用Linux装Wine,延迟和兼容性都吃亏。另外,时区一定要设成UTC+2或UTC+3(取决于你的经纪商服务器),不然后台日志和你的本地时间错位,排查问题能疯掉。
再说部署流程。我习惯按这个顺序走,能少80%的幺蛾子:
- 先在本地用模拟账户跑满24小时,观察drawdown和浮盈曲线,确认逻辑稳定
- 把MT4/MT5装到VPS后,先关掉所有指标和EA,只开图表,跑半小时看CPU占用基线
- 挂上EA后,用 可视模式 盯前20分钟,重点看下单延迟和点差滑点是否异常
- 设置好 日志轮转,MT4的log文件默认无限增长,两周就能吃掉几个G,记得在配置里限制大小
- 最后必须测试断线重连,手动拔网线模拟,确认EA能自动恢复挂单状态
这里有个我踩过的大坑:某次部署一个网格EA,本地模拟完美,上VPS后前两单正常,第三单突然不执行。查了半天发现是 经纪商服务器在周末调整了合约规格,而我EA里的固定手数没做动态校验。所以现在我的建议是,EA里所有涉及手数、止损、止盈的参数,一律用 变量引用账户杠杆和合约大小,别写死。另外,如果你用MT5,注意 填充模式(Filling Mode) 要设成IOC或FOK,很多ECN账户默认是Return,会导致部分成交时EA卡状态。
还有关于VPS的日常维护,我每周固定做三件事:首先,检查任务管理器里是否有残留的terminal进程,有时候崩溃后自动重启会挂两个实例,导致订单重复;然后,看网络延迟,用ping命令测你到经纪商服务器的RTT,超过80ms就得考虑换机房;还有,备份config和preset文件,别只备份ea和指标,有时候你调了半天的魔术号和注释规则全在preset里,丢了就白干。
最后说个容易被忽略的点:EA的日志里如果有 “trade context busy” 这样的报错,别急着改代码,先看是不是同时开了多个EA共用一个交易信号。我见过有人把两个不同策略的EA挂同一个图表,结果互相锁单,最后只能逐个禁用排查。还有,如果用了外部DLL库,记得在MT4的 工具-选项-智能交易系统 里勾选“允许DLL导入”,不然API调用会静默失败,你根本不知道。
就说这么多吧,你们部署时遇到最诡异的报错是什么?我看看有没有遇到过类似的,说不定能帮你省几天排查时间。
