Unified Local Copier for MT4
- 实用工具
- 版本: 1.30
- 更新: 6 六月 2026
Unified Local Copier (ULC) — 本地智能跟单系统
Unified Local Copier 是一款面向 MetaTrader 4 / MetaTrader 5 的本地跟单 EA。系统不依赖外部 DLL,在同一台电脑上的 Master 与 Slave 终端之间实现低延迟、高可靠的订单同步。支持 MT4 与 MT5 跨平台组合使用。
当前版本:v1.30(MT5 / MT4)
一、工作原理与跟单范围
系统采用 Master-Slave(主从)架构。一个频道(Channel)内支持一主多从:一个 Master 账户向多个 Slave 账户同步交易指令。
Master(主控端)
实时监控本账户的全部交易动作,包括:
- 挂单下达、修改、删除(Buy/Sell Limit、Stop 等)
- 市价开仓
- 持仓止损 / 止盈修改
- 平仓(含部分平仓、对冲 Close By)
Slave(跟单端)
接收 Master 发出的交易指令,在本地账户上执行镜像操作。系统自动完成品种匹配、手数规范化、滑点控制,并将 Master 订单与 Slave 订单一一对应,便于断线重连后继续对齐。
跨平台互通
支持以下组合:
- MT5 Master → MT4 Slave
- MT4 Master → MT5 Slave
- 同平台 Master → 同平台 Slave
跟单范围
Slave 完整复制 Master 的以下操作:挂单下达 / 修改 / 删除、市价开仓、修改持仓 SL/TP、平仓及对冲平仓。手动下单、EA 下单、挂单触发等来源的订单均可同步。
二、方向过滤(InpSlaveCopySide)
Slave 端支持按买卖方向过滤跟单,适用于只想复制 Master 某一侧策略的场景(例如只跟多单或只跟空单)。
可选值:
SLAVE_COPY_BOTH(默认)— 买卖方向均跟单
SLAVE_COPY_BUY — 仅跟 Buy 方向
SLAVE_COPY_SELL — 仅跟 Sell 方向
过滤规则:
1. 开仓与挂单下达:仅复制符合设定方向的订单(含 Buy/Sell Limit、Stop 等挂单类型)。
2. 平仓与持仓修改:仅处理符合设定方向的持仓。例如设为「仅跟 Buy」时,Master 平 Sell 仓不会触发 Slave 平仓;Master 平 Buy 仓时,Slave 才平掉对应的 Buy 持仓。
3. 挂单修改与删除:若 Slave 此前已成功复制该 Master 挂单,则仍会同步执行修改或删除,避免残留挂单。
注意:方向过滤仅作用于 Slave;Master 端保留默认参数即可。
三、输入参数详解
通用参数(Master / Slave 均需配置)
参数名称 类型 / 默认值 说明
-------------------------------------------------------------------------
InpRole ROLE_MASTER 角色选择。ROLE_MASTER = 主控发单;
ROLE_SLAVE = 跟单收单。
InpChannelID 8888 (int) 频道 ID。Master 与 Slave 必须完全一致。
同一台电脑运行多套独立跟单时,请为每套
系统分配不同 Channel ID(如 8888、9999)。
Slave 专用参数
参数名称 类型 / 默认值 说明
-------------------------------------------------------------------------
InpLotSize 0.01 (double) 跟单手数。Slave 每笔复制订单使用此固定手数
(不按 Master 手数比例缩放)。系统自动按
交易商最小手数、最大手数、步长规范化。
InpComment "ULC" (string) 跟单订单注释前缀。系统会自动附加 Master
单号标识,便于订单追踪与去重。
InpSymbolSuffix "" (string) 品种后缀。用于跨交易商品种名差异,例如
Master 为 XAUUSD、Slave 为 XAUUSDm 时可
留空由系统自动匹配,或手动填写 "m"。
InpSlaveCopySide SLAVE_COPY_BOTH 方向过滤。见上文第二节。仅 Slave 生效。
InpReplayHistoryOnStart false (bool) 启动时是否补跟历史指令。
false(推荐):从当前时刻加入同步,跳过
启动前的旧指令,避免复网后集中补单。
true:按顺序补跟全部未处理的历史指令。
MT5 Slave 专用
参数名称 类型 / 默认值 说明
-------------------------------------------------------------------------
InpDeviation 30 (points) 允许的最大价格偏差(点)。用于市价单成交时
的滑点容忍,超出范围可能拒绝开仓。
MT4 Slave 专用
参数名称 类型 / 默认值 说明
-------------------------------------------------------------------------
InpSlippage 30 (points) 允许滑点(点)。用于市价单开仓与平仓时的
滑点容忍。
Master 专用参数
参数名称 类型 / 默认值 说明
-------------------------------------------------------------------------
InpClearQueueOnStart false (bool) 启动时是否清空历史同步记录。
false(推荐):保留历史状态,切换图表周期
或 EA 重载后 Slave 可续接同步。
true:从零开始,适用于需要全新跟单的场景。
MT4 Master 专用
参数名称 类型 / 默认值 说明
-------------------------------------------------------------------------
InpMasterPollSec 1 (int) Master 检测间隔(秒)。在低 tick 品种或
H1 等周期图表上建议保持 1 秒或以上,确保
订单变化被及时捕获。
四、部署指南
1. 部署 Master
(1) 在需要导出信号的 MT4 或 MT5 终端中,任选一张图表(品种与周期不限;建议挂在常开图表上)。
(2) 将 UnifiedLocalCopier EA 拖入图表。
(3) 设置 InpRole = ROLE_MASTER,配置 InpChannelID。
(4) 开启终端「算法交易 / AutoTrading」总开关。
重要:
- 同一账户、同一 Channel ID 下只能挂载一个 Master EA。
- 不要在同一账户的多张图表上同时运行多个相同 Channel 的 Master,否则可能产生信号冲突或重复跟单。
- Master 监听的是整个账户的交易流水,挂载一张图表即可覆盖全账户。
2. 部署 Slave
(1) 在接收信号的 MT4 或 MT5 终端(可为另一客户端、另一账号)中拖入 EA。
(2) 设置 InpRole = ROLE_SLAVE,InpChannelID 与 Master 完全一致。
(3) 按需设置 InpLotSize、InpSlaveCopySide、InpSymbolSuffix 等 Slave 参数。
(4) 开启算法交易,EA 进入待命同步状态。
重要:
- 同一跟单账户建议只运行一个 Slave EA(同一 Channel)。
- 若 Master 与 Slave 品种名不同,请检查 InpSymbolSuffix 或确认自动映射是否成功(Experts 日志会输出映射结果)。
五、产品特性
无 DLL 依赖
全部功能内置于 EA,无需安装外部组件,兼容性更好,部署更简单。
精准去重
Slave 在开仓前自动校验,避免网络延迟或重复触发导致的「一单多跟」。
智能事件过滤
Master 端自动过滤市价成交后的冗余更新事件,减少无效修改指令,降低跟单端负担。
高并发可靠同步
在网格、马丁等策略瞬间多发订单的场景下,系统具备自动容错与重试能力,降低漏单概率。
挂单全生命周期同步
挂单的下达、修改、删除均完整同步;已跟单的挂单在 Master 撤销时,Slave 会同步删除,不会残留。
订单一一对应
每笔跟单订单与 Master 原单建立对应关系,确保平仓、改单、删单时精准定位到正确的 Slave 订单。
断线续接
推荐保持 InpClearQueueOnStart = false,EA 重载或切换图表周期后,Slave 可安全续接,无需从头跟单。
六、支持同步的操作类型
操作类型 Slave 行为
-------------------------------------------------------------------------
挂单下达 在 Slave 端下达对应类型挂单
挂单修改 修改 Slave 端对应挂单的价格 / SL / TP
挂单删除 删除 Slave 端对应挂单
市价开仓 在 Slave 端市价 Buy / Sell 开仓
持仓 SL/TP 修改 修改 Slave 端对应持仓的 SL / TP
平仓 平掉 Slave 端对应持仓
对冲平仓 (Close By) 按 Close By 逻辑平掉对应持仓
七、常见问题
Q:Slave 日志显示正在等待 Master?
A:请先启动 Master EA,并确认两端 InpChannelID 完全一致。
Q:Slave 品种映射失败?
A:检查 InpSymbolSuffix,或在 Slave 终端的市场报价窗口中添加对应品种。
Q:设为「仅跟 Buy」后,Master 的 Sell 挂单为何不同步?
A:这是预期行为。方向过滤仅复制设定方向的订单;已复制的挂单在 Master 删除或修改时仍会同步处理。
Q:MT4 与 MT5 能否混用?
A:可以。只要 Channel ID 相同,且 Master 与 Slave 运行在同一台电脑上,即可跨平台跟单。
Q:Master 和 Slave 可以是不同交易商账户吗?
A:可以。通过 InpSymbolSuffix 处理品种名称差异,通过 InpLotSize 独立设置跟单手数。
Q:跟单手数会按 Master 比例缩放吗?
A:不会。Slave 使用 InpLotSize 固定手数,请根据 Slave 账户资金自行设定合适的手数。

