错误、漏洞、问题 - 页 1623

 
Dmitri Custurov:
非常感谢您提供的解决方案。一切正常。
很好。所以我在KodoBase中发布的库和用例。
 
-Aleks-:
将整个数组文件读入内存,然后再进行处理,会快很多。
我不认为优化器会对文件进行数万次的打开-读取-关闭。
 
Aliaksandr Yemialyanau:

我如何将一个数组文件连接到我的EA?

首先,该脚本写了一个数组。

我在EA中连接了该文件。

编译时,出现错误。

'??????????????????????????t????...' - 标识符太长 mas.dat 1 1

'' - 未知符号 mas.dat 1 3015

那么,什么是mas文件? 什么类型的文件?从这些错误来看,它只是一个字节流,对吗?
 

静态变量 的严重错误。 考虑一下这段代码。

class A  { public:
            int m;
            A() { Alert("A");  m=1; }
         };

class B  { public:
            B() { Alert("B");  static A a;  Alert("a.m==",a.m);  Alert("&a==",&a);}
         };
B b;

void OnStart()
{
};

当执行它时,我们得到以下的警报顺序。

B
a.m==0
&a==0
A

也就是说,在访问静态变量的时候,它还没有被初始化。 甚至指针也是空的。 它只是被跳过,我们安全地继续前进。

要么初始化该变量并继续前进,要么以错误中止编译。

但是当相互引用的类的递归发生时,编译应该被中止。

 
Aliaksandr Yemialyanau:

我如何将一个数组文件连接到我的EA?

首先,该脚本写了一个数组。

我在EA中连接了该文件。

编译时,出现错误。

'??????????????????????????t????...' - 标识符太长 mas.dat 1 1

'' - 未知符号 mas.dat 1 3015

你的脚本应该生成一个 mas.mqh 文件,其中包含一个包含你的数据字节的uchar-types 数组。例如,如果文件大小为三个字节,mas.mqh文件的内容应该如下。

uchar mass[3] = {25, 127, 89};

生成的数组质量是你应该在你的程序中使用的。

 
Aliaksandr Yemialyanau:
我不认为优化器会对文件进行数万次的打开-读取-关闭。
哦,所以你想用一个数组来编译?
 
你不太可能要从磁盘上读取一个文件几万次。 这就是磁盘缓存的作用,虽然我不知道它是否用在这个特定的案例中,但在发明拐杖之前,你应该检查和测量。
 
如果我在MT5中中断一次运行,只有余额变化图是可见的。但交易和订单是不可用的。
由于MQLInfoInteger(MQL_VISUAL_MODE)可能会有额外的缓慢计算,使用可视化模式并不总是适合。
是否可以像MT4那样,在回溯测试期间增加所有信息的可用性(没有可视化)?
 
在历史数据的调试模式 下,MQLInfoInteger(MQL_VISUAL_MODE)总是返回true。
 
fxsaber:
在历史数据的调试模式 下,MQLInfoInteger(MQL_VISUAL_MODE)总是返回true。
它应该返回什么?