You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MT4中完整拦截所有订单数据?

MT4跟单器开发:订单拦截与关键信息获取问题

我正在为MT4开发一款跟单器,此前已完成MT5版本的开发。在MT5中,可通过OnTradeTransaction事件轻松拦截所有由客户端发送且被交易服务器接受的订单,代码示例如下:

void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, 
   const MqlTradeResult &result) {
   // 订单拦截逻辑
}

该事件可以直接获取订单操作的完整上下文信息,但在MT4中并没有对应的便捷实现方式,目前只能通过遍历所有订单来获取信息,代码如下:

for (int i = 0; i < OrdersTotal(); i++) {
    if (!OrderSelect(i, SELECT_BY_POS)) {
       // 错误处理逻辑
    }

    // 订单处理逻辑
}

这种遍历方式只能获取挂单的基础信息,无法获取以下关键内容:

  • 滑点(Slippage)
  • 平仓关联仓位(针对close-by订单)
  • 明确的操作类型(平仓、平仓关联、删除、修改、发送,虽可通过订单字段间接推断,但不够直接)

我曾尝试通过包装OrderClose、OrderCloseBy、OrderDelete、OrderModify和OrderSend函数来拦截订单并获取相关信息,但这种方法无法覆盖用户手动下单的场景。请问是否存在可以完整拦截所有订单数据且不丢失关键信息的方法?


内容的提问来源于stack exchange,提问作者Woody1193

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:47:24