有点惊讶 :)我想我应该分享并提出一个非反问的问题。 - 页 6

 
hrenfx:

假设你在测试器中有两个结果相同的EA,一个是指标,另一个是一体机。第二种方法的工作速度要快一个数量级。

速度不会有任何数量级 的提高,只是提高了10-30%。已检查。巨大的速度提升使得我们写两个专家顾问系统很麻烦,而一个 "一体化 "的专家顾问系统在调试时几乎没有用处,只能与错误作斗争。

 
Integer:

你显然对我有一些个人反感。哦,在我身上拉屎。我是什么,地球的中心,你反应过激?

为什么我不给你发一张我的照片,这样你就可以用它来擦拭自己?我才不管你的紧张爆发呢。不要在他们身上浪费你的时间和精力。

我敦促你们要有建设性,你们是成年人。

 
Integer:

速度不会有一个数量级 的提高,只有10-30%。证实了这一点。因为有这么大的速度收益,所以值得费心写两个专家顾问,而一体化的专家顾问在调试时实际上是不可行的,只能与错误斗争。

速度的提高在很大程度上取决于案例。没有人取消了算法优化。如果是某种原始的EMA,收益就会很小。但如果是更复杂的东西,可能就是一个数量级了。这取决于一个人的算法优化技能。你应该知道哪些地方会发生重新计算等等。

在这个意义上,自己编写优化器有很大的帮助。例如,在没有算法优化的情况下,一体式变体在我的测试器中比MT4测试器中同样的一体式变体快10倍(由于编程语言编译器的原因)。经过算法优化后,优势又增加了一个数量级。

在这种情况下,我不会为了10-30%的利益而去打扰它。

 

hrenfx:

1.速度的提高在不同的情况下有很大差异。算法优化从未被取消过。如果它是某种原始的EMA,那么收益将是最小的。但如果是更复杂的东西,可能就是一个数量级了。这取决于一个人的算法优化技能。知道哪些地方可以重复计算,等等 2.

2.在这个意义上,编写你自己的优化器有很大的帮助。例如,在没有算法优化的情况下,一体式变体在我的测试器中比MT4测试器中快10倍左右。经过算法优化后,优势又增加了一个数量级。

在这种情况下,我不会为了10-30%的利益而去打扰它。

1)这取决于一个人的指标写作技巧。

2.如果你准确地比较MT测试器和你自己的计算器在一个策略上的表现,你会对测试器的算法(包括院士提供的算法)的优化感到惊讶。

 
Integer:

2.如果你能够正确比较MT测试器和你自己的计算器在相同策略下的表现,你会对测试器的算法的优化感到非常惊讶。

你说的正确是什么意思?我的计算器比MT4测试器快100倍以上,而且误差<1%。这是否有道理呢?

MT4-测试仪有正常的算法,但它是为普遍性而设计的,并考虑到大量的因素,导致我的计算器有一个不明显的(对估计结果)误差。

一个简单的例子:如果我在我的EA中不深入考虑订单历史,为什么我在优化器中需要它?为什么我需要在优化器中模拟出一个零条?我们不需要这一切,所以这一切都归结为一个愚蠢的for循环。它的结果是以<1%的误差为代价获得多种速度。

我们是在MQL5论坛,但我不是在讨论MT5测试器的性能。我希望看到两个测试者的正式比较

Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
  • www.mql5.com
Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
 
hrenfx:

1.你说的正确是什么意思?我的计算器比MT4测试器快100倍以上,误差<1%。这是否有道理?

MT4-测试仪有正常的算法,但它的设计是通用的,并考虑到大量的因素,由于这一点,我的计算器给出了一个微不足道的(估计结果)误差。

2.一个简单的例子,如果我在我的EA中不深入研究订单历史,为什么我在优化器中需要它?为什么我需要在优化器中进行零条仿真?我们不需要这一切,所以这一切都归结为一个愚蠢的for循环。它的结果是以<1%的误差为代价获得多种速度。

我们是在MQL5论坛,但我不是在讨论MT5测试器的性能。我希望看到两个测试者的正式比较

我想看看两个测试器的性能比较,这样我们就可以了解测试器中最小的操作数量是什么,以将所有时间段划分为条形,同步不同的符号并执行订单。

2.我希望这不是在 "我可以写一个比MQ更好的策略测试器 "的背景下。

 
Integer:

1.这样人们就可以了解测试器中的最低操作数量,以确保将所有时间段划分为条形,不同符号的同步和订单的执行。

我相信测试器中的算法是非常好的。开发人员并没有浪费时间将其优化到最大限度--100%。但一切都很普遍--对于所有的变种。当我们考虑MTS的一个特定案例时,不需要所有的变体。这就是为什么他们在计算DUPLEX的类型时,会以一个数量级的方式获得胜利的原因。

2.我希望这不是在 "我可以写一个 比MQ更好的策略测试器"的背景下。

你对我有一种先入为主的观念,好像我在到处拉屎。在这个问题上,我完全是站在开发商一边的。我完全理解话题发起人关于测试员和优化员的任务之间的根本区别的论点,但不同意他对开发者的主张。我的意见是--如果有必要,你可以随时为自己创建自己的测试器-优化器(不是超级通用的,但速度很快)。
 
Renat:

一个正确编写的解析性指标最好在内部使用,而不是放到专家顾问代码中。

将其转移到专家顾问的代码中,通常意味着将实施一种极其定制的优化计算方法,当主要的计算量被丢弃,剩下300条历史(例如)。在大多数情况下,它会引入错误,但作者通常不会注意到这些错误。意外的是,在实际工作中,可能会发现基础指标和它在专家顾问中的缩小版并不一致。

我同意这一点,但有一个问题,在某些情况下,这给它打了一个大胆的叉。

这是没有正常实现IndicatorCounted()的情况--任何时候它都会被重置为零,你很清楚这一点。

我采用了另一种方法--制作了我自己的数据提供者(相当优化的算法,对数据进行循环寻址),制作了我的函数 IndicatorCounted()。

这种方法在现实条件下充分证明了自己。

此外,指标的转移实际上是1:1,而且在调试等方面也没有问题。

以Zigzag和ATR为例,将指标作为类来实施

在测试器中甚至还有一些算法和方法的比较。

P.S. 至于误差,这取决于指标的算法。在大多数情况下,忽略前几个小节就足够了,其余的部分会1:1重合。

我专门为此写了测试模式。


P.S.2 对于ZigZag来说,这简直是一个不可或缺的脱身之道。

我只在需要时才调用它重新计算,它可以返回扩展的结果,即只有最后一个点被重新绘制。

它允许优化专家顾问的其他算法。


P.S. 3 关于MT5,我想说这是一个伟大的平台。但是有一些严重的错误。

- 关键性的错误(当然它们会被及时修复)。

- 对TERMINALMaxBar有疑问的方法(我写过它的情况是一个死胡同)。

- 缺乏足够的IndicatorCounted()函数(但我现在根本不需要它)。


P.S.4 我不能对测试人员说什么,因为我不玩 "优化 "游戏。

 
AlexSTAL:

我同意这一点,但有一个但是,在某些情况下,它可以让人感到肥胖的结束。

...

如果根据你自己的测试,嵌入Expert Advisor的类比通过iCustom()调用要慢,那么它的意义何在?

还有一个问题,你准备用这种风格重写所有的指标吗?

 
Integer:

如果根据你的测试,专家顾问内置的类比通过iCustom()调用要慢,那么它的意义何在?

还有一个问题,你准备用这种风格重写所有的指标吗?

重点不是在测试器中,再次强调!不是在测试器中,而是在真实的条件下,在下载历史记录和发生连接失败时

关于所有的指标--问题出在哪里?