如何自动检测VPS崩溃(避免损失金钱)💔

想象一下,你醒来后发现过去 6 个小时没有任何新的交易记录。你的 EA 并没有出故障——而是你的VPS 服务器悄无声息地崩溃了。这种情况比交易者预想的要频繁得多,而且通常只有在错失良机或遭受本可避免的资金回撤之后才会被发现。
声明:我是监控EA EquityTracker MT5的作者。本文主要解释VPS崩溃检测的工作原理,稍后会展示像EquityTracker MT5这样的EA如何简化这一过程。
好消息是:您可以提前很久就自动检测到 MT5 和 VPS 崩溃,避免造成高昂的费用。本指南将解释崩溃发生的原因、心跳监控的工作原理,以及如何构建可靠的 MT5 崩溃检测系统。
本指南适用于哪些人群
- 交易员在虚拟专用服务器上 24/7 全天候运行 EA 程序。
- 自营交易员必须避免违反停机时间规定
- 任何运行多个MT5终端或账户的人
- 任何想要快速可靠的EA正常运行时间监控的人
VPS崩溃的常见症状
- 账户长时间没有新交易
- MT5 日志和专家日志停止更新
- 您的EA未发出任何警报。
- 权益曲线趋于平缓
- 远程桌面运行缓慢或无响应
为什么会发生VPS和MT5崩溃?

图 1 – VPS 和 MT5 可能出现故障的典型技术原因。
即使是高质量的VPS服务商也会偶尔出现服务中断。常见原因包括:
- VPS服务器过载:共享服务器超售会导致性能下降或卡顿。
- 内存/CPU 使用率过高:大型指标、tick 图表或大型日志可能会导致 MT5 卡死。
- 网络中断:网络服务提供商问题、数据中心故障、路由问题。
- Windows 更新/强制重启:廉价 VPS 套餐出现突然重启的情况。
- 终端冻结:通常是由未关闭的脚本、指标或回测程序引起的。
由于 MT5 没有内置崩溃警报,大多数交易者只能在几个小时后才注意到这个问题。
最可靠的解决方案:外部监控
检测MT5或VPS故障最有效的方法是定期向外部系统发送心跳信号。当心跳信号停止时,系统会发出警报。
- 您的EA每隔X分钟发送一条消息(“我还活着”)。
- 如果 MT5 冻结或 VPS 崩溃,心跳就会停止。
- 您将立即在 Telegram、Discord、电子邮件或控制面板上收到提醒。

图 2 – 心跳流程:MT5 → 外部显示器 → Telegram/Discord/电子邮件警报。
该方法适用于任何经纪商或 VPS,是监控 MT5 正常运行时间的最可靠方法。
监测VPS健康状况的方法
为了获得最佳保护,请结合使用以下两种或多种方法。所有这些方法都基于同一个核心理念:检测 MT5 何时停止与外界通信。
1. 将EA心跳信号发送到外部显示器(然后再发送到Telegram/Discord)
首先,您需要配置一个外部正常运行时间服务(例如 HealthChecks.io 或 UptimeRobot)。然后,您需要设置您的 EA 程序,使其按固定时间间隔向该服务发送一个简短的“我运行正常”信号。最后,您需要让该服务将警报转发到您指定的渠道。
典型的预警渠道包括:
- Telegram 机器人或私人频道
- Discord 服务器(用于团队或社区)
- 电子邮件、短信或移动推送通知
实际上,它的工作原理类似于心跳监测器:只要 MT5 运行,外部服务就会收到规律的 ping 请求。如果心跳停止,它会向 Telegram、Discord 或您配置的任何其他渠道发送通知。
建议间隔:快速检测时为 5 分钟,低频设置时为 10 分钟。
最小心跳代码示例 (MQL5)
//+------------------------------------------------------------------+
//| Simple heartbeat example |
//+------------------------------------------------------------------+
int OnInit ()
{
EventSetTimer ( 300 ); // 300 seconds = 5 minutes
return ( INIT_SUCCEEDED );
}
void OnTimer ()
{
string url = " https://hc-ping.com/YOUR-CHECK-ID " ;
char result[];
string headers;
// Send the GET request to the external monitoring service
int status = WebRequest ( "GET" , url, "" , 5000 , NULL , 0 , result, headers);
Print ( "Heartbeat sent, status = " , status);
}
请记住在MT5中允许对https://hc-ping.com的WebRequest请求:
- 工具 → 选项 → 智能交易系统
- 启用“允许对列出的 URL 发送 Web 请求”
- 添加您的正常运行时间服务域名

图 3 – 来自Equity Tracker MT5的周期性心跳通知消息示例。
2. 外部 Ping 服务(UptimeRobot / HealthChecks.io)
外部 ping 服务是构建良好崩溃检测机制的基石。它们位于您的 VPS之外,持续检查您的 EA 是否仍在发送心跳信号。
- 检测速度极快:您可以选择发出警报前的最大延迟时间。
- 独立于您的 VPS:即使 VPS 完全断电也能正常工作。
- 灵活的通知方式:支持电子邮件、短信、Telegram、Discord 等。
配置完成后,您几乎无需再进行任何操作。它们会全天候默默监控您的EA,仅在出现问题时才会通知您。
3. 来自 MT5 内部的“ EA 已停止”警报
“ EA 已停止”警报对于正常关闭非常有用,例如手动关闭 MT5 或不小心从图表中移除 EA 时。
在Equity Tracker MT5中,您可以启用接收通知的选项:
- 当EA停止运行时通知 → 是

图 4 – 发送到 Telegram 的“EA 已停止”警报示例(由EquityTracker MT5发送)。
这些警报无法检测突然冻结或严重崩溃,但它们增加了一层有价值的第二层安全保障:如果有人关闭了您的 MT5 或移除了 EA,您就会知道。
哪些事情不该依赖
- VPS 控制面板– 即使 MT5 冻结,VPS 也可能显示在线。
- MT5推送通知——仅在MT5运行时有效。
- 人工监控——速度慢且不可靠。
可靠碰撞检测的最佳实践
- 采用冗余机制:将 Telegram/Discord 提醒与外部 ping 服务结合使用。
- 使用较短的心跳间隔:快速检测间隔为 5 分钟,最短间隔为 10 分钟。
- 减少 MT5 负载:图表 → 图表中的最大柱数 → 设置为 5,000 或更少。
- 关闭未使用的图表:释放 RAM 和 CPU 以提高稳定性。
- 启用回撤和保证金警报:防止EA出现灾难性行为。
如何测试你的崩溃检测设置
- 暂时将心跳间隔设置为1分钟。
- 重启或关闭VPS上的MT5。
- 确认警报在预期时间内到达。
- 重新打开MT5并验证心跳警报是否恢复。
故障排除
- 未收到心跳 → WebRequest URL 未添加到 MT5。
- Ping 服务未触发 → URL 错误或定时器间隔错误。
- 没有收到 Telegram 提醒 → 机器人令牌或聊天 ID 有错误。
- EA 重启后被移除 → MT5 终端设置中已禁用自动加载。
- VPS仍然卡顿→减少图表数量,移除占用资源过多的指标。
使用 Equity Tracker MT5 进行自动心跳监测
图 5 – Equity Tracker MT5 仪表板,具有正常运行时间和风险监控功能。
Equity Tracker MT5将所有这些保护措施集中在一个简单的监控工具中:
- Telegram 和 Discord 心跳提醒
- 外部 ping 支持(UptimeRobot、HealthChecks.io)
- 回撤和保证金警报
- 自动生成利润和账户状态报告
将EA附加到一个图表上,它就可以监控您的整个MT5账户。
免责声明:此EA由本文作者在MQL5市场出售。
结论
你无法完全避免VPS或MT5崩溃,但你可以防止它们造成高昂的成本。通过心跳机制、外部正常运行时间检查和冗余警报通道,你可以在VPS停止运行后的几分钟内收到通知。
设置心跳机制 → 启用外部 ping → 安心交易。
您的自动化交易环境将变得更加安全、可靠,并全天候受到保护。



