MQL5的未来是MQL5+甚至是MQL6 - 页 9

 

Mihail Matkovskij:

尽管有可能绕过它们,但问题是,既然在其他现代内核中没有这样的问题,为什么还要绕过呢?

其他现代语言有不同的做事方式。例如,在Java中,没有全局变量和常量,但可以使用已声明的类的静态变量 来代替。但这一点并没有改变,因为如果你指定了一个在不同类中重复的静态变量名称,编译器会要求澄清它所属的包和类的名称,因为编译过程没有心灵感应能力。课堂的情况也是如此。如果你指定了一个在不同包中重复的类或接口名称,编译器会再次要求你指定包的名称。
 
Mihail Matkovskij:

虽然这个错误并不关键,但仍然很不方便。

这不是一个错误,它更像是一个通知。有些语言甚至没有这类通知。本地范围内的东西与更高的东西重叠,那就这样吧。这就是它的本意。但在某些情况下,这样的警告是相当有用的。

例如,在MQL中,全局变量 与之无关,我建议不要使用全局变量 也是不相关的。

创建多个作用域。

int OnInit()
  {
        int i = 10;
        {
                int i =5;
                {
                        int i = 0;
                }
        }
   return(INIT_SUCCEEDED);
  }

看吧,我们得到了两个警告。

declaration of 'i' hides local declaration at line 3    
declaration of 'i' hides local declaration at line 5    

因此,结论是--

1)无视此类警告
2) 避免在下面/上面的能见度区域使用相同的名称
3) 说服服务台删除这个无用的通知

 
Igor Volodin:

3) 说服服务台删除这个无用的通知

如果每个白痴都能说服服务台删除这个或那个规则,因为从他们的角度来看,这个规则是无用的,那么语言很快就会退化成原始的垃圾。

 
Mihail Matkovskij:

我的意思是,它怎么可能不被创造?任何编程语言都可以自由使用全局变量,这很好,但在这里,编译器发誓。虽然这个错误并不关键,但仍然很不方便。

可变点报告的是1个点的价格,是标准点的替代物。MarketInfo(EA_Symbol(), MODE_POINT)函数给出任何符号的1点价格。此外,变量点可以在任何函数中使用,在EA的主体中,如果它是一个全局变量,当然。同意这种情况经常造成一些不便(如果你肯定有MQL编程的经验)。虽然它们可以被避免,但问题是,如果在其他现代语言中根本不存在这样的问题,那么为什么呢?

变量点不能是一个全局变量。这是因为不同的符号的点价是不同的(尽管通常情况下,点价是一致的)。因此,点值只能在特定符号的特定EA交易中计算,不能以其他方式计算。
 

不幸的是,只有有经验的程序员才明白这种警告的作用和重要性。

好吧,我建议其他人对这种水平的编译器的帮助感到高兴,并修复自己的错误。这些都是真正的潜在错误的地方,正是对于新手开发者来说,学习是至关重要的。

 

我想要一个颜色方案。不仅在编辑器中,而且在其他窗口中,这样就可以改变文字和背景颜色。

当名称重合时,类成员数据不应该被染成实例变量的颜色。

 

已经有好几次,在结束一天的工作并关闭程序窗口、浏览器等时,我不小心把在优化模式 下运行的MT5终端也关闭了。因此,所有的结果都丢失了。重启终端后,一切又重新开始。

许多程序在你点击关闭一个窗口时,会问你是否确定要关闭它,未保存的数据可能会丢失。

如果终端正在被优化,这样做是个好主意。

 
Igor Volodin:

这甚至不是一个错误,它更像是一个通知。有些语言甚至没有这类通知。局部地区的东西与更高层次的东西相重叠,所以很好。这就是它的本意。但在某些情况下,这样的警告是相当有用的。

例如,在MQL中,全局变量 与之无关,我建议不要使用全局变量 也是无关的。

创建多个作用域。

看吧,我们得到了两个警告。

因此,结论是。

1)无视此类警告
2)不在下面/上面的可视区域做相同的名字
3) 说服Servicedesk删除这个无用的通知

好吧,在一个范围内有两个同名的变量是不好的,任何程序员都知道这一点。但问题是,这个范围包括标准模块,任何普通程序员都不会篡改这些模块,因为他/她不认为自己是开发者。删除警告也不是一种选择。不注意它们也是一种真正的不便,因为你可能没有注意到重要的警告。

我认为这里有两种解决问题的方法。

1.如果没有明确指定的话,让插件不看插件程序。

2.如果开发者不愿意改变语法,可以为函数中的参数声明引入一条规则,类似于类的字段,例如,参数名称应该以i或i_开头(从字母表输入),从而固定标准模块中的所有参数

 

编译器工作正常,这些警告也异常正确。

只有一条出路:不允许有变数的重叠,不要试图用要求我们其他人尊重这种权利来维护犯错的权利。

 
Renat Fatkhullin:

编译器工作正常,这些警告也异常正确。

只有一条出路:不允许有变数的重叠,不要试图用要求我们其他人尊重这种权利来维护犯错的权利。

你可能误解了我的意思。我没有向任何人要求什么,我只是就如何使MQL更加方便用户提出建议。