for循环问题 (文华财经wh9)

投资者咨询:for循环问题 (文华财经wh9)
来源:文华财经  日期:2019-11-17 19:40
NumericArray x;
Numeric i;
x[0]=Close;
for i=0 to 2
{
x[i+1]=ref(x[i],1);
}
以上代码为什么得不到以下结果:
NumericArray x;
Numeric i;
x[0]=Close;
x[1]=ref(x[0],1);
x[2]=ref(x[1],1);
x[3]=ref(x[2],1);
 
技术人员回复
日期:2019-11-18 8:07

数组里的x是单值,ref的参数是序列,所以ref引用数组值的时候,需要把单值转换成序列

 

而for循环的内存是覆盖处理的,也就是说X[1] X[2] X[3]是存到一个序列里的

 

所以一个循环结束后,序列的值,就是循环最后一个值,即X[3]的值

 

这样第2根K线的X[1] X[2] X[3]都等于当根的X[0],后续K线引用的是上根的X[3],所以结果都是第2根K线的X[0]

 

这种思路您直接用1楼第2种写法就可以了

 

 
投资者咨询:for循环问题 (文华财经wh9)
来源:文华财经  日期:2019-11-17 19:40
 非常感谢您的解答,回复中“1楼第2种写法”怎么找。在论坛中是新手,麻烦告知一下。
技术人员回复
日期:2019-11-18 21:02