数组应用

tbquant在编写下面语言的过程中,alpha本身想求的数组myalpha的平均值,但是显示只显示第一个图标的值

Params
    Numeric length(20);
Vars
    Array<Numeric> MyAlpha(0);
    Global Numeric Alpha;
    Numeric i;
Events
    OnBar(ArrayRef<Integer> indexs)
    {
        Range[0:DataCount-1]
        {
            MyAlpha[i]=Average(Abs(Close[1]-Open[1]),length)/Average(High[1]-Low[1],length);
            
        }
        Alpha=AverageArray(MyAlpha);
        Range[0:DataCount-1]
        {  
            Commentary("Alpha="+Text(Alpha));
            Commentary("MyAlpha="+Text(MyAlpha[i]));
        }
    }
       

数组应用的问题
【信号闪烁】数组的处理来记录涨跌幅,买涨幅最高、卖涨幅最低。帮忙分析处理为什么出现信号闪烁(附件:策略单元、图片、源码);请告知问题所在,发送修改后的代码。谢谢
一维数组的应用
跨周期全局数组变量应用
数组
数组
关于数组局部最大值
数组问题
公式不能应用
数组的声明

您好,还是没搞清楚怎么处理,能帮忙写出来理解一下吗

你用了range

range其实等效于for循环加data[i]前缀的形式,range内的所有对象如果没有强制声明图层都会跟随默认的当前图层,

现在tb的局部序列等数据结构形式的变量,都是区分图层的。比如你定义的numeric myVAr,data0.myVar和data1.myVar是两个对象。全局变量部分图层

所以你上面代码实际操作的是把第i个图层的数值,放到这个图层的myalpha数组的第i个位置。于是每个图层的myalpha都只有相应图层序号位置的数组位置有结果。

建议赋值的时候强制使用data0.myalpha强制放到data0的数组里