Runaway Guard
- 实用工具
- 版本: 1.0
- 激活: 10
Runaway Guard 是 MetaTrader 5 的账户监控工具:只测下单速度,按来源分开计数,超速才动作,交易的金额结果不作为判断依据。超限即写出一个 CSV,一次事件一个文件,内含真实成交票号,与终端历史逐笔可对。
■ 四项速度上限(滚动窗口,从当下往回计数)
— 成交频率:快窗 5 分钟内的成交笔数,默认 20 笔。
— 快进快出:建仓不到一分钟即平掉的笔数,慢窗 15 分钟内默认 10 笔。
— 再入场:平仓后 30 秒内于同一品种、同一方向再度建仓,慢窗内默认 5 次。
— 成本:慢窗内的手续费、库存费与已实现金额连同正负号一并合计,仅在余额减少的一侧计入,默认为余额的 0.5%。
上限填 0,这一项不再计入;四项可分别关闭。
■ 按来源计数
每笔成交都带有下单程序的幻数,面板上一行一个来源。手动下单(幻数为 0)也占一行,写作 Manual / no magic,因为手动的单与忘设幻数的 EA 从外部无从分辨。账户整体那一行是 All sources,只测成交频率。被排除的来源从账户合计中一并扣除,自身一行照常保留,只是不再触发。
■ 超限后的四种动作(按来源分别选定)
— Alert:仅提示,不做改动,默认项。
— Cancel pendings:只撤这个来源的挂单,持仓不动;自动交易关闭时无法执行,面板写明原因。
— Stop the chart:关闭这个来源所在的图表,新单不再产生;关闭前先存图表模板,存不成则不关。
— Close the terminal:将直接关闭 MetaTrader 5 终端。默认不可用,需将 InpAllowTerminalClose 设为 true 才会生效,策略测试器内绝不调用。
记录先写、动作后做,终端被关闭时文件已经落地。
■ 面板(Watch 页实际截图)
Runaway Guard Watch Sources
Window 5 min / 15 min State: TRIGGERED
Source Deals RT Reentry Cost Action
All sources 48 -- -- -- Alert
Manual / no magic 4 2 1 -4.00 Alert
Magic 33020001 0 10 9 -250.00 Alert
Magic 40010001 36 18 17 -36.00 Cancel
Magic 70010001 8 4 3 -8.00 Alert
Magic 70010002 12 6 5 -12.00 Excluded
Last incident: 07:47:26 Magic 70010002 reentry
5 in 15 min (limit 2)
-> incident_2026-08-14_074726_magic70010002_2.csv
Close the terminal needs InpAllowTerminalClose = true
怎么看这张图:
— All sources 一行:各来源的 Deals 相加是 4 + 0 + 36 + 8 + 12 = 60,再减去 Excluded 那一行的 12,正好是 48;后三列为 --,这一层只测成交频率。
— Magic 33020001 的 Deals 为零而 RT 为 10:因为 Deals 取快窗,而 RT、Reentry、Cost 取慢窗;几分钟前就停手的来源,快窗里已经没有成交了。
— Magic 70010002 已 Excluded 却仍列在 Last incident 中:排除是让它安静,不是抹去,此前记下的事件照原样保留。
— 此图上限已调低,小于默认值,否则四项同时超限收不进一张图。
RT 一列是慢窗内全部平仓的笔数,上限只计其中不到一分钟即平掉的部分,两数不必相等。State 分 WATCHING、TRIGGERED、DISABLED 三种;DISABLED 并非停止计数,而是选定的动作此刻无法执行,面板必写出原因。
■ 事件记录
超限时会在 MQL5/Files/RunawayGuard/ 下写出一个 CSV,下面就是实际的表头:
time_broker,time_utc,time_local,trigger,measured,threshold,magic,symbol,deals,round_trips,commission,swap,realized,action,deal_tickets
三个时钟是经纪商、UTC 与本机,能对上终端历史的只有经纪商时间;其后为超限项、实测值与上限、来源、品种、计数明细、动作,以及成交票号清单——票号为真,可逐笔核对。没有评分与推测的列,日后也不加。同一秒内发生两起事件就加序号,不覆盖,也不自动删除。
■ 减少误报的安排
启动后头一分钟不动作,开盘后头两分钟上限翻倍,因为多个 EA 同时唤醒本属正常;任何幻数都可以排除;同一来源、同一项上限触发一次后 10 分钟内不再触发,计数与显示照常。
■ 它不做的事
— 源码中没有一处开仓、平仓、修改持仓的交易动作。
— 无法停用别的 EA(MQL5 没有提供这样的接口),能做的只是关闭它所在的图表。
— 手机或另一台终端发出的单拦不住,但能被记录下来。
— 已成交的交易无法撤回,能做的是不让它继续增加,并留下记录。
— 不按金额结果停手,判断依据是速度。
— 不向外发送任何数据:无外部通信,无自建服务器,无外部文件,无 DLL。
■ 演示、环境与参数
策略测试器内跑的是合成成交样本,经由与真实成交完全相同的入口进入计数层,所见与实盘完全一致。画面上始终显示这一行:
TESTER DEMO - synthetic sample, no orders are placed
任何经纪商、任何品种的图表都可以,因为它看的是账户,不是图表。在对冲账户上开发并验证,净额账户已实现但未验证。发布前由程序核对:交易动作 0,DLL 0,外部通信 0。面板上的改动按账户保存,重启后仍在;参数不保存,改动立即生效。
参数共十九个,保持默认就能运行,不需要额外的 set 文件。设定上限的是这八个:InpWindowFastMin、InpMaxDealsPerWindow、InpWindowSlowMin、InpShortHoldSec、InpMaxChurnPerWindow、InpReentrySec、InpMaxReentryPerWindow、InpMaxCostPercent。其余分为动作、启动、输出、测试器几组。
这是一款把账户收到的成交计数并记录下来的工具;接下来会发生什么,它一句也不说。
