StopFirst Account Guard
- 实用工具
-
RUSLAN SLOBODIANIUK
Знание языков и технологий:C
C++
Visual C++
WinAPI
C#
GDI+
ADO.NET
LINQ to SQL
WPF
WCF
SQL
XHTML
XML
PHP
MySQL
JScript
Unity3D(C# scripting) - 版本: 1.10
- 更新: 22 十月 2026
- 激活: 10
StopFirst Account Guard 监控您的整个账户,并执行您设定的亏损限额:每日亏损限额、最大总亏损,以及可选的盈利目标和时间规则。一旦达到限额,它会平掉账户上的所有持仓,删除所有挂单,并在限额重置前保持账户空仓。
它专为自营交易公司(prop firm)的考核和资金账户而设计:在这些账户中,只要违反一次每日或总亏损限额,账户就会被终止,而且规则按净值精确到分计算,包括浮动亏损。它同样适合作为您自己账户上的严格每日止损。
它做不到的事 - 请务必阅读
- 它只能事后反应,无法事先阻止。MetaTrader 中没有任何程序能阻止您或其他 EA 发送订单。"锁定"的意思是:任何新开的仓位都会立即被再次平掉。
- 只有在本终端运行并保持连接时它才会起作用。从手机或同一账户的其他终端开出的交易,只有在本终端运行时才会被平掉。参加考核时,请在 VPS 上运行。
- 它以市价平仓。在快速行情中平掉多个仓位会产生滑点,因此它在达到限额之前就动作,而不是正好在限额上:默认在限额的 95 % 时动作。
- 它不知道您所在公司的规则。规则需要您自己输入。下面列出了应向公司询问的问题。
使用方法
1. 将它加载到任意一个图表上,并允许算法交易。它从那里监控整个账户:所有品种、所有 EA,也包括手动交易。
2. 设置公司百分比所依据的账户规模(10 万美元考核填 100000)、每日和总亏损限额,以及公司的交易日何时重置。
3. 让它保持运行。面板会显示每项限额已用多少、还剩多少空间。
规则
每日亏损限额(默认开启,4 %)
- 按账户规模的百分比或按金额。
- 从日初余额(默认)、日初余额与净值中的较大者,或日初净值开始计算 - 这是各公司定义它的三种方式。
- 包含浮动亏损(默认),或仅计已平仓交易。若仅计已平仓交易,未平仓的仓位在平仓前可能远远超出限额 - 保护工具只对已平仓的结果作出反应。只有当您的公司也这样计算时才使用此模式。
- 交易日在您选择的时刻重置,可按经纪商时间、GMT、中欧时间或纽约时间,各自按其夏令时日期切换。默认:中欧时间午夜。大多数保护工具在经纪商的午夜重置,一年中有一段时间会差一个小时。
最大总亏损(默认开启,8 %)
- 静态:底线为账户规模减去限额(默认)。
- 跟随净值最高点或已平仓余额最高点,并可选择在底线达到账户规模后不再上移。
- 底线以数字显示,与公司在其后台中的显示方式一致。
盈利目标(默认关闭)
- 净值达到目标时:全部平仓并锁定,以免在当日结束前把已通过的考核再亏回去。
缓冲与警告
- 在每项限额的 95 % 时动作(可调,50-100 %)。
- 在 70 % 时(可调)发出警告:面板变色、弹出警报,如果 MetaTrader 已设置推送,还会向您的手机发送推送通知。
时间规则(默认均关闭)
- 周末前全部平仓:周五在您设定的时间,按与每日重置相同的时钟。
- 重要新闻前平仓:在您持仓货币或您给出的货币列表中的事件发生前若干分钟平仓。
- 规定时段外不开新仓:在您设定的 GMT 时间窗口之外开出的仓位会被立即平掉。首次加载保护工具时您已持有的仓位不受影响。
这些同样是反应:"不开新仓"的意思是新仓会被立即平掉。
触及限额时会发生什么
1. 平掉账户上的所有仓位 - 所有品种、所有魔术号,也包括手动交易 - 从亏损最大的开始,让造成损失的仓位最先离场。
2. 删除所有挂单。
3. 账户被锁定:
- 违反每日限额后,锁定到下一次每日重置;
- 违反总限额或达到盈利目标后,锁定到您手动解除为止。
4. 锁定期间,任何新的仓位或挂单 - 来自任何 EA、手机或手动 - 都会在一秒内被再次平掉或删除。日志每分钟记录一次。
锁定在开始的那一刻就写入磁盘。重启终端或重新加载 EA 都不会解除锁定。
解除锁定需要在面板上点击两次。每日锁定不能提前解除 - 这正是每日止损的意义 - 而在亏损仍超出限额时,总亏损锁定也不能解除。解除盈利目标锁定后,只有在净值回落到目标以下之后,目标才会再次触发。
时间规则只平掉与其相关的仓位,从不锁定。
可以信赖的数字
- 净值每秒测量四次,而不仅在报价跳动时:其他品种上的亏损不必等待图表品种的下一个报价。
- 入金和出金不是盈利也不是亏损。它们从成交历史中读取,用来移动限额的参考点;一次出金不会看起来像 5 % 的亏损,一次入金也不会掩盖亏损。
- 如果交易日重置时终端处于关闭状态,日初余额会根据成交历史重建,而不是取"当前余额" - 否则在亏损的上午之后重启,您会悄悄地获得新的每日额度。
- 在终端与服务器同步完成之前不做任何测量:直到成交历史与余额精确到分对上为止。一启动就开始测量的保护工具可能会看到几乎为零的余额并平掉账户。
它在违规之前就提醒您
面板会将所有止损被触发时您的持仓将损失的金额(从当前价格算起)与今天剩余的空间进行比较:
if all stops hit -3 140.00 OVER ROOM
仅凭您的止损就可能违反每日限额:您能在还来得及行动时看到这一点。没有止损的仓位根本无法衡量;它会以红色显示为 UNBOUNDED,面板显示 WARNING。
面板
顶部一个词,隔着房间也能看清:ACTIVE、WARNING、LOCKED、CANNOT CLOSE 或 NO CONNECTION。
DAILY LOSS - 已用额度(金额和百分比),并有一条进度条显示到动作点的距离;剩余空间和交易日何时重置;亏损从何算起,以及日初数字从何而来;所有止损被触发时的风险。
OVERALL LOSS - 净值、亏损、剩余空间、将全部平仓时的净值、跟随模式下的最高点。
PROFIT TARGET - 触发时的净值以及还差多少。
TIME RULES - 已设置的规则,以及此刻正在导致平仓的事件(如有)。
账户上的持仓和挂单,以及最近一次操作及其结果。每个区块都可以折叠,整个面板也可以最小化。
两个按钮,均需在三秒内第二次点击才生效:"close all now" - 您自己发起的全部平仓,不锁定;以及在总亏损锁定或盈利目标锁定期间显示的 "clear lock"。
它从不凭猜测显示"一切正常"
- 未连接:NO CONNECTION - 限额未被监控。
- 算法交易关闭,或账户不允许交易:CANNOT CLOSE,红色,并发出警报。限额仍会被测量,违规仍会锁定;一旦可以就开始平仓。
- 无法测量经纪商的 GMT 时差:交易日按经纪商时钟重置,面板会说明。您可以在输入参数中设置时差。
- 日初数据由历史重建,或日初净值未知:在面板上标明。
- 经济日历未加载:新闻规则显示 "calendar unavailable",不会凭猜测平仓。
向您的公司询问的问题
- 每日亏损是从日初余额、日初净值,还是两者中的较大者算起?
- 是否包含浮动亏损?
- 交易日何时重置,按哪个时区?
- 最大亏损是静态的还是跟随的?跟随净值还是已平仓余额?到初始余额时是否停止上移?
- 是否有盈利目标?达到目标时您是否想停止交易?
策略测试器
只做监控的保护工具在回测中什么也显示不出来,因此在策略测试器中它会开出演示交易:成对的交易,其手数使价格反向移动平均半天的波幅就会到达动作点。好的日子以止盈结束;坏的日子会展示警告、违规、平仓、锁定以及次日的解锁。每次锁定期间还会"像其他程序那样"再开一笔交易,以展示它会被再次平掉。演示交易在测试器之外从不发生。如果存款不足以支付一个最小手数的保证金,它不会开任何交易,也不会记录任何错误。较长的回测通常以总亏损锁定结束:演示是故意亏损的,此后账户保持空仓,这正是应有的行为。
在测试器中:
- 请在输入参数中设置经纪商的 GMT 时差,使交易日按您公司的时区重置;测试器无法测量时差,否则交易日按经纪商时钟重置,日志会说明。
- 没有经济日历,因此新闻规则不起作用,并会说明这一点。
- 测试器会忽略警报和推送通知。
输入参数
Account
- 限额所依据的账户规模(0 = 首次加载保护工具时的余额;建议手动设置)。
Daily loss limit
- 开/关;百分比或金额;数值(默认 4 %);从何算起;是否包含浮动亏损;重置的时区和时刻(默认中欧时间 00:00)。
Maximum overall loss
- 开/关;百分比或金额;数值(默认 8 %);静态或跟随;跟随在账户规模处停止。
Profit target
- 开/关;百分比或金额;数值。
Safety
- 在每项限额的此比例时动作(默认 95 %);在此比例时警告(默认 70 %);推送通知。
Time rules
- 周五平仓及其时间;新闻前平仓、重要性、提前分钟数、货币;规定 GMT 时段外不开仓;经纪商 GMT 时差(99 = 自动测量)。
Strategy Tester
- 演示交易开/关、间隔的 K 线数、其魔术号;一项用于测试的出金检查。
Automation
- 接受同一图表上其他程序发出的面板命令。默认关闭;用于自动化测试。
Appearance
- 面板位置、字号、颜色。
EA 启动时会检查每个输入参数。错误的值会使其停止,并提示是哪一个以及原因。
与 STOPFIRST TRADE MANAGER 配合
在同一终端上,StopFirst Trade Manager(1.20 及以后版本)会读取保护工具发布的信息。账户被锁定时,它会在发送之前就拒绝入场,而不是开出一笔一秒后就会被保护工具平掉的交易。如果新交易的止损加上已有的止损可能到达保护工具的动作点,它也会拒绝该交易,面板会显示两个数字。
保护工具通过终端全局变量发布其状态 - 是否运行、是否锁定、剩余空间、所有止损被触发时的风险:不使用 DLL,不访问互联网。同一终端上的任何 EA 都可以读取。在锁定期间开出的任何交易仍会被平掉。
须知
- 只加载到一个图表上。一个账户上运行两个保护工具,两者都会全部平仓 - 无害,但没有意义。
- 它从不修改仓位 - 不添加止损,也不移动止损。它只平仓。
- 其状态保存在以账户号命名的终端全局变量中,因此同一终端上的两个账户互不干扰。每次变化后都会写入磁盘。
- 终端关闭期间的净值最高点无法得知。跟随模式取已保存的最高点与历史中已平仓余额最高点中的较大者。
- 移除 EA 后账户将失去保护。日志会说明这一点。
- 它是 EA,因此会占用图表的 EA 位置。请使用没有运行您自己 EA 的图表。
- 不使用 DLL,不访问互联网,不向任何地方发送任何数据。推送通知通过 MetaTrader 自己的通道发送。
常见问题
它会平掉我的手动交易和其他 EA 的交易吗?
会 - 在违规时、锁定期间以及时间规则适用时。这正是它的用途。它从不修改这些交易。
如果达到限额时终端是关闭的怎么办?
在它重新运行之前什么也不会发生:MetaTrader 关闭时任何程序都无法动作。参加考核请使用 VPS。
它能阻止我开仓吗?
MetaTrader 中没有任何程序能做到。锁定期间,新开的交易会在一秒内被再次平掉。
我的限额是 4 %,为什么它在 3.8 % 时就动作?
这是缓冲。以市价平掉多个仓位会产生滑点;在限额的 95 % 时动作就为此留出了空间。您可以设为 100 %,日志会给出警告。
我出金了,会被算作亏损吗?
不会。入金和出金从成交历史中读取并被排除在外。
它能与 StopFirst Trade Manager 一起使用吗?
可以,放在不同的图表上;从 Trade Manager 1.20 起两者协同工作:保护工具锁定账户时,Trade Manager 会拒绝入场,止损可能到达限额的入场也会被拒绝。保护工具在必要时仍会平掉所有仓位,包括 Trade Manager 的交易。
