错误、漏洞、问题 - 页 239

 

该图表刚刚被 "更新"。而且又是一样的。

 
Yedelkin:

该图表刚刚被 "更新"。而且又是一样的。

紧急写给servicedesk,不要关闭终端
 
AlexSTAL:
紧急写信给servicedesk,并保持终端开放。
好吧,我就直截了当地复制这个主题的链接。
 

刚刚在终端检查了一下--欧元兑美元 的M1图表 完全出现在指定的位置,没有缺口。

尝试从图表的上下文菜单中给出 "刷新 "命令。

 
Renat:

刚刚在终端检查了一下--欧元兑美元的M1图表完全出现在指定的位置,没有缺口。

尝试从图表的上下文菜单中给出 "刷新 "命令。

手动刷新,谢谢你。由于我实际上不使用图表,我有一个问题:在这种情况下,我如何在专家顾问层面更新迷你表格的基础?终端只在其拥有的数据库中工作。我是否应该整合检查同步的功能?
 
Renat:

刚刚在终端检查了一下--欧元兑美元的M1图表完全出现在指定的位置,没有缺口。

尝试从图表的上下文菜单中给出 "刷新 "命令。


我认为在某处有一个浮动的错误....由于我不是唯一一个有大约相同情况的人,所以....。
 
Yedelkin:
它是手动更新的,谢谢你。由于我实际上不使用图表,我有一个问题:在这种情况下如何更新分钟基数?终端只与它的底座一起工作。我是否需要整合同步检查的功能?

我在计时器中记住了失去和恢复通信的时间。

有了这些信息,你可以尝试下载这段时间的历史记录(你也可以检查与服务器的同步情况,如果有意义的话)。

 

各位开发者,我无言以对。我遇到了一个问题,在从另一个对象内部调用同一方法后,局部变量在对象方法中被 "擦掉"。也许这与对象的嵌套函数调用中的一些优化有关,但至少在日志中没有错误,也没有内存泄漏。我不能引用一个大的代码,但原则上从例子中可以看出其含义。

变体1

bool operate(CAlgoBlockLogic* s1, CAlgoBlockLogic* s2) {
 bool d1 = s1.process();
 bool d2 = s2.process();
 return (d2 && d1);
}

变体2

bool operate(CAlgoBlockLogic* s1, CAlgoBlockLogic* s2) {
 return (s2.process() && s1.process());
}

理论上讲,代码的工作原理应该是完全 一样的。但是...这些变种的工作方式不同。

因此。变体1不能正常工作。我在调试文件中运行了一条记录,发现在操作函数中定义的变量d1 同一操作函数的内部调用中的d1变量的值所覆盖,但是在另一个相同类型的对象中。也就是说,简而言之,在调用
 bool d2 = s2.process();

变量d1的 变为s2.process内部操作调用中发生的。这种行为与改变同一类型的对象的静态 变量的值时相同。但这里的变量显然有一个局部范围

静态变量的问题在这个主题中被提出来,一切都很清楚。但如何处理局部变量值的不确定性?

Документация по MQL5: Основы языка / Переменные / Область видимости и время жизни переменных
Документация по MQL5: Основы языка / Переменные / Область видимости и время жизни переменных
  • www.mql5.com
Основы языка / Переменные / Область видимости и время жизни переменных - Документация по MQL5
 

"......在操作函数中定义的变量d1被同一操作函数的内部调用中的变量d1的值所覆盖,但在同一类型的另一个对象中。即简而言之。在调用
bool d2 = s2.process();
变量d1的值变为s2.process内部的操作调用中发生的值。"

听起来要么是一个隐藏的递归,有一系列常见的副作用,要么就是......。

 
Vigor:

从理论上讲,代码的工作原理应该是完全 一样的。但是...这些变种的工作方式不同。


不,这并不完全相同。

在第一种情况下,s1.process和s2.process被无条件地调用。

在第二种变体中,只有当s2.process返回true时,s1.process才会被调用。这被称为"缩短的条件评估"