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

 
Karputov Vladimir:

我不知道在几个TF上同时 测试是什么,但至少在测试后不能切换到其他TF的事实并不乐观。好吧,在视觉测试 期间进行切换将是非常棒的。
 

未来...好,好。"谢谢你,这很有趣"(c)。



 
在优化时,我希望看到运行的结果是百分比,而不是 "结果 "栏中显示的数字。在回溯测试中,如果 "净利润 "的结果有一个百分比的利润就更好了。
 
Rinat Tukaev:
在优化时,我希望看到运行的结果是百分比,而不是 "结果 "栏中显示的数字。在回溯测试中,如果 "净利润 "的结果有一个百分比的利润就更好了。
在OnTester()事件处理程序中插入你的公式,看看你需要的结果。
 
Yury Reshetov:
在OnTester()事件处理程序中插入你的公式,看看你需要的结果。
谢谢你!我不知道)
 
我建议使程序的全局变量 不与MQL4和MQL5的插件中的变量和参数交叉。我在我的专家顾问中声明了一个变量'点',现在我收到了很多信息,比如。"'point'的声明隐藏了文件'expert.mq4'中的全局声明,在第153行ChartObject.mqh 154 39"。当你不能在一个模块、程序中声明一个变量,而这个变量在另一个模块的参数中,这是很可怕的。如果ChartObject.mqh没有明确声明,为什么ChartObject.mqh模块需要看到我的专家顾问 expert.mq4?
 
Mihail Matkovskij:
我建议使程序的全局变量 不与MQL4和MQL5的插件中的变量和参数交叉。我在我的专家顾问中声明了一个变量'点',现在我收到了很多信息,比如。"'point'的声明隐藏了文件'expert.mq4'中的全局声明,在第153行ChartObject.mqh 154 39"。当你不能在一个模块、程序中声明一个变量,而这个变量在另一个模块的参数中,这是很可怕的。如果ChartObject.mqh没有明确声明,为什么ChartObject.mqh模块需要看到我的专家顾问 expert.mq4?
很明显,这将有助于你
#property strict
 
Igor Volodin:
很明显,这将有助于你。
是的,我的EA中有这一行,但它不在ChartObject.mqh模块中。我不会因为它而重写所有的标准模块...
 
Mihail Matkovskij:
是的,我的专家顾问中有这一行,但它不在ChartObject.mqh模块中。我不会因为它而重写所有的标准模块...


明白了。在这种情况下,不要创建全局变量。你可以不做这些事。否则,与任何巧合,例如一个非常普通的名字。

int i;

全局声明的内容将被局部声明的内容所覆盖。这就是对你的警告。

而插件没有自己的范围,它不是一个模块,它只是一段代码,将被插入到你写include 的地方。

 
Igor Volodin:


明白了。那么就不要创建全局变量。你可以没有他们。

你是什么意思,不要创造它们?在任何编程语言中,全局变量都是可以自由使用的,这也是可以的,但编译器是会发誓的。这个错误并不关键,但仍然很不方便。

double point = MarketInfo(EA_Symbol(), MODE_POINT);

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