错误、漏洞、问题 - 页 2484

 
Сергей Таболин:

亲爱的开发者,我遇到了一个问题。它需要你的关注。

关键是TesterStop()和ExpertRemove()并没有立即停止测试。下面是一个错误的说明。对不起,这篇文章中有些不严谨。

我认为引入MQL_TESTER_STOP常数会更正确--这是TesterStop()或ExpertRemove()测试终止的标志。

在这种情况下,我们将能够选择进一步的行动。

专家顾问的立即停止意味着记忆的丧失。专家顾问的立即停止可能会留下未释放的内存块。因此,只有在客户终端或测试员代理终止时,并且只有在专家顾问不处理停止标志并继续执行时,才会使用专家顾问的立即停止。

TesterStop给出了终止测试的命令。这意味着在当前处理程序OnInit, OnTick, OnTimer, OnChartEvent完成后,将不再处理测试器的事件,因为处理周期已经结束。而OnTester和OnDeinit将被调用

 
Slava:

立即停止EA意味着内存损坏。专家顾问的立即停止可能会留下未释放的内存块。因此,只有在客户终端或测试员代理终止时,并且只有在专家顾问不处理停止标志并继续执行时,才会使用专家顾问的立即停止。

TesterStop给出了终止测试的命令。这意味着在当前处理程序OnInit, OnTick, OnTimer, OnChartEvent完成后,将不再处理测试器的事件,因为处理周期已经结束。而OnTester和OnDeinit将被调用。

谢谢,我已经想明白了。但这并不能解决这个问题。它可以通过MQL_TESTER_STOP 常数或将返回值从void改为bool 来解决。

阿列克谢-维克多罗夫 提出了一个意想不到的解决方案。如果在TesterStop()之后使用return,一切似乎都正常了。它是如何和为什么发生的,我个人无法弄清楚。尽管如此...

因此,要么在文档中增加这一点,要么将void改为bool

P.S. 我在Build 2085中遇到了这个问题。在这之前没有任何问题。它是否对我说了什么?)))

 

你好。

为什么在测试器中,有时使用的指标没有被画出来?

我重新启动终端 - 他们开始绘制...

然后它们又停止了--尽管代码没有改变......。

 

我还想问第二个问题。

为什么在测试器中,尽管强制执行了ChartRedraw(0);,图形对象还是不更新?

事实上,测试人员事后更新它们,但有巨大的延迟和颠簸...

谢谢。

编辑:对不起,虚惊一场,这个问题已经解决了(问题出在我的故障代码上)。

但关于指标的问题仍然存在。

 
附:6月13日第2085版
 

@Slava 告诉我,在2007年的版本中,TesterStop()只在OnDeinit中传递控制?没有将控制权移交给OnTester?

这就是为什么我的代码运行良好,在这种情况下测试结果为0。

 
Сергей Таболин:

@Slava 告诉我,在2007年的版本中,TesterStop()只在OnDeinit中传递控制?没有将控制权移交给OnTester?

这就是为什么我的代码运行良好,在这样的情况下测试结果为0。

创建你的全局标志,在调用TesterStop之前设置它,并在OnTester中分析它。

 
Andrey Khatimlianskii:

启动你的全局标志,在调用TesterStop之前提高它,并在OnTester中分析它。

得到了))))事实证明,这并不那么简单。原则上,问题已经解决了,我只想听到确认,TesterStop以前的工作方式有些不同。

 
2085
Linux, Win-4.0.1

通往工具描述的链接被卡住了。

如果描述中没有链接,就不会出现这种效果。


附加的文件:
link.gif  5125 kb
 
Vladimir Karputov:

你可能有一个32x的操作系统。或者你可能正在耗费内存。

计算机。联想G50-45 (LAPTOR-46OAGFM3)
带有AMD Radeon的AMD A4-6210 APU
R3图形1.80 GHz
2.00GB内存
系统类型64位,x64处理器