Daily Loss and Drawdown Risk Manager MT4
- 实用工具
- 版本: 1.0
- 激活: 15
把它挂到一张图表上,它就会在整个账户范围内强制执行您的日亏损限额和最大回撤,不论交易是谁开的:是您手动开的、用手机应用开的、另一个 EA 开的,还是跟单信号开的。一到限额,它就平掉所有持仓,删除所有挂单,并在锁定结束之前把新开的任何交易继续平掉。它在您设在限额之前的一条线上就动手,而不是等越过限额之后,并用直白的话说明它做了什么。
风控工具出问题,很少是因为缺了某个功能。问题在于:限额触发得太晚,设置的实际含义与名称不符,改一下输入参数就把锁定悄悄撤销了,或者平掉了谁都没料到它会去碰的交易。下面对每一种都有直白的回答。
开始设置
无论是用于自营交易公司(prop firm)的考核,还是用于您自己的限额,要紧的是下面这几项设置:
- Account size(账户规模):考核账户的规模,例如 100000,或者您希望据以计算自己限额的规模。保持为 0,它就会在第一次运行时取您的余额。
- Daily loss limit 和 Overall loss limit:也就是您的日亏损限额和最大回撤。Loss limits are set in 这项设置用来在以账户货币计的金额和百分比之间选择:百分比按账户规模计算,或者在总亏损限额改为追踪之后,按最高点计算。
- Daily baseline(每日基准):当日回撤从哪里开始计算。可以是当日开始时的余额、当日开始时的净值、两者中较高的一个,或者当日的最高净值,而最高净值永远不会从低于当日起始余额的位置算起。
- Daily reset hour(每日重置时间):您的自营交易公司切换交易日的时刻,按服务器时间计。
其他每一条规则在您设置之前都是关闭的。总亏损限额默认从账户规模起算,也就是大多数考核采用的固定底线。只需一个下拉框,就能把它改为从曾达到的最高净值起算的追踪回撤,此时百分比是相对于那个最高点的,所以它会随着账户增长而变大。如果您的自营交易公司追踪的是一个固定金额,请以金额来设定这项限额。
到了限额就动手,不是事后才报告。
- 默认在限额用掉 90% 时动手,在 80% 时警告,两个数都由您设定。这段余量是为了在触及您的自营交易公司那条线之前,吸收一次价格跳空或一次迟缓的成交。幅度大于这段余量的行情,仍然可能越过那条线。
- 所有品种上的全部持仓都会被平掉,所有挂单都会被删除,敞口最大的优先。经纪商拒绝的平仓会在进入新的一秒后的第一个价格上再次发送:因价格被拒时紧接着就发,因其他原因被拒时,则在最多 30 秒的等待之后再发。每一次尝试都会连同经纪商的回复记入日志。
- 锁定期间开出的任何交易,一出现就会被平掉,只要 MetaTrader 在运行并挂着本工具,每个报价、每一秒都会检查,无论交易来自您的手动操作、您的手机,还是另一个程序。
- 亏损按净值计算,和净值保护器的做法一样,因此浮亏的计入方式与大多数自营交易公司相同。经纪商加到账户上的信用额不计入,所以它永远无法掩盖亏损。
- 日亏损限额的锁定在每日重置时结束。总亏损限额的锁定会一直保持,直到您请求解除,或者您的净值回到起算点,或者关闭这项限额的操作生效为止。
一天从它的重置时刻算起,即使那时 MetaTrader 是关着的。在重置之后才启动它,账户自重置以来入账的一切,包括夜里成交的止损,都会计入当天的限额,就和工具一直在运行时一样。采用按净值计算的每日基准时,重置时刻持有的交易会按那一刻的价格估值,价格从图表历史中读取,其中也包括 MetaTrader 关闭期间已经平掉的交易。如果一分钟之内读不到重置时刻的某个价格,它会在"EA"选项卡中说明,并按它启动时各笔交易的现状来计算这一天,不使用重置时刻的价格。
请把"账户历史"选项卡设为"所有交易记录"。MetaTrader 4 只向程序提供该选项卡已加载的历史记录,而本工具有五处要读取它:MetaTrader 关闭期间开始的交易日,您的持仓在那次重置时的价格,区分入金或出金与交易亏损,当日的交易笔数和连续亏损,以及追踪在部分平仓时换了订单号的交易。"所有交易记录"是稳妥的设置,选一个能覆盖工具需要看到的那些天的时段也可以。MetaTrader 4 没有给程序任何办法知道历史记录不够长,所以工具无法提醒您去修正,这一项得由您自己设对。
牢靠的锁定
- 重启 MetaTrader 不会解除它,把工具移除后重新挂上也不会。锁定按账户的登录号保存在这个 MetaTrader 里,所以一个账户上的锁定不会跟着您到另一个账户上。
- 策略测试器的运行动不了它。MetaTrader 4 会把终端自己的存储区交给测试运行使用,而真实图表上的锁定正是保存在那里,所以测试写入的所有内容都放在一个单独的空间里,并在每次运行开始时清空。
- 修改输入参数撤销不了它。更严格的亏损限额立即适用。更宽松的,包括关闭某项限额,要等到下一次每日重置或您请求的一次解除时才适用,"EA"选项卡会说明这一点。关闭总亏损限额这一更改生效时,它的锁定也随之解除。
- 两项每日计数、Watch only(仅监视)和账户规模也遵循同样的规则。对账户规模来说,当总亏损限额从账户规模起算时(这是默认设置),较大的数字更严格,因为它会抬高执行线;其他情况下,较小的数字更严格。新的账户规模要到下一次重置或一次解除时才作用于日亏损限额,除非在被它替换的那个规模下,亏损限额拒绝生效;而在有亏损限额开启时,较大的新规模也要到那时才作用于单笔交易风险。针对每笔交易的规则会立即采用新值。
- 工具无法接受的设置,例如警告线设得等于或高于执行线,会让它停止运行:MetaTrader 会把它从图表上移除并说明原因,默认以弹窗说明,"EA"选项卡里则总会写明。在您用它能接受的设置重新挂上之前,任何规则都不会被执行,而已经存在的锁定会被保留。
- 解除是一个请求,而不是一个开关。把 Ask to clear a tripped lock(请求解除已触发的锁定)设为 true,如果 30 分钟后它仍为 true,解除就在那时生效;在此之前把它改回去即可取消。解除生效时,对话框中的设置按您填写的原样生效,账户规模也包括在内,但 Daily reset hour 和在一天开始时取值的 Daily baseline 除外,它们要等到下一次重置;已经发生的一切照样计入。所以,由真实亏损触发的锁定会立即再次触发,而由错误设置触发的锁定,在设置改正之后就保持解除。之后请把它改回 false:一直保持 true 的话,它就无法再次请求,您若尝试,它会说明这一点。
针对每一笔交易的规则,不论是谁开的
每一条在您设置之前都是关闭的。每一组都有自己的动作:平掉该交易,或只发出警告;没有止损的交易还可以被加上一个止损。
- Most one trade may risk, by its stop,即按止损计算,一笔交易最多可冒的风险:止损成交时会亏掉的金额,从开仓价算起,以账户规模的百分比表示;如果两项亏损限额都关闭且没有填写账户规模,则以余额的百分比表示。交易出现时判断一次,之后每当它的止损或手数变化时再判断,在 MetaTrader 重启或工具重新挂上时则从头重新判断,而不是等亏损已经发生之后。
- 没有止损的交易。在您允许的秒数过后,它会在风险上限处加上止损(这需要设置 Most one trade may risk)并保留止盈,或者平掉这笔交易,或者发出警告。如果价格已经越过了那个止损本该放的位置,它会平掉这笔交易,而不是放一个会立即成交的止损。
- Symbols allowed,即允许交易的品种。任何其他品种上的交易都会被处理。列表里如果有您的经纪商没有的品种,工具就不会启动,并弹窗指出是哪个品种,而不是任由它把您本想填的那个品种上的每一笔交易都平掉。
- Most open positions,以及 Most lots open in total,即同时最多持仓数,以及总共最多持仓手数。被处理的是最新的那一笔交易。
- 每日最多交易笔数,以及连续亏损若干笔后当天停止交易,这是两条防止过度交易的规则,计算时包含库存费和佣金。只有在达到上限之后新开的交易才会被处理。
它不会平掉原本就开着的交易
把它挂到一个已有交易在运行的账户上,针对每笔交易的规则只会对这些交易发出警告,绝不会把它们平掉。亏损限额则不同,而且会明确说明:从生效那一刻起,它们覆盖账户上的每一笔交易,因为一个无视部分交易的限额就不成其为限额了。
夜里关闭 MetaTrader,或者 Windows 重启电脑,都不会改变它管控哪些交易。只有把工具从图表上取下、并在之后的某一天重新挂上,才会让它从头开始,"EA"选项卡会说明何时发生了这种情况。
与您的其他 EA 并存
MetaTrader 每张图表只运行一个 EA交易,所以本工具单独占一张图表,您的其他 EA 继续留在各自的图表上。它像对待其他任何交易一样管控它们的交易:亏损限额到线就把它们平掉,您开启的规则也同样作用于它们。没有任何东西可以豁免,所以一个故意不设止损交易的 EA,如果您把那条规则设为添加止损,它开的交易就会被加上止损;遇到这种情况,请改设为警告。它无法和另一个 EA 一起回测,因为策略测试器一次只运行一个程序。
当另一个程序不停地重新开仓
MetaTrader 4 不记录交易的来源。您手动下的交易,它给的幻数是 0;一个自己不设幻数的程序下的交易,幻数同样是 0,所以本工具就如实这么说,不作更多断言。因此,以幻数 0 交易的程序会被视同您亲手下单:它开出的交易照样会被平掉、照样记入日志,每次平仓时也照样会说明,只是不会被点名为需要停掉的程序。几乎每个 EA交易都会设置幻数,这些 EA 都会被点名为程序。
- 锁定期间开出的交易,每一次都会被平掉。当一个程序在同一品种上、15 分钟之内重新开出一笔已被锁定平掉的交易时,弹窗会用幻数和注释指明它,并提示您去查看该品种的图表、另一个终端和跟单信号,因为 MetaTrader 4 不会说明哪个 EA交易运行在哪张图表上。这个弹窗在第一次时出现,之后每到第五次再出现一次,这样一个陷入循环的 EA 就不会用弹窗把您淹没。每一次平仓,连同幻数,都记录在日志里。
- 或者,它可以关闭 MetaTrader,在账户清仓之后关闭,这样在其中运行的程序都会停下,直到您再次打开它。它无法阻止来自您手机或另一个终端的交易,而在 MetaTrader 关闭期间,也没有任何东西会平掉那些交易。此项默认关闭,在 MQL5 VPS 上也绝不会执行,因为在那里没有任何东西会把它重新打开。之后不会重启或恢复任何东西:您的图表和其他 EA 保持您离开时的样子,您回来时锁定依然有效。
入金、出金和信用额
- 入金不算盈利,也不会带来额外的余地。账户规模永远不会随入金上调。
- 出金不算作亏损。它先从超出您入金的那部分盈利中扣除,再从您的入金中扣除,而账户规模只会按使余额低于账户规模的那部分下调。
- 它计算的净值不包括信用额。
- 它对入金或出金能分辨多少,取决于您的"账户历史"选项卡加载了什么,也就是上面那项设置。限额不会因为历史记录而暂停,因为 MetaTrader 4 没有给程序任何办法知道是否缺了记录。
遇到错误,它拒绝生效
它第一次在某个账户上运行时,如果某项亏损限额已经越过了执行线,这项限额就不会生效:不会平掉任何交易,卡片上显示 Not armed(未生效),"EA"选项卡会说明原因。等这部分亏损回到执行线以下,它就会生效,日亏损限额最迟在下一次每日重置时生效;在此之前,它不保护这个账户。另一项限额照常生效。在它以前运行过的账户上,它没有运行期间产生的亏损仍然计入,一重新挂上,它就会针对这部分亏损动手。当总亏损限额开启并从账户规模起算时(这是默认设置),多输了一个零的账户规模会被拒绝,卡片上显示 Check the account size(请检查账户规模),除非有锁定存在;在它被拒绝期间,两项限额都不会生效。若多了一个零的规模是由一次解除锁定带入生效的,则不会被拒绝:锁定会再次触发,改正后的数字会随下一次解除生效。在总亏损限额为追踪方式或关闭时,多出的零不会被发现,而一旦它生效,每一项以百分比设定的限额都会放宽到原来的十倍。在有亏损限额开启时,卡片会显示它所依据的账户规模,所以多了一个零的规模就摆在那里,看得见。
它做过的每件事都有记录
- 每个账户登录号一个 CSV 文件,保存在 MQL4\Files 文件夹中:服务器时间和本地时间、规则、订单号、品种、方向、交易量、幻数、价格、经纪商的回复代码和结果,以及一条备注。回复代码是 MetaTrader 4 自己的错误编号,也就是您在"EA"选项卡里看到的那个,调用成功时这一栏留空。它记录的是工具做了什么;警告则留在"EA"选项卡里。
- 每一行都单独打开、写入并关闭,所以一次崩溃不会丢失任何已经写入的内容。
- 如果 Excel 或其他程序正打开着这个文件,这些行会先在它旁边的一个文件里等待,等文件空出来后再按顺序写进去。如果 MetaTrader 先关闭了,它们会被保留下来,并在工具下一次启动时写入。
每笔交易都是独立的交易
MetaTrader 4 账户是以订单为单位的,所以没有净额结算需要考虑:每笔交易都按它自己的手数和它自己的时间来判断,规则会平掉触犯它的那一笔。一笔大到无法一次平掉的交易会分批平掉,而不是被拒绝。
部分平仓会留下一个新订单号,不论是谁做的。这是 MetaTrader 4 所为,而不是本工具:平掉的部分保留原来的订单号,剩下的部分以一个新订单号回来,上面带着服务器自己的注释。本工具会沿着这条链追踪,所以一笔您手动部分平仓的交易,对 Most trades opened per day(每日最多开仓笔数)来说仍是一笔交易,对 Stop for the day after this many losses in a row(连续亏损达到此笔数后当日停止)来说也仍是一个结果。您会看到的是:操作日志里的订单号变了,您在这笔交易上填写的注释被服务器的注释取代。
Watch only(仅监视)
一项设置就能把每一条规则都变成警告:它会发出提醒,不平掉任何交易,卡片上显示 Reached(已触及)而不是 Locked(已锁定)。在正在运行的工具上打开它,算作放宽:针对每笔交易的规则立即改变,但亏损限额和每日计数会继续平仓,直到下一次每日重置,其中也包括您切换之后才首次触及的限额。
卡片
- Room before it acts,即距离它动手还剩的余地,以您的账户货币计,按离得更近的那项限额计算。这是需要盯住的数字。
- 当日亏损和总亏损,各有一个进度条、一个标出动手位置的记号,以及各自的状态:Clear(正常)、Near the limit(接近限额)、Reached(已触及)、Locked(已锁定)或 Not armed(未生效)。
- 账户规模,以及它的来源:as typed(按填写值)、from the balance(取自余额)或 after a withdrawal(出金之后)。
- 今日交易笔数、连续亏损笔数、持仓数和持仓手数,对应您已开启的规则。
- 它最近做的一件事,以及原因。
- 可以拖到任意位置、锁定在原处,或者通过输入参数固定到某个角落。
提醒会以带声音的弹窗、推送到 MetaTrader 手机应用的通知和电子邮件发出,每一种都可以单独开关。推送和邮件需要先在 MetaTrader 自身的选项中设置好。
MT5 和 MT4
两个平台,从同一个文件构建:相同的版本,相同的设置,名称和默认值也都相同,相同的卡片,相同的规则。MetaTrader 4 的设置对话框会在各组之间加上分隔行,MetaTrader 5 不显示这些分隔行。本页面是 MetaTrader 4 版本,凡是 MetaTrader 4 本身造成差异的地方,本页都会直接说明,而不是留给您自己去发现:它记录了哪些关于交易由谁开出的信息,部分平仓会留下什么,以及它向程序提供多少历史记录。
关于演示版,实话实说
在这个市场上,付费产品的演示版只能在策略测试器里运行,而一个自己不下单的工具在那里将没有东西可展示。所以在可视化测试中,它会自己开单,一次一个环节,每个环节都专门用来触犯您已开启的某条规则,卡片会显示那条规则动手的过程。默认只开启了两项亏损限额,所以请在开始之前开启您想观察的规则。它开的交易带有以"TFX demo"开头的注释。亏损限额触发之后,它会在锁定状态下再开一笔交易,让您看到这笔交易也被立即平掉。MetaTrader 4 的测试器只交易图表所在的品种,所以要观察品种规则动手,请不要把这个品种列入您的列表,然后在不设列表的第二次测试中运行其他环节:它们同样交易这个品种,而在它不在列表中时会被跳过。
在测试器里,提醒完全不会送达;取而代之,卡片和日志会显示每一个事件。MetaTrader 4 的策略测试器从不运行程序的计时器,所以在测试中,演示和每一条规则都按报价的节奏推进;在真实图表上,每秒一次的计时器也会运行,规则可以在两次报价之间动手。它只在测试器里做、别处都不做的一件事:在初始资金低于 2000 的非可视化运行中,它会下最小手数的示例交易,好让本市场的自动检查能看到交易操作,并且在这次运行中不执行任何规则。它会在日志中说明这一点,而在您用较少的入金自己做非可视化回测之前,值得先知道这一点,因为那是同样的情形。可视化运行就是演示,其他所有运行都会执行规则。在策略测试器之外,它从不开仓。
它不是什么
它不是交易管理工具:没有保本,没有追踪止损,没有部分止盈,不负责入场,也不提供信号。这些由我们的 Trade Manager(一款 MT5 产品)来做,针对它自己所在图表品种上的交易。本工具从一张图表管控账户上的每一笔交易,它对交易所做的事,从来只有平掉它,或者给它加上止损。
它也不只是一个监控工具。我们发布了一个免费的 MT5 面板,显示您的两项亏损限额,从不触碰任何交易。本工具则会针对它们动手。
值得知道的几点
- 只挂在一张图表上。一份就能管控整个账户;第二份会对同样的交易动手。
- 没有任何办法能让某个程序或某个品种豁免于亏损限额。只要交易在这个账户上,限额就覆盖它。
- 每日重置时间可以调整,一次调整可以让某一天变长,但绝不会让它变短。
- 重置时间按服务器时间计,而 MetaTrader 4 不会给程序单独提供服务器时钟。本工具在每个价格到来时,取服务器时钟与您电脑时钟之间的差值,并据此推算,所以在两个价格之间以及跨周末时,交易日照样会切换。
需要我的时候,我会回复
在评论区提问,或者通过 MQL5 私信联系,回复您的是我本人,而不是客服台。如果有什么坏了,我希望知道,而且一份错误报告换来的是修复,而不是绕开问题的办法。
您的限额,您本来就清楚。本工具负责强制执行它们,并确切告诉您它做了什么。
