Signal Auditor MT5
- 实用工具
- 版本: 2.2
Signal Auditor MT5 — 检查指标的信号是否真正有效,以及指标是否会事后修改信号
Signal Auditor MT5 是一款适用于 MetaTrader 5 的免费实用工具,用于检查另一个指标的信号。在购买某个指标或按其交易之前,值得先问两个问题,它正是回答这两个问题。
第一个问题:信号是否有效,也就是说,价格朝箭头方向运行的频率是否高于随机入场之后?如果不高,该指标就没有优势:按它的箭头入场,与在随机时刻入场没有区别。
第二个问题:指标是否重绘(repainting)?重绘是指指标在已经收盘的K线上事后删除、移动或添加箭头。在历史上,这些箭头看起来非常准确,但在实盘交易中,它们当时并不在那些位置。
审计器既可以在图表上与您的指标一起使用,也可以在策略测试器中与 Market 指标的演示版一起使用,因此在购买之前就能检查指标。无需编程,也无需设置:审计器会自行找到信号,并在图表上的面板中显示结果。
适用人群
- 指标购买者:在购买前检查演示版。
- 交易者:了解常用指标在您的交易品种和时间周期上是否有优势,并在相同条件下比较多个指标或多组设置。
- 开发者:在发布前检查自己的指标:信号是否有优势,是否存在重绘。
功能
- 自动查找信号:指标缓冲区中的箭头;以对象形式绘制在图表上的箭头,包括 Wingdings 字体符号、文本箭头以及 BUY 和 SELL 标签;如果没有箭头,则识别趋势变化:位于价格两侧的两条线、会变色的线或K线、分别表示上涨和下跌的K线。
- 将信号与随机K线比较,显示信号是否具有无法用运气解释的优势。
- 按信号以三个目标进行模拟交易,显示盈利交易占比、盈利因子以及扣除点差后的平均结果。
- 在图表和测试器中监测重绘。
- 在策略测试器中检查 Market 指标的演示版。
- 在图表上用金色圆点标记每个被计入的信号,便于确认审计器是否正确理解了指标。
- 将汇总结果以及包含所有信号及其结果的表格保存到文件。
- 适用于任何交易品种和时间周期,支持主窗口和子窗口中的指标。
检查原理
对于每个信号,审计器查看价格先到达哪里:沿信号方向运行 1 个 ATR,还是反方向运行同样的距离。ATR(14) 是最近 14 根K线的平均波动幅度,因此该检查同样适用于任何交易品种和时间周期。审计器最多等待 50 根K线得出结果。然后,它在同一段历史中、按相同方向,从三根更早的随机K线开始做同样的测量。之所以要与随机K线比较,是因为在上涨市场中几乎任何买入看起来都很成功,而在下跌市场中几乎任何卖出都是如此。信号与随机K线之间的差异,体现的才是指标本身的贡献。
运气容差是指在这样的信号数量下,单纯靠运气可能产生的差异(概率 95%)。如果信号的优势大于容差,结论为 beyond luck;如果小于容差,结论为 within luck。只有当至少 100 个信号有结果时才给出结论。
第二项检查是按信号进行交易:在下一根K线开盘价入场,止损距离 1 个 ATR,目标为止损距离的 1、2 或 3 倍(1R、2R 和 3R,R 为止损大小),50 根K线后按时间离场。如果止损和目标在同一根K线内都被触及,按止损计算。每根K线的点差取自历史数据,不计算佣金。旁边显示从随机K线出发的相同交易的结果。
重绘的检查方式如下:审计器在每根K线收盘时记录该K线的信号,并在随后的K线上进行核对。消失、改变方向或出现在已收盘K线上的信号被视为重绘。另外单独统计在未收盘K线上出现、但在收盘前消失的信号:它们不会影响历史,但在实盘交易中有可能按这样的信号入场。
连续K线上的箭头算作一个信号,圆点标在第一根上。如果信号来自趋势变化,则新方向的第一根K线就是信号。
如何在图表上检查指标
1. 打开所需交易品种和时间周期的图表,并按您的设置加载要检查的指标。
2. 将 Signal Auditor MT5 加载到同一图表。如果图表上只有一个指标,Indicator to audit 字段留空即可。如果有多个指标,请输入所需指标名称的一部分,例如 test_indicator。
3. 几秒钟后,面板会显示对历史的检查结果,最多检查最近 20 000 根已收盘K线。请将金色圆点与指标的箭头进行对比:每个圆点就是一个被计入的信号。
4. 保持图表打开:重绘监测从审计器启动时开始,只要它在运行就会持续。收盘的K线越多,结论越可靠:在 M1 上几分钟后即可看到初步结果,在 H1 上需要几个小时。
5. 每出现一根新K线,历史检查都会更新。包含信号及其结果的表格保存在终端数据目录的 MQL5\Files\SignalAuditor 文件夹中(“文件”菜单中的“打开数据文件夹”)。
面板可以通过标题栏拖动,可以调高透明度,也可以通过标题栏中的按钮折叠或关闭。面板在图表上的位置会被记住。
如何在测试器中检查 Market 演示版
Market 指标的演示版只能在策略测试器中运行,因此审计器在测试器中检查它,并自行加载它。
1. 在 Market 中该指标的产品页面下载演示版。它会出现在导航器的“指标”文件夹下的 Market 子文件夹中。
2. 打开策略测试器(Ctrl+R),选择程序类型“指标”,并在列表中选择 Signal Auditor MT5。测试指标时,可视化模式会自动开启。
3. 设置交易品种、时间周期和测试区间,例如最近 3–6 个月。报价生成模式选择“1 Minute OHLC”。这已足够;真实报价的下载耗时很长,并会给终端带来很大负担。
4. 在输入参数选项卡的 Indicator to audit 字段中,按导航器在“指标”文件夹内显示的方式输入指标路径,例如 Market\Test Indicator。MyIndicators 文件夹中您自己的指标这样填写:MyIndicators\test_indicator。
5. 开始测试。启动后,面板会立即显示对测试器在开始日期之前加载的一年历史的检查结果(Before test 行)。在测试过程中,审计器按每根K线收盘时的样子记录信号,并将表格切换到这些信号(Test 行)。
6. 每 50 根K线,汇总结果和信号表格会保存到测试器代理的 MQL5\Files\SignalAuditor 文件夹中,因此即使提前关闭可视化窗口,结果也会保留。
测试器以演示版的默认设置运行它。在测试器中面板没有按钮,但可以通过标题栏拖动。
如何阅读面板
面板为英文。从上到下:
- 标题栏:总体结论,为以下之一:signals beat random candles(信号优于随机K线)、no edge beyond luck(没有超出运气的优势)、signals worse than random(信号不如随机K线)或 too few signals to judge(信号太少,无法得出结论)。红色的 REPAINTS 字样表示发现了重绘。
- Indicator 和 Signals from:正在检查哪个指标,以及信号来自哪里:箭头缓冲区、图表上的对象或趋势变化。
- History(测试器中为 Before test 和 Test):检查了哪一段历史。
- Signals:找到多少买入和卖出信号,以及信号出现的频率。
- Does price go the signal's way first? 表格是第一项检查。Signals 和 Random candles 两列显示在信号之后和随机K线之后,价格先沿信号方向运行 1 个 ATR 的频率;Difference 为差值(百分点);Luck 为运气容差;Verdict 为结论。各行:全部信号(All)、买入(Buy)、卖出(Sell),以及历史的前半段(Older half)和后半段(Recent half)。稳定的优势在两个半段中都能看到。
- Trading the signals 表格是第二项检查。针对 1R、2R 和 3R 目标:交易次数(Trades)、盈利交易占比(Win)、盈利因子(PF;大于 1 表示交易盈利)、以 R 计的每笔平均结果(Avg per trade),以及从随机K线出发的相同交易的盈利因子(Random PF)。下面一行显示计入了多少点差。
- Repaint watch:重绘监测:从何时开始、检查了多少根K线、已收盘K线上有多少信号消失(vanished)、改变方向(changed direction)或事后出现(appeared later),以及有多少信号在未收盘K线上一闪而过。
示例。Signals 56.0%、Random candles 50.0%、Difference +6.0 pts、Luck 4.2:差值大于容差,结论为 beyond luck:信号之后价格朝信号方向运行的频率高于随机K线之后。若 Difference 为 +2.0 pts 而容差相同,结论为 within luck:这样的差值靠偶然也能产生。
输入参数
- Indicator to audit (empty = first on chart; in tester: Market\Name):要检查哪个指标。在图表上:留空(图表上的第一个指标)或输入其名称的一部分。在测试器中:输入“指标”文件夹内的路径,例如 Market\Test Indicator。
- Buy and sell buffer numbers, e.g. 0,1 (empty = auto):包含信号的缓冲区编号。通常留空即可;如果审计器没有自行找到信号或理解有误,再填写此项。写法:
0,1 — 买入箭头在缓冲区 0,卖出箭头在缓冲区 1;
2 — 一个缓冲区同时包含两个方向:方向根据箭头相对价格的位置或数值的正负来确定;
0,4 — 如果缓冲区在超过 30% 的K线上有值,则被视为“买入”和“卖出”状态,状态的变化即为信号;
8:2,8:1 — 颜色缓冲区中的颜色编号:缓冲区 8 中的颜色 2 表示买入,颜色 1 表示卖出。
- Target and stop, ATR(14) multiples:两项检查中目标和止损的大小,以 ATR(14) 为单位,默认 1.0。数值越大,检查的波动越长。
- History bars to audit:检查最近多少根已收盘的历史K线,默认 20 000。
指标的所有缓冲区以及审计器如何理解它们,都会列在日志中:图表上为“EA交易”选项卡,测试器中为“日志”选项卡。
建议
- 请使用您打算交易时的设置来检查指标:在图表上,审计器使用该图表上指标的设置。
- 要得到可靠的结论,至少需要 100 个信号。如果信号较少,请增大 History bars to audit、选择更小的时间周期,或采用更长的测试区间。
- 请在两三个交易品种和时间周期上检查指标:只在其中一个上出现的优势可能是偶然的。
- 将金色圆点与指标的箭头进行对比。如果不一致,请手动指定缓冲区。
- 在测试器中请使用“1 Minute OHLC”模式。在“Open Prices Only”模式下,不会检查未收盘K线上一闪而过的信号,而且使用更小时间周期数据的指标可能无法运行。
常见问题
为什么要将信号与随机K线比较?
在上涨市场中几乎任何买入都会盈利,在下跌市场中几乎任何卖出都会盈利。来自同一段历史、方向相同的随机K线经过同样的检查,因此差值体现的是指标的贡献,而不是市场的贡献。
within luck 是什么意思?
信号与随机K线之间的差值,小于在这样的信号数量下单纯靠运气可能产生的差异。这并不证明指标不好,但检查没有发现其入场具有优势。
审计器是否考虑指标作者的离场、过滤条件和规则?
不考虑。所有信号都作为相同条件下的入场进行检查。这样可以公平地比较不同指标,但这并不是对作者完整交易系统的测试。
为什么测试器中 Before test 和 Test 两行结果不同?
Before test 显示的是指标现在在历史上显示的信号。Test 显示的是每根K线收盘时的信号,也就是交易者在实盘中会看到的样子。如果历史结果明显更好,该指标很可能存在重绘。
审计器没有找到信号,或者找错了信号,怎么办?
打开日志:其中列出了指标的所有缓冲区以及审计器对它们的理解。在 Buy and sell buffer numbers 字段中填写正确的编号。
审计器能用于振荡指标吗?
只有当振荡指标带有箭头或颜色状态时才可以。穿越水平线、离开区域和背离属于不同的策略,审计器不检查它们。
免费版有没有限制?
没有,这是无任何限制的完整版本。
局限性
结果仅适用于所检查的交易品种、时间周期和区间。点差取自历史数据,不计算佣金。过去的结果不能保证未来的结果。
支持
如有问题和建议,请通过私信或在 MQL5.com 的产品评论中联系。
