错误、漏洞、问题 - 页 2012

 
A100:

另一个错误是,32位版本(我的正是这个版本)在执行时没有错误。无效指针--只有当类中增加了一个成员时,例如int i

你一定是在MT4上测试的,但那里的构建也比较低。

 
Kirill Belousov:

错误。

当在非当前图表上创建重复对象时,不会产生错误4200(在当前图表上确实会产生错误--[见日志中的 "当前图表"])。

以及发现在最近的图表中寻找一个对象比寻找当前的对象要花费500倍的时间。

а :)因为事实证明,我不是唯一一个有这种情况的人。

对象不是在函数调用时立即创建的。一个异步命令被发送到图表中。对于我们自己的图表,我们有机会进行初步检查。对于别人的图表,没有这种可能性--或者说,有,但非常昂贵。

因此,返回代码 "无错误 "表明已经找到了这个非常陌生的图表,并且对象创建 命令已经成功地放在其队列中执行。

 
fxsaber:

你一定在MT4上测试过,但那里的构建也比较低。

MT5\1653\32\Win10 - 我的代码到达行/结果:false

如果你也有32位和一个无效的指针--那么它就是一个随机错误。

ServiceDesk写道。函数f是空的,这个调用被优化器切掉了,同时也切掉了对复制操作符的调用。

但如果

        void f() { Print( __FUNCTION__ ); }

然后结果。

2017.09.26 14:03:55.853 Demo (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 Demo (GBPUSD,M15) false
基本上没有变化。

 
A100:

如果你也有32位 - 那么一些随机的错误在所有的

不,我运行的是Win7x64。

ServiceDesk说。函数f是空的,这个调用被优化器切掉了,就像步骤1中的复制操作符调用一样。

但如果

那就没什么变化了

我遇到过这样的情况:SD不经检查就迅速作出反应。而对于90%的应用来说,这可能是正确的,因为大多数应用可能不是由于错误,而是由于无知。请仔细看一下--它是有效的。

 

一个带有链接的网站错误。

如果一个论坛的帖子被版主移到了另一个主题,那么在资料搜索 "所有帖子 "中,这个帖子会被链接到旧的位置。因此,它不能被导航到它。

 
A100:

MT5\1653\32Win10 - 我到了一行/结果:false

如果你也有32位和一个无效的指针--那么它就是一个随机错误。

ServiceDesk写道。 函数f是空的,这个调用被优化器切掉了,同时也切掉了对复制操作符的调用。

但如果

然后结果。

2017.09.26 14:03:55.853 Demo (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 Demo (GBPUSD,M15) false
基本上没有变化

我再补充一点,f函数不针对对象字段,所以f函数不需要一个对象指针(this)。
优化器删除了对对象指针的句柄(记住,在MQL中,句柄是一个指针)的不必要的解引用,因为它(指针)并没有被用于f

 
Ilyas:

让我补充一下,函数f不包含对对象字段的寻址,所以函数f不需要指向对象(this)的指针。
优化器删除了对对象指针的句柄(回顾一下,在MQL中,指针是一个句柄)的不必要的解引用,因为它(指针)不在f里面使用。

显然,用f工作和用静态工作一样。但如何解释一个是运行,另一个是中断

 
事实上,至少这将是方便的。
input string Value = _MarketWatch; // Выпадающий список (а-ля enum) символов из Обзора рынка

关于交易、自动交易系统和测试交易策略的论坛

ENUM 符号列表作为一个 INPUT

Martin Nohejl, 2017.09.26 13:01

你好,我打算做以下工作。

我想把符号作为一个输入参数,所以我想要一个输入变量(枚举),从中选择正确的符号,像这样。

我已经通过这个代码完成了这个工作。

enum ENUM_SYMBOL
   { 
    EURUSD=0, 
    GPBUSD=1, 
    USDCHF=2
   };

这对我来说非常有效。但我想通过整个符号列表动态地填满这个枚举(SymbolsTotal(0);)。

不知何故,可能是通过代码。

int a = SymbolsTotal(0);
for(int i=0; i!=a;i++){
....
}
 
fxsaber:

显然,用f工作和用静态工作一样。但你如何解释一个被处决,另一个被打断

最有可能的是,你开始调试(F5),A100先编译(F7),然后再画图。

在为调试而编译时,优化器只删除明确的未使用的代码,所有其他优化都不执行。
 
Ilyas:
最有可能的是,你开始调试(F5),A100先编译(F7),然后把它扔在图表上。

在为调试而编译 时,优化器只删除明确的未使用的代码,所有其他优化都不执行

我直接考虑到了这个特点。我现在已经反复检查了自己。

释放-版本

Test (EURUSD,H1)        invalid pointer access in 'Test.mq5' (9,11)