编写问题咨询

老师您好,学习2021年11月11日的答疑课程《跨周期内容专题答疑》时,照着所编写出的程序,调用后,数组中[0]至[4]中无法显示出收盘价,如下图所示。

公式函数如下:

Params
    Series<Numeric> price(1);
    Numeric length(10);
    ArrayRef<Numeric> result;
    
Vars
    Numeric i;
    
Begin
    For i=0 to length-1;
    {
        result[i]=price[i];    
    }
   
    Return true;
End

应用公式如下:
Params
    numeric length1(5);
    Numeric length2(10);
    
Vars
    Numeric MA1;
    Numeric MA2;
    Array<Numeric> myarray;    
    Numeric i;
    
Events
    OnInit()
    {    
        SubscribeBar(Data0.Symbol,"5m",data0.BeginDateTime);
        SubscribeBar(Data0.Symbol,"10m",data0.BeginDateTime);
    }
    
    OnBar(ArrayRef<Integer> indexs)
    {    
        range[1:2]
        {    
        MA1 = Average(C,length1);
        MA2 = Average(C,length2);
        PlotNumeric("MA1",MA1);
        plotNumeric("MA2",MA2);
        }
        
        seriesarray(Close,5,myarray);    
        //Commentary("数组大小="+text(GetArraySize(myarray)));
        
        for i=0 To GetArraySize(myarray)-1
        {
            Commentary("myarray["+text(i)+"]="+text(myarray[i]));
        }
       
    }

请老师帮看一下问题出在哪里?谢谢!并祝老师新年快乐!

咨询编写问题
咨询编写问题
咨询编写方面的问题
咨询编写
咨询编写
咨询策略编写
咨询编写
咨询编写
咨询编写
咨询编写

这是用你代码显示的结果

公式:

Params
    numeric length1(5);
    Numeric length2(10);
    
Vars
    Numeric MA1;
    Numeric MA2;
    Array<Numeric> myarray;    
    Numeric i;
    
Events
    OnInit()
    {    
        SubscribeBar(Data0.Symbol,"5m",data0.BeginDateTime);
        SubscribeBar(Data0.Symbol,"10m",data0.BeginDateTime);
    }
    
    OnBar(ArrayRef<Integer> indexs)
    {    
        range[1:2]
        {    
        MA1 = Average(C,length1);
        MA2 = Average(C,length2);
        PlotNumeric("MA1",MA1);
        plotNumeric("MA2",MA2);
        }
        
        seriestoarray(Close,5,myarray);    
        //Commentary("数组大小="+text(GetArraySize(myarray)));
        
        for i=0 To GetArraySize(myarray)-1
        {
            Commentary("myarray["+text(i)+"]="+text(myarray[i]));
        }
       
    }

 

seriestoarray函数:

Params
    Series<Numeric> price(1);
    Numeric length(10);
    ArrayRef<Numeric> result;
Begin
    Numeric i;
    for i = 0 to length-1
    {
        result[i] = price[i];
    }

    Return True;
End

知道问题所在了,谢谢老师

  seriesarray(Close,5,myarray);     你这个函数的内容是什么

seriesarray(Close,5,myarray);引用的是如下公式函数,函数名称为seriesarray

Params
    Series<Numeric> price(1);
    Numeric length(10);
    ArrayRef<Numeric> result;
    
Vars
    Numeric i;
    
Begin
    For i=0 to length-1;
    {
        result[i]=price[i];    
    }
   
    Return true;
End