错误、漏洞、问题 - 页 439

 
请帮助我,我在MEditor5的向导中制作了一个EA,编译后放在图表上,它(EA)崩溃了,也就是说,图标出现后又消失了。
 
cokfx:
帮助,请在MEditor5的向导中制作一个EA,编译后放在图表上,它(EA)就会弹出来,即图标出现又消失。

我们把猫头鹰放在什么符号上,放在什么TF上?日志中说什么?
 
Renat:

这意味着测试人员或MQL5执行环境没有错误,但程序员有一个明确的错误。

程序员发现了 程序的一个意外行为,发现了这个行为的本质,明确地重现了这个行为,举了一个简单的例子,使之达到了荒谬的程度(带负值的睡眠),而程序员却说这是一个程序员的错误 :)尽管 "程序员的错误 "是指,例如,明确说明测试器中的 "睡眠 "功能不起作用。

从上面的解释可以看出,开发者认为在Sleep()函数中使用负值是可以接受的。虽然从函数描述("......它延迟执行当前专家顾问或脚本的特定时间间隔"),我们不能假设延迟时间间隔可以用负数计算。 谈到错误,考虑我的声明,终端应该防止在Sleep()函数中使用负值,因为。

 
Yedelkin:

程序员发现了 一个出乎他意料的程序行为,发现了这个行为的本质,明确地再现了这个行为,举了一个简单的例子,使其变得荒谬(带负值的睡眠),程序员说这是一个程序员的错误:)尽管 "程序员的错误 "是指,例如,明确说明测试器中的 "睡眠 "功能不起作用。

从上面的解释可以看出,开发者认为在Sleep()函数中使用负值是可以接受的。虽然从函数描述("......延迟执行当前专家顾问或脚本的特定时间间隔")来看,很难说延迟时间间隔可以用负数来计算。 谈到错误,请考虑我的说法,即终端应该防止在Sleep()函数中使用负值,因为。

而你可能预计,如果延迟是负的,你会在进入睡眠之前退出睡眠?
 

Yedelkin,你如何想象编译器会控制函数的参数?有几十个这样的函数,必须控制参数值。

这里有两种情况之一--要么是编纂速度,要么是完全的偏执控制。

我们选择了第一种方式。在这种情况下,运行时子系统不会在运行时跳过错误的参数,产生一个错误代码,我们可以使用GetLastError函数 得到这个代码。

Документация по MQL5: Проверка состояния / GetLastError
Документация по MQL5: Проверка состояния / GetLastError
  • www.mql5.com
Проверка состояния / GetLastError - Документация по MQL5
 
你能不能好心地计算一下你的负值的结果,把它和32位的int联系起来,然后阅读一下关于算术溢出的知识,并找到你的17天。

欢迎来到真正的编程世界。
 
uncleVic:
而你一定预料到,在你进来之前,你会在延迟的情况下离开睡眠?

预期的假设是错误的。

使用负值的工作根本就没有打算。见我上面的帖子:"从函数描述("......延迟执行当前EA或脚本一定的时间间隔")来看,很难假设延迟的时间间隔可以用负数来计算"。这不是关于我 "可能期望 "的事情,而是关于事实上,SLeep函数允许处理负值。当这件事被发现时--发了一条信息。如果你认为Sleep()函数的这种操作是可以接受的,那么它将继续如此。

 
Yedelkin:

但是,事实上,SLeep函数 允许你处理负值。

你有什么建议?在紧急情况下终止该计划?
 
Yedelkin:

关于期望的假设是错误的。

使用负值的工作根本就没有打算。见我上面的帖子:"从函数描述("......延迟执行当前EA或脚本一定的时间间隔")来看,很难假设延迟的时间间隔可以用负数来计算"。这不是关于我 "可能的期望",而是关于事实上,SLeep函数允许对负值进行处理。当这件事被发现时--发了一条信息。如果你认为Sleep()的这种操作是可以接受的,它仍然是如此。

当然,内部表示是无符号的。

你可以把参数的类型改为uint。

 
stringo:

Yedelkin,你如何想象编译器会控制函数的参数?有几十个这样的函数,必须控制参数值。

这里有两种情况之一--要么是编纂速度,要么是完全的偏执控制。

我们选择了第一种方式。在这种情况下,运行时子系统在执行阶段不会跳过不正确的参数,产生一个错误代码,我们可以用GetLastError函数 得到这个代码。

是的,先生们,我总是站在你们这一边!"。:)而我在编程方面只知道你所知道的一小部分(我只接受MQL5参考的指导)。但是,如果我看到一些我个人 不清楚的地方--我就写出来。如果可能的话,我试图举出一个 "不清楚的时刻 "的生动例子。相应地,如果你认为 "警报是假的",那么事实证明,要么是我误解了参考材料,要么是参考材料没有反映出理解这一时刻所需的所有信息。在这种情况下,我只要在 "睡眠函数 "部分有一个指示(警告)就足够了:(1)"编译器不控制函数参数的值,所以函数可以在负值的情况下工作 "和(2)"睡眠()函数完全被测试者支持"。

我不知道编译器是如何工作的。 从所描述的编译器工作范式出发,我有一种冲动:在几十个函数的注释中反映它们的参数值不受终端控制。