请观看如何免费下载自动交易
请在Facebook上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
脚本

RepaintTest - measure whether a drawing indicator repaints - MetaTrader 5脚本

Yogeswaran Suppiah
Yogeswaran Suppiah
我是来自马来西亚的独立 MetaTrader 开发者,为主观交易者发布图表分析工具。自 2015 年起在 MQL5。
我专注于市场结构:流动性扫荡与陷阱、结构突破与性质转变、供需区、公允价值缺口(FVG),以及等高点和等低点。所有产品同时发布 MetaTrader 4 和 MetaTrader 5 版本。
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
12
等级:
(2)
已发布:
RepaintTest.mq5 (17.42 KB) 预览
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

几乎每个指标的描述中都包含“不重绘”这一短语。但几乎没有一个包含具体数值。这一短语本身不可能有误,因为它没有关联任何具体操作——无论是有过验证经验的开发者,还是从未验证过的开发者,写出的都是同样的句子。本脚本将该短语替换为具体数值。

不变量

一旦K线收盘并被处理完毕,该指标在其上绘制的任何对象都不得发生任何变化。既不能移动,也不能变色,不能更改文本,也不能消失。这是一个可能不成立的断言,正因如此,才值得进行测试。

方法

向自定义符号中注入一段真实历史数据的预热片段,通过模板附加您的指标,并记录其绘制的每个对象。随后追加更多K线,并强制图表进行完整重新计算,从而使指标在更长的历史数据上从头重建每个对象。 随后,在新的计算过程中,会查找前一次计算中位于已平仓K线上的每个对象,并逐项进行比较:两个锚定时间、两个锚定价格、颜色和文本。根据您的要求重复此过程,直至达到指定步骤数。

完全重建比增量 tick 测试更为严苛。 该指标必须利用不同的数组索引,从更长的历史数据中重现完全相同的图表,且完全不记得上次绘制的内容。这正是用户向后滚动足够远、促使交易终端加载更早K线时所触发的过程,也是基于K线索引(而非K线时间)命名的对象在此处出现问题的根源。

其关键所在

变化和消失分别计数,只有发生变化才意味着该说法不成立。大多数绘图指标在超过上限后会刻意清除旧对象,因此对象消失通常是您自己的 MaxObjects 或 HistoryBars 设置所致,而非程序缺陷。请取消这些限制后再运行。

未进行任何比较的运行将被报告为“INCONCLUSIVE”(结果不明确),绝不会被报告为“通过”。测试框架可能存在的最危险的缺陷,就是将空运行报告为成功,因为最终被引用的往往就是这个数字。

输出结果为位于 MQL5\Files 目录下的 CSV 文件,每行对应一个符号、时间周期和步骤,包含已比较、已更改和已消失的对象数量,以及第一个出现问题的对象。将 marks_compared 列的数值相加,即可得到可发布的数字——以及作为依据的文件。

用法

1. 将“前缀”(Prefix)设置为您的指标对象名称的前缀。在“排除”(Exclude)列表中列出所有按设计会发生变化的内容:例如每 tick 重新绘制的图例、倒计时器等。这些不属于标记。在此声明它们比默默过滤它们更为坦诚。

2. 将您的指标附加到一个已解除所有绘图限制的图表上,并将该图表保存为模板。然后将“模板”指向该模板。

3. 提高 SettleMs 值,直到首次遍历中的标记计数在多次运行之间不再变化。如果该值设置得太低,虽然不会产生错误,但会导致标记出现“幽灵般”的消失现象。

4. 故意制造一次故障:将一个对象偏移一个条形,并确认脚本会报告该故障并标注字段名称。从未出现过故障的测试套件尚不能作为证据。

它不会告诉你的内容

该指标是否准确,或者其信号是否有用。它只回答了一个狭义的问题,而这也是该答案唯一有价值的原因。

有两种看似测试实则不然的方法,此前都曾尝试过但已被放弃:策略测试器(Strategy Tester),在该环境中,MT4上的EA完全无法枚举由iCustom驱动的指标对象; 以及在实时图表上调整指标自身的HistoryBars输入参数——这虽然会改变循环的起始位置,但对rates_total及所有数组索引均无影响,因此该类本应捕获的错误从未被触发。

免费提供,无需署名。如果它在您的代码中发现了问题,我很乐意听听具体情况。

RepaintTest 结果:199,984 次不变量检查,0 处发生变化,0 处消失

测试原理:初始化数据、追加柱状图、强制完全重建、进行比较

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/76632

Sniper Gold Hybrid Recovery EA Sniper Gold Hybrid Recovery EA

XAUUSD M15 篮式反弹自动交易系统,具备自适应 ATR 间距、LL/LH 结构验证、动态 RSI 闸控、暴跌检测、新闻过滤以及智能交易修剪功能。

Volume Profile Levels Indicator Volume Profile Levels Indicator

基于最近的回溯窗口构建水平成交量直方图,并使用标准的TPO/成交量价值区域扩展算法标记控制点(POC)和价值区域——而不仅仅是POC±固定偏移量。每出现一个新K线更新一次,以侧边栏形式显示在价格旁边。

Support Resistance zig zag based Support Resistance zig zag based

基于锯齿线的支撑阻力指标是一款价格行为指标,旨在自动且动态地在图表上标注支撑位、阻力位及过渡区域(反转区)。该指标完全专注于清晰地映射价格结构,并突出显示关键反弹区域(SBR 和 RBS)。此外,它还包含一个交互式仪表盘,用于监控实时的市场走势。

离散 离散

离散技术指标由价格和交易量的变化决定。