跨周期全局数组变量应用

下述程序的目的是用一个全局变量数组在小周期Data[0]内显示日线大周期Data[1]的最高价,其中[0]号元素是当根大周期Bar的最高价,随行情变化,[1]号元素是上根大周期Bar的最高价,以此类推。


Params
    Integer Length(5);    // 周期参数
Vars
    Global Array<Numeric> arrData;    // 全局数组变量,Length周期的最高价
    Integer i;
Events
    OnBarOpen(ArrayRef<Integer> indexs)
    {
        Range[1:1]    // 日周期Bar开始前
        {
            ArrayClear(arrData);    // 清除数组
            For i = 1 To Length-1    // 数组赋值,[0]除外
                arrData[i] = High[i];
        }
        Range[0:0]    // 小周期下一根Bar开始前
        {
            If(TrueDate(1)<>TrueDate(0))    // 日周期开始的第一个小周期Bar
                arrData[0] = High;
            Else    // 日周期的后续小周期Bar
                arrData[0] = Max(arrData[0],High[1]);
        }
    }
    OnBar(ArrayRef<Integer> indexs)
    {
        Range[0:0]    // 小周期
        {
            For i=0 To GetArraySize(arrData)-1
                Commentary("arrData["+Text(i)+"]= "+Text(arrData[i]));
        }
    }


现在的问题是[0]号元素始终显示当根小周期的最高价,而不能保持当根大周期的最高价,它在日内下跌时跟随下降。

当然我如果删掉 ArrayClear(arrData);,可以得到我要的结果,但是我想知道为什么?清空数组用在此处有何错误?

跨周期指标应用方法
全局变量
全局变量定义
不同周期同品种跨bar数组调用
序列变量和全局变量区别
关于全局变量
咨询全局变量
TBquant全局变量问题
全局变量
为什么要用全局变量?

建议投稿直播讲解