AverageFC这个函数为什么在加了BarStatus==2这条件出来的值会有问题?

AverageFC这个函数在加了BarStatus==2这条件出来的值,在交易时间内值不对,比如 If(BarStatus!=2) {Return;} MA1=AverageFC(Close,Length1); MA2=AverageFC(Close,Length2); MA3=AverageFC(Close,Length3); MA4=AverageFC(Close,Length4); PlotNumeric(MA1,MA1); PlotNumeric(MA2,MA2); PlotNumeric(MA3,MA3); PlotNumeric(MA4,MA4);输出,变成这样了将条件改为 If(BarStatus!=2) {MA1=AverageFC(Close,Length1); MA2=AverageFC(Close,Length2); MA3=AverageFC(Close,Length3); MA4=AverageFC(Close,Length4); PlotNumeric(MA1,MA1); PlotNumeric(MA2,MA2); PlotNumeric(MA3,MA3); PlotNumeric(MA4,MA4);}或者 If(CurrentBar==149)//当前bar值149 {MA1=AverageFC(Close,Length1); MA2=AverageFC(Close,Length2); MA3=AverageFC(Close,Length3); MA4=AverageFC(Close,Length4); PlotNumeric(MA1,MA1); PlotNumeric(MA2,MA2); PlotNumeric(MA3,MA3); PlotNumeric(MA4,MA4);}输出还是将条件去除 MA1=AverageFC(Close,Length1); MA2=AverageFC(Close,Length2); MA3=AverageFC(Close,Length3); MA4=AverageFC(Close,Length4); PlotNumeric(MA1,MA1); PlotNumeric(MA2,MA2); PlotNumeric(MA3,MA3); PlotNumeric(MA4,MA4);或者改为 If(CurrentBar==CurrentBar)//当前bar值149 {}MA1=AverageFC(Close,Length1); MA2=AverageFC(Close,Length2); MA3=AverageFC(Close,Length3); MA4=AverageFC(Close,Length4); PlotNumeric(MA1,MA1); PlotNumeric(MA2,MA2); PlotNumeric(MA3,MA3); PlotNumeric(MA4,MA4);}值就正常了,这是为什么?

AverageFC 不要把函数如果调用了序列变量,尽量不要放在条件语句内因为你有条件的进入,导致序列变量缺少赋值

回复:If(BarStatus!=2){Return;}条件前置也这样吗?此外,close也是序列变量的一种吗