错误、漏洞、问题 - 页 2023

 
Kirill Belousov:

你的意思是说,在声明函数的时候,应该根据传入参数的类型来检查其是否被覆盖,而不需要使用const?

还是应该在ArrayMinimum 系统函数 模板中加入const变体?

https://www.mql5.com/ru/docs/array/arrayminimum

int  ArrayMinimum( 
   const void&   array[],             // массив для поиска 
   int           start=0,             // с какого индекса начинаем поиск 
   int           count=WHOLE_ARRAY    // количество проверяемых 
   );
而警告是不够的。
Документация по MQL5: Операции с массивами / ArrayMinimum
Документация по MQL5: Операции с массивами / ArrayMinimum
  • www.mql5.com
//| Закрашивание основной части свечи                                | //
 
fxsaber:

https://www.mql5.com/ru/docs/array/arrayminimum

而警告是不够的。
 
Kirill Belousov:
原因很明显--我们眨眼了,在用于数字值的操作之前允许一个文本数组。

没有眨眼,因为我写了一个相应的ArrayMinimum。但它是被允许的,并没有因为自己的原因而被称为。这就是为什么这个说法。

void OnStart()
{
  string Str[];
  
  int i = ArrayMinimum(Str); // Warning: possible loss of data due to type conversion
  ArraySort(Str); // Warning: expression has no effect
  ArrayFill(Str, 0, 1, 0); // Error: 'Str' - type mismatch
}

凡是有红色的,就一定有黄色的编译器信息。红色仍然能做到与众不同。

 
fxsaber:

没有眨眼,因为我写了一个相应的ArrayMinimum。但它是被允许的,并没有因为自己的原因而被称为。这就是为什么这个说法。

凡是有红色的,就一定有黄色的编译器信息。红色仍然能做到与众不同。

"blundered "不是在你的法庭上 :)

我是这样看的:开发者用系统函数对任何数组的操作都有固定的函数名称,但到目前为止他们只实现了对数字数组的操作。

但他们没有在所有的情况下放上 "存根",结果是用户得到了 "离题 "的信息。

这应该被纠正--我100%同意。

 

有人遇到过这种情况吗(MT4)。

EA在许多图表上工作(基于一个模板安装)。把所有的东西都保存到了一个档案中。留在VPS上每天24小时运行

突然,在一些图表上,当我打开设置窗口时,发现所有的字符串变量都包含空值。(包括假的--只表示设置部分,如"--TOUT FILTER--")

有不同的终端和来自市场的不同作者的EA。

我自己没有重启过终端。我没有刻意改变设置。

 


你好,请你帮助我解决我的EA问题好吗?我开始测试,它给了我一个错误'array out of range in EA.mq4'(149,49)。我认为错误在这一行 for (int li_8 = li_4; li_8 > 0; li_8--) aia_0[li_8] = aia_0[li_8 - 1]; 如果在EA中删除这部分代码,测试器可以运行,但EA没有打开交易。请告知如何修改这段代码以使其发挥作用。

 
Ivan Lysenkov:


你好,请你帮助我解决我的EA问题好吗?我开始测试,它给了我一个错误'array out of range in EA.mq4'(149,49)。我认为错误在这一行 for (int li_8 = li_4; li_8 > 0; li_8--) aia_0[li_8] = aia_0[li_8 - 1]; 如果在EA中删除这部分代码,测试器运行,但EA没有打开交易。请告知如何修改这段代码以使其发挥作用。

你是用反编译的代码工作的吗?你有吗?严格禁止在这个资源上进行任何工作和讨论被盗的代码。

 
Kirill Belousov:

有人遇到过这种情况吗(MT4)。

EA在许多图表上工作(基于一个模板安装)。把所有的东西都保存到了一个档案中。留在VPS上24小时运行。

突然,在一些图表上,当我打开设置窗口时,发现所有的字符串变量都包含空值。(包括假的--只表示设置部分,如"--TOUT FILTER--")

有不同的终端和来自市场的不同作者的EA。

我自己没有重启过终端。我没有刻意改变设置。

我应该在遇到这种情况时保存模板。

 
fxsaber:

在面对时应该保留模板。

我不明白。

我只是把EA放在图表上。我设置了所需的设置并将其保存为模板。

我的意思是,所有的图表都有相同的设置。有些人在后来的设置中把字符串变量清零了。

我无意中发现--交易的评论不再出现了


我在4月份就已经申请了SD。但他们无法重现这种情况,我今天在提出要求后发现了这一点。

后来我对extern中的字符串参数的可靠性不再有信心。

下面是应用模板后立即进行的情况。


以下是故障被触发后的情况


下面是有故障的EA的图表和没有故障的图表在程序上的比较(两者都是由同一个模板打开的)。


 
Kirill Belousov:

我不明白。

看到故障后保存的模板,很有意思。我想你在最后一张截图中展示了它。

编写一个EA,读取所有运行中的EA的输入参数,并在输入参数发生变化时发出信号。然后你就能跟踪它。