老师您好,学习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