有没有人遇到过MT5挂着一台VPS跑EA,结果半夜VPS宕机,第二天起来发现错过了一整段欧美单边行情?我之前就吃过这个亏,后来折腾出一套双VPS热备方案,今天把配置过程和踩过的坑捋一捋,顺便对比几种思路的优劣。
先说清楚我的场景:MT5上跑的是镑美和欧美的多品种对冲EA,两品种相关系数我回测区间算下来大概0.78,对冲比率按1.3配的,对执行连续性要求比较高,断个十几分钟价差就可能跑偏。所以热备的目标很明确——主VPS挂掉后,备用机能自动接管,MT5重新加载EA并恢复持仓管理,中间尽量少人工干预。
方案一:纯手动切换。两台VPS都装好MT5、登好同一个账户,EA参数文件提前同步。主VPS出问题后,手动远程登录备用机启动终端。优点是配置简单、不用写脚本,缺点是切换延迟完全看人,半夜出事基本抓瞎,而且MT4/MT5同一账户多终端登录时,备用机那边的EA如果没设成只读管理,容易和主端抢着发单。我早期就这么干过,结果两边同时平仓,多平了一笔,教训很直接。
方案二:主备+定时任务探测。在主VPS上跑一个轻量脚本,定时往备用机发心跳;备用机用Windows计划任务检测心跳超时后自动启动MT5。这里的关键参数是心跳间隔和超时阈值,我一开始设成10秒探测、30秒超时,结果网络抖动误触发了一次切换,备用机把EA拉起来的时候主端其实还活着,两边短暂同时持仓。后来改成探测间隔15秒、连续3次失败才判定宕机,并且备用机启动前先检查MT5进程和账户持仓状态,误切才压下去。这个方案性价比高,但脚本要自己维护,MT5终端路径、配置文件路径、EA参数都得写死,换机器就得改。
方案三:主备+共享状态文件。两台VPS通过一个中间存储同步EA的运行状态和持仓快照,备用机只有在确认主端状态文件超过阈值没更新时才接管。优点是切换判断更可靠,缺点是多了同步环节,状态文件写入频率别太高,我试过每秒写一次,磁盘IO直接把VPS拖慢,后来改成5秒一次才稳。另外MT5的EA参数里如果有品种间对冲比率这类动态变量,同步时要一起带过去,不然备用机接管的瞬间对冲比例会对不上。
实操步骤我按方案二+三混合来的,大致是:
踩过的坑里最坑的是MT5配置文件路径,不同安装方式下EA参数存的位置不一样,备用机启动时读不到参数直接裸跑,镑美上差点开出反向单。还有VPS的系统时间同步一定要开,两台机器时间差超过几秒,心跳判断就会乱。
你们现在是用单VPS硬扛还是也上了热备?有没有更稳的切换判断思路,一起聊聊。🙂
先说清楚我的场景:MT5上跑的是镑美和欧美的多品种对冲EA,两品种相关系数我回测区间算下来大概0.78,对冲比率按1.3配的,对执行连续性要求比较高,断个十几分钟价差就可能跑偏。所以热备的目标很明确——主VPS挂掉后,备用机能自动接管,MT5重新加载EA并恢复持仓管理,中间尽量少人工干预。
方案一:纯手动切换。两台VPS都装好MT5、登好同一个账户,EA参数文件提前同步。主VPS出问题后,手动远程登录备用机启动终端。优点是配置简单、不用写脚本,缺点是切换延迟完全看人,半夜出事基本抓瞎,而且MT4/MT5同一账户多终端登录时,备用机那边的EA如果没设成只读管理,容易和主端抢着发单。我早期就这么干过,结果两边同时平仓,多平了一笔,教训很直接。
方案二:主备+定时任务探测。在主VPS上跑一个轻量脚本,定时往备用机发心跳;备用机用Windows计划任务检测心跳超时后自动启动MT5。这里的关键参数是心跳间隔和超时阈值,我一开始设成10秒探测、30秒超时,结果网络抖动误触发了一次切换,备用机把EA拉起来的时候主端其实还活着,两边短暂同时持仓。后来改成探测间隔15秒、连续3次失败才判定宕机,并且备用机启动前先检查MT5进程和账户持仓状态,误切才压下去。这个方案性价比高,但脚本要自己维护,MT5终端路径、配置文件路径、EA参数都得写死,换机器就得改。
方案三:主备+共享状态文件。两台VPS通过一个中间存储同步EA的运行状态和持仓快照,备用机只有在确认主端状态文件超过阈值没更新时才接管。优点是切换判断更可靠,缺点是多了同步环节,状态文件写入频率别太高,我试过每秒写一次,磁盘IO直接把VPS拖慢,后来改成5秒一次才稳。另外MT5的EA参数里如果有品种间对冲比率这类动态变量,同步时要一起带过去,不然备用机接管的瞬间对冲比例会对不上。
实操步骤我按方案二+三混合来的,大致是:
- 两台VPS都装MT5,账户登录好,EA挂到图表上但备用机先设为暂停状态
- 主VPS跑心跳脚本,备用机跑检测脚本,心跳文件写到中间存储,别走局域网
- 备用机检测到连续超时后,先杀残留MT5进程,再按预设路径启动终端并加载EA
- EA里加一个启动自检逻辑,读一次当前持仓和挂单,确认和状态快照一致再开始发单
- 切换后主VPS恢复时不要自动抢回,手动确认后再切,避免来回抖动
踩过的坑里最坑的是MT5配置文件路径,不同安装方式下EA参数存的位置不一样,备用机启动时读不到参数直接裸跑,镑美上差点开出反向单。还有VPS的系统时间同步一定要开,两台机器时间差超过几秒,心跳判断就会乱。
你们现在是用单VPS硬扛还是也上了热备?有没有更稳的切换判断思路,一起聊聊。🙂
