错误、漏洞、问题 - 页 440

 
Renat:
请计算你的负值的结果,并将其与32位的int相关联,然后阅读关于算术溢出的知识,找到你的17天。

欢迎来到真正的编程世界。

我没有问 "17天是怎么来的?我再重复一遍:我在测试器中发现了一个我不理解的情况,告诉了我,得到的解释是:(1)Sleep()函数 对负值也有作用,它给出了一个非零的延迟,(2)Sleep()函数的工作在测试器中是模拟的。如果开发商认为可以接受,我可以退回什么?没有必要精确计算17天。

Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 
stringo:
你有什么建议?在紧急情况下终止方案?
如果不知道系统如何运作,就很难提出建议。我的目的是听出问题,然后由你来决定。这一次,事实证明,这个问题完全符合当前终端的意识形态。那么,我将知道更多。
 
uncleVic:

是的,我们没有看到大象。

我对这句话有强烈的怀疑。


而在这种情况下。

在我看来,编译器不应该错过这个。你有什么吗?连一个警告都没有?如果没有,请向服务台提出请求。好吗?


第154746号 申请

我们如何获得s1.open数组中具有最大/最小值的元素的序列号?

 
Yedelkin:

在这种情况下,我在 "睡眠功能 "部分有一条指令就足够了......(2)"睡眠()功能完全被测试者支持"。

我们在另一篇文章《MetaTrader 5的测试 基础》中强调了有关测试的基本问题。在这里,我们试图解释使用测试器中各种功能的大部分细微差别。我们还解释了函数Sleep()。

测试器中的Sleep()函数

Sleep() 函数允许你在专家顾问或脚本中暂停mql5程序的执行一段时间,当在一个图表上工作时。当请求一些数据时,这可能是必要的,因为在请求时这些数据还没有准备好,你需要等到它们准备好。关于Sleep()函数使用的详细例子可以在数据访问组织 部分找到。

在测试器中,对Sleep()的调用不会延迟测试过程。 当调用Sleep()时,生成的ticks在指定的延迟内被 "播放",这可能会触发挂单、停止等。在Sleep()被调用后,测试器中模拟的时间被增加了Sleep函数参数中指定的时间间隔。

如果由于Sleep()的执行,测试器中的当前时间超过了测试期的结束,将收到一个 "Sleep中的无限循环 "的错误。如果发生这样的错误,测试结果不会被丢弃,所有的计算都会完成(交易数量、缩减等),结果会传给终端。

函数Sleep()在OnDeinit()中不会起作用,因为在它被调用后,测试时间保证会超过测试间隔。



图7.在MetaTrader 5终端测试器中使用Sleep()函数的方案。

 
Rosh:

我们在另一篇文章中具体介绍了测试的主要问题,即MetaTrader 5中的测试 基础知识。在这本书中,我们试图解释使用测试器中各种功能的大部分细微差别。我们还解释了Sleep()函数。

对不起,这确实是我的错,我已经9个月没有测试了,错过了这篇文章。

如果能在《参考指南》的相应章节中提到关键的文章就更好了(我去年已经提出过类似的建议,但今天是一个再次提出的好机会)。毕竟,我们首先都在使用F1。

 
也就是说,你没有按照我的要求去做。

这里有几个人试图指出你的算术溢出的简单错误。
 
Renat:
就是说,你没有按我的要求去做。

这里有几个人想指出你的简单算术溢出错误。

==============================================================

你问。

雷纳特
你能不能好心地计算一下你的负值的结果,将其与32位的int相关联,然后阅读一下关于算术溢出的知识,找到你的17天......

我回答说:是的,我没有问 "17天到底是从哪里来的?":) 等。

回答你目前的问题。你所要求的--我没有做。因为这是我昨天做的(我的初始数据略有不同,但本质上是我理解的)。如果有人编译了那个脚本,我就会收到多达两个警告。溢出/断流--我昨天自己处理了这个问题。

问题是,为什么(1)函数在参数为负值的情况下运行,以及(2)对于这样的参数在测试器中给出一个延迟。然而,你又指出 "程序员的错误 "与int类型的溢出。- 也就是说,你拒绝我的测试样本只是因为在选择Sleep()函数参数时指定了 "溢出的值"。但重点不在 "溢出的价值"。这只是对测试样本的一个额外的触摸。看来参加讨论的人都明白。最后,你可以在测试的例子中插入 "不溢出的价值"--在所有其他条件相同的情况下,问题的本质将保持不变(问题本身已经处理过了)。

总之,谢谢你的提示。因为如果编译器没有警告你,你的建议可能会派上用场,让你三思而行。

 

对它的使用有什么限制? W =(long)ChartGetInteger(Chart_ID[i],CHART_WIDTH_IN_PIXELS,0)。
H =(long)ChartGetInteger(Chart_ID[i],CHART_HEIGHT_IN_PIXELS,0)。
W_B =(long)ChartGetInteger(Chart_ID[i],CHART_WIDTH_IN_BARS,0)。

从void OnInit()中调用函数,一切都正确,但从void OnTick()中,数据不正确,特别是CHART_WIDTH_IN_BARS给出了可见的条数,尽管我知道应该给出适合于图表的条数,而不是偏移。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
Virty:

对不起,我的问题太原始了。

交易查询没有运行。错误10014--请求中错误的体积。

我怎样才能从EA内部了解/计算出我目前可以买入的最大和最小 手数?

OrderCheck函数不适合,因为它只检查,没有说可以买多少手。

请看ENUM_SYMBOL_INFO_DOUBLE枚举和 相应的函数。这就是你的意思吗?
 
Yedelkin:
参见ENUM_SYMBOL_INFO_DOUBLE枚举和 相应函数。你是这个意思吗?
是的,谢谢你。SYMBOL_VOLUME_MAX 是我自己发现的,你也帮了忙。
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5