Range作为TBquant新增的多图层命令,其效果接近于for循环。
下面举例
Range[0:datasourcesize-1]
{
plotnumeric("ma",average(close,20));
}
和
for i = 0 to datasourcesize-1
{
data[i].plotnumeric("ma",average(close,20));
}
两者是等效的
所以,range函数其实本质上就是将for命令在对多图层循环时进行简化的一个功能。
当我们需要对多个图层执行同一段代码的时候,只需要把这段代码用{}包起来,在头上加上range[图层开始序号:图层结束序号]即可。而如果要用for循环来处理,不得不对区域内所有的对象全部手动添加上data[i],那会相当麻烦
但是注意,这里仅支持对图层连续的处理,如果需要中间断开一个图层,只能分成两个range来处理
进阶用法
如果使用for i = 的形式来对多个图层进行批量设置,那么在代码中可以使用i这个循环变量来针对某些特殊的图层进行操作
但是如果使用了range,似乎就没有了i这个循环变量,从而无法判断当前的图层序号。
其实我们也可以通过
Range[i=0:10]的方式来创造一个循环变量i
学会了吗