很多朋友都知道,在编写指标的时候,新建一个空白数组,通过SetIndexBuffer把这个数组挂到mt4系统缓存中去,然后只需操作这个数组就能在图表上显示相应的东西了。不过可能经常会遇到这个问题:在切换图表周期时,会发现图表上本来显示得很好的东西忽然就变得混乱了,这是怎么回事呢?原来,因为数组在切换图表周期时,没有被重新初始化,所有原本保存的内容也会继续在新的周期图表上继续显示,这就造成了混乱。知道了问题,该如何解决呢?答案其实也很简单,就是在init函数中对数组赋一个缺省值,我们知道当切换图表周期的时候也是会调用init函数的,这样就能确保数组在任何时候都能保存正确的内容了。赋值例子如下:

...
int init()
{
    SetIndexBuffer(0, arrayName);
    SetIndexEmptyValue(0, 0.0);   //关键就是这句
    ...
}