欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

用于测试大量交易设置组合的测试器 - MetaTrader 5 专家

author emer | 240 人阅读 | 0 人评论 |

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

欢迎使用二进制测试器。

该 EA 的目的是测试不同的指标以优化交易场景。

每个人对于什么是最好的交易设置都有自己的看法,并且建议永无止境!如果你测试一下就更好了...

这个 EA 完美吗?不,当然不是!我愿意接受修改建议。但核心逻辑是可靠的:-)

该 EA 用于测试交易场景组合以获得最佳设置。它将以二元方式遍历您选择的所有交易决策组合,并提供每个场景或序列的结果。

注释掉的“先决条件”区域是您应该将您的想法或已经测试过的内容作为公开购买决策和/或关闭购买决策的良好先决条件的地方。如果您在这里有一些东西,您应该从 0 开始您的测试序列,以将其作为测试结果的基础!如果您将此注释掉,则应从 1 开始。

case 语句是您想要与所有其他 case 语句测试结合测试的单独条件。 BuySequence 的 case 语句示例可以是 MA30 > EMA12 或 rates[1].low < BollingerBandsLow[1] 等。无论您定义什么条件。然后 EA 将测试所有语句的每个唯一组合并提供该唯一序列的结果。

例如,如果您在 BuySequence 中输入 3,它将同时使用情况 1 和 2 进行测试。(因为 1 和 2 = 3)

如果您在 BuySequence 中输入 4,它将仅测试案例 4。如果您输入 5,它将测试案例语句 1 和 4,但不会测试案例 2。这是二进制逻辑。

通过测试从 1 到 7 的范围,它将测试第 1-4 个 case 语句的所有组合 (4+2+1)。 (即情况1、情况2、情况4)。

这意味着它将在第一遍测试 1,第二遍测试 2,第三遍测试 1 & 2,第四遍测试 4,第五遍测试 1 & 4,第六遍测试 2&4,第七遍测试 1,2 & 4。

     它以二进制方式索引所有组合。这是核心逻辑。

以下是使用 Testinator 时值得注意的事项

0)不要使用有机优化,因为这会在测试索引中寻找模式并更接近该索引,并且不会测试所有场景。此测试场景中没有模式,因为每个测试序列都完全不同。

1)它可能会产生一个与您认为它正在做的事情不同的序列。 注)可能会产生极其罕见或可能永远不会发生的序列组合,从而导致很少或没有交易或在测试结束之前保持未平仓交易。

2)可能(并且很可能)会出现重复的结果。多个结果均显示相同的利润、亏损和交易数量等... 注意)这是自然发生的情况,因为两个或多个序列可以同时、始终为真。只需选择序列号中较小的一个即可。

3)大型组合是可能的,但 MT5 测试仪有局限性。 注意)我已经成功测试了多达一百万种组合。 XML 文件很大,但 Excel 会打开并且不会截断数据。此外,如果需要处理大型数据集并进行进一步分析,强烈建议使用 MySQL 之类的工具。将文件保存为 CSV,然后导入 MySQL 对我来说是最简单的方案。

4)在测试大型组合时,强烈建议使用更多处理器。我使用了本地网络农场(我家里的一台额外的多核计算机)和 MQL5 云网络。 MQL5 云网络太棒了!在一种情况下,本地网络场大约需要 32 小时,而云在 10 分钟内完成了相同的测试。这个特定测试的费用约为 4 美元,但对我来说是值得的。我原本打算使用具有多个核心/线程的 Killer AMD 设置,但现在我会坚持使用云。

5)注意你的错误!!!在开始测试之前,请仔细检查所有内容。在离开终端之前,先观察一下结果,看看它们是否符合您的预期。没有什么比运行很长的测试更让您不高兴的了,结果却发现您的条件配置设置不正确,或者序列应该以 0(先决条件)而不是 1 或其他数字开头。简单的错误可能会花费您的时间和金钱,并产生非常不可靠的结果。

6)对您正在寻找的内容有一个明确的目标(请参阅问答部分),并且不要陷入没有端到端明确范围的测试周期!分析瘫痪很容易发生。

7)如果您测试开盘价并找到良好的序列,则在每个价格变动时对买入和平仓序列执行一次测试。如果它是好的,那么它在每个报价或基于真实报价的每个报价上仍然应该是好的。

附:从今天起(2020 年 1 月 5 日,版本 2286),我会避免使用“MarketWatch 中选择的所有交易品种”优化测试选项。我已经运行了这个,然后对外汇货币对进行了一次测试,结果却截然不同。此外,“更快计算的 PIP 利润”也会产生奇怪的结果。我运行的 EA 产生了正的资金结果,却产生了负的 PIP 结果。

问答/评论

问)我到底在寻找什么?

一个)指标提供了一些迹象表明市场正在朝着一个方向发展。有时它们是正确的,有时(很多时候)它们是错误的,或者被市场“欺骗”。您正在寻找一种交易设置,其正确的点子数多于伪造的点子数。当发生伪造事件时,您会迅速关闭订单,以免损失太多资金。从而获得净利润。请参阅最后的屏幕截图。

问)我可以添加不同的或自定义的指标吗?

一个)如果你问这个问题,那就不,  也许不应该。在 MQL5.com 上找人(https://www.mql5.com/en/job)或其他地方为您进行更改。请记住,您的序列范围将会改变。如果愿意,您也可以删除序列,但请记住将序列案例编号保留为二进制序列(1、2、4、8、16...),并且您的测试范围应停止于这些数字的总和。

问)会有 MQL4 版本吗?

一个)不,事实上,我已经编写了一个代码。但Metatrader 4仅使用单核,并且Cloud不适用于MT4。除非英特尔或 AMD 推出 Bazillion GHZ 单核性能处理器,否则计划将继续使用 MQL5 进行开发和测试。如果找到良好的交易设置,则可以轻松地将其迁移回 MQ4 EA。

问)OnTester 功能是什么以及如何使用它?

一个) 这是平仓的平均柱线。  它将出现在数据导出的“自定义”列中。

     该贸易序列的 CSTS(安全贸易系统系数)值已被注释掉。 

      如果你想使用它,并且可以获得1或更大的系数,那么它也许是一个很好的交易系统。参考:https://www.mql5.com/en/articles/286

问)Metatrader 崩溃/冻结,我怎样才能得到我运行的结果?

一个)查看测试器窗口的顶部栏,有一种方法可以查看过去的结果。只需选择专家,然后单击“查看以前的结果”即可。希望它应该在那里。 MT5 还有一个很棒的功能,如果您再次运行它,它会从上次中断的地方继续,或者提取之前完成的结果。

问)如何将数据导入Excel/MySQL?

一个)在测试器窗口中,右键单击并选择导出到 XML。然后我会立即另存为“Excel 或 CSV”。将其导入 MySQL 有点复杂。特别取决于您的操作系统和版本。互联网上有很多信息。

问)您没有正确使用 MQLRates(或 EA 的任何其他部分)!你不知道自己在做什么。

一个)我愿意接受有用的建议。

问)你的追踪止损完全是废话!只有在盈利之后才应该进行跟踪。

一个)请参阅上面的答案:-)

问)这太愚蠢了,你只是在黑暗中摸索。

一个)1)是的,所以。 2)别再这么消极了。

问)我有一个建议/需要帮助/想要谈论一个不同的 EA。

一个)给我发电子邮件: quint@savoon.com

 我有一份日常工作,所以无法保证我会多快回复。

问)这太棒了,它应该找到完美的交易设置!我是否应该明天辞去工作并全身心投入寻找黄金设置?

一个)不,一鸟在手胜过二鸟在林。先把钱存入银行,然后再和老板谈谈。

核心逻辑观察

1)      购买决策中的进入条件越多,交易就越少。这是因为满足所有这些条件的可能性变得越来越少。进入条件的数量与良好的交易设置无关。更多并不总是等于更好,更少更难衡量。

2)      平仓决定中的退出条件越多,交易的持仓时间就越长。这是因为满足所有这些条件的可能性变得越来越少。这里就是 && 与 ||争论,以及退出条件如何变得极其复杂。 && 与 || (AND vs OR)争论的核心前提是止盈和止损也可以通过退出条件来表达,但不能用AND来表达。这可以通过代码更改来实现,并且可能会出现在版本 2 中:-)但如果这样做的话,可能的数字将会呈指数级增长。

3)      在比较两种交易设置时,利润因子的衡量仅适用于具有相同大致交易量的不同交易设置。例如,您不应将每年 12 笔交易、利润系数为 3.4 的交易设置与每年 732 笔交易、利润系数为 2.1 的交易设置进行比较。从数学上来说,这是苹果和橙子。为了比较这两种交易设置,您需要在 61 年内每年仅运行 12 笔交易,才能获得近似比较。

4)      当交易一个时间框架时,交易逻辑应该合理地接近该时间框架。例如,使用 M1 时间范围的交易设置应该在相当短的时间内结束,因为几周后结束的决定与您基于分钟的入场逻辑无关。同样,基于每周或每月时间框架做出核心决策的交易设置不应在很短的时间内例行平仓,因为入场逻辑仍然成立。

 5)      策略生成的交易数量是一个广泛未被充分利用但非常重要的指标。这将产生许多结果,并且确定策略的质量将变得困难。请记住,您在策略中添加的条件越多,您获得的交易就越少。您应该通过损失这些交易来以某种方式获利。将交易数量视为成本。完美的策略应该是每次价格变动都进行交易、没有损失、没有回撤的策略。这是不可能的,所以我们只是假设。因此,最糟糕的策略是只交易一次,它会亏损并消耗您的整个账户。我可以从宏观和微观层面解释交易的重要性。在宏观层面上,假设您有一个疯狂的策略,每年产生 1000 笔交易,利润为 150 美元。您向该策略添加更多条件,每年收益 160 美元,但只有 10 笔交易。是的,钱更多,但是一年 10 次交易你真的能相信吗?从微观层面上讲,此衡量标准允许您使用损失的交易成本进行比较。例如,如果您的交易场景生成 500 笔交易,利润为 80 美元,回撤为 3%,而您添加的新条件仅产生 480 笔交易,但产生 95 美元利润,回撤为 7%。您可以衡量您损失了 20 笔交易和 5% 的亏损,收益为 15 美元。您不希望添加一个新条件并导致 400 笔交易,利润为 75 美元,回撤为 3%。您可以衡量您在交易中遭受了损失,但同时也损失了利润!

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5

Testinator for testing massive combinations of trade setups - expert for MetaTrader 5


附件下载

📎 testinator_v1.30a.mq5 (101.41 KB)

Source: MQL5 #27546

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录