欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

CExecutionSafety - MQL5 EA 的 Ping + 执行延迟防护 - MetaTrader 5 库

author emer | 550 人阅读 | 0 人评论 |

CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - library for MetaTrader 5

CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - library for MetaTrader 5

CExecutionSafety 是一个轻量级 MQL5 包含类,旨在保护 EA 交易在网络或执行条件较差的情况下执行交易。
它测量两个延迟组件:实时终端 ping 和实际挂钟执行延迟,并在它们的组合值超过可配置阈值时阻止交易尝试。

大多数 EA 都会盲目执行,无论网络状况如何。关键订单期间 ping 或经纪商端执行延迟的峰值可能会导致滑点、重新报价或执行失败。
CExecutionSafety 引入了交易前安全门,可在条件恶化时阻止执行。

该类使用两个数据源:

将这两个值相加并与您配置的阈值进行比较。如果组合延迟超过阈值,CheckExecutionSafety() 将返回 false 并打印诊断日志条目。
CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - library for MetaTrader 5

当终端没有服务器联系时,TERMINAL_PING_LAST 返回 -1。该类检测到这一点并自动返回 false,从而防止在断开连接的终端上进行交易尝试。

包含该文件并在您的 EA 中实例化该类:

#include CExecutionSafety 安全; int OnInit() { 安全.Init(150); // 150ms 组合阈值 return INIT_SUCCEEDED; } void OnTick() { if(!safety.CheckExecutionSafety()) return; } ulong t0 = GetTickCount64(); trade.PositionClose(票据); safety.RecordExecDelay(GetTickCount64() - t0); }

以下只读访问器可用于仪表板显示或外部逻辑:


附件下载

📎 CExecutionSafety.mqh (3.76 KB)

Source: MQL5 #70033

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录