mql4使用 ArrayInitialize函数为数组初始化为0,但得到的初始值为 2147483647.0!!!正常吗?
怎么初始化的?
null是0, EMPTY是一1, EMPTY_VALUE是2147483647
谢谢答复!
double a[];
int init()
{
ArrayInitialize(a,0);
}
以上是部分语句,在调试时,单步运行,发现数组a[i]第一次出现的值就是 2147483647.0。
我想要在指标初始化时,让a[]的初始值为0, 该怎么做?
猜测你的意思是使用动态数组,不是指标数组。指标数组由系统自动分配。
那么使用前 应先分配空间 如: ArrayResize(a,10); 这时一般应该已经初始化为0了。
估计你的问题其实是 没有分配空间。 没有其他代码,无法判断 a[i]第一次出现的值就是 2147483647.0。 的来源
至少应提供这样三行代码吧? ArrayResize(a,3); ArrayInitialize(a,0); Print(a[0]," ",a[1]," ",a[2]);
如果是 指标数组 在init 设置 SetIndexBuffer(0,a); 此时在init 中其实并没分配更没初始化,即使用ArrayInitialize初始化 也其实无效。
要初始化0, 需要在 start 中进行 ArrayInitialize(a,0), 但那样的化,需要计算全部;
mql自动的默认的初始化 2147483647.0 是在start前有系统完成的。
关键是 理解 init中到底能干什么, start中干什么
非常感谢!看来这些东西的确不是我能想到的。谢谢!
我试试看。