错误、漏洞、问题 - 页 1562

 

我在 "真实刻度 "模式下一次运行测试器,测试了两个角色。同步性精确到毫秒。因此,有时似乎有一个不匹配的刻度线序列。在1毫秒内,两个字符上可能会有数个滴答。告诉我,在这种情况下,喂养蜱虫的算法是什么?

在没有IndicatorRelease的情况下,如何以最佳方式在测试器中捕捉每一个刻度(计时器在1毫秒内跳过刻度),当有几个符号同时出现的时候?

 
Anton Zverev:

我在 "真实刻度 "模式下一次运行测试器,测试了两个角色。同步性精确到毫秒。因此,有时似乎有一个不匹配的刻度线序列。在1毫秒内,两个字符上可能会有数个滴答。告诉我,在这种情况下,喂养蜱虫的算法是什么?

而在没有IndicatorRelease的情况下,如何在测试器中捕捉每一个tick(定时器在1毫秒内错过tick),当有几个符号同时通过时,如何做到最佳?

在测试器中,最小的时间量子是1秒。因此,在1ms下运行定时器是没有用的。

在同一秒内可能会有数次抽搐。而且来自不同的工具。滴答的算法是这样的,在被测试的工具的滴答时间的那一刻,同一秒的其他工具的所有滴答都已经提交。

 
Slawa:

在测试器中,最小的时间量子是1秒。因此,在1毫秒处启动定时器是没有用的。

在同一秒内可能会有数次抽搐。而且来自不同的乐器。滴答的算法是这样的,在被测试的工具的滴答时间的那一刻,同一秒的其他工具的所有滴答都已经提交。

你会考虑在测试器中的每个tick 上调用EA的正常解决方案吗?
 
Anton Zverev:
你会考虑在测试器中的每个tick上调用EA的正常解决方案吗?
在测试器中,EA在被测工具的每一个 刻度上都被调用。
 
Slawa:
在测试器中,专家顾问在被测试符号的每一个刻度被调用

你完全知道我在问什么。我运行两个符号,我无法捕捉到第二个符号的刻度。人们早就提出了唯一的解决方案--通过指标释放。但它本身看起来是个拐杖。

我看到了各种多符号测试器。我只在五岁时遇到过这样的问题。你怎么没有预见到这一点,这是个谜。

请思考如何改进MQL,使这个最薄弱的环节被消除,使产品真正完整。我已经提出了我自己的变体,但你的变体100%地更合理。

 
Anton Zverev:

你完全知道我在问什么。我运行两个符号,我无法捕捉到第二个符号的刻度。人们早就提出了唯一的解决方案--通过指标释放。但它本身看起来是个拐杖。

我看到了各种多符号测试器。我只在五岁时遇到过这样的问题。你怎么没有预见到这一点,这是个谜。

请思考如何改进MQL,使这个最薄弱的环节被消除,使产品真正完整。我提出了我自己的变体,但你的变体100%更合理。

这是另一个问题。

什么是 "抓住第二个虱子"?

当你正常运行EA时,你如何捕捉到第二个工具的ticks?

 
Slawa:

这是另一个问题。

什么是 "抓住秒针"?

对于EA来说,在第二个符号的每一个刻度都会被调用。

当EA正常启动时,你如何捕捉第二个符号的刻度?

我通过IndicatorRelease将指标放在第二个符号上。在其符号的每一个刻度,它都会创建ChartEvent事件。专家顾问,分别抓住了这个事件。

根据搜索结果,这个糟糕的解决方案是多年前提出的。我还没有找到其他可行的解决方案。如果应该对10个符号进行测试,那么就推出9个指标。

假设我们有一个专家顾问,在每个tick上增加计数器。

我在测试器中的一个符号上运行它,在那里它是100万次。计数器显示为100万。

我还达到了另一个符号,它显示为100万。

我把它同时通过两个符号。它未能显示200万。

现在清楚了吗?

 
Anton Zverev:

请思考如何改进MQL,使这个薄弱环节消失,使产品变得真正完整。我提出了我自己的变体,但你的变体100%更有思想。

事实上,需要实现的变化非常简单--OnBookEvent事件不仅应该在改变认沽时被调用,而且应该在要签署的工具上出现新刻度时被调用。由于这一事件,已经可以从FORTS(有市场的地方)的其他符号中捕捉到新刻度的到来。

如果我们是在外汇市场上,并且没有tick,OnBookEvent在新的tick到来时被调用。如果我们在交易所--当市场汇率变化时,OnBookEvent被调用。这就是全部。

 

如果每一个符号,终端都能保持一个tick计数器(从连接的那一刻起),那就方便多了。而每个专家顾问,当被调用时,将得到它被调用的刻度线的数字。

这样就可以估计出漏掉的虱子。

现在,每个EA都需要在一个图表上被触发。BookEvent是第一只燕子,说运行EA不需要图表。

 
Anton Zverev:

我想让EA在第二个符号的每个刻度上被调用。

我在第二个符号上使用IndicatorRelease。它在其符号的每个刻度上创建ChartEvent事件。专家顾问,分别抓住了这个事件。

根据搜索结果,这个糟糕的解决方案是多年前提出的。我还没有找到其他可行的解决方案。如果应该对10个符号进行测试,那么就推出9个指标。

假设我们有一个专家顾问,在每个tick上增加计数器。

我在测试器中的一个符号上运行它,在那里它是100万次。计数器显示为100万。

我还达到了另一个符号,它显示为100万。

我把它同时通过两个符号。它未能显示200万。

现在清楚了吗?

只有在第二个符号的图表上,专家顾问才会在第二个符号的每个刻度上被调用。

你不需要理会任何图表事件。一切都已经在你面前完成了,你只需要看看周围。

1.例如,你做一个1秒的计时器。

2.你在OnTimer中用Sleep(10)安排一个从0到100的循环,并控制其运行时间不超过1秒。

3.使用SymbolInfoTick 查询,分析任何你喜欢的工具。

这种结构也会在测试器中发挥作用。

PS,最好让定时器的时间更长,例如3600秒。

而这个循环必须不是一秒钟,而是不到一个小时的组织。带有强制性的检查IsStopped()

顺便说一句,睡眠是必须的。否则你会挂掉测试器。那么,在专家顾问的正常工作中,系统资源将被消耗掉。