OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{ 代码1 }
}
OnBar(ArrayRef<Integer> indexs)
{
for(i=0 to indexs-1)
{代码2}
}
假设有10个图层,回测时代码1和代码2执行次数时一样的,但是如果实时行情中,是不是就不一样了,假设indexs里有3个图层驱动,那代码2只执行3次,而代码1却要执行10*3=30次,浪费资源,这样理解对吗?
没有区别吧
只是如果需要触发所有数据源
模式一Range方便点
不用指定数据源
模式二的优势是指定数据源
当然
模式二写法有问题
我意思是在实时行情中,如果当时过来比如1,2,5三个图层价格驱动,用for可以只计算这三个图层就行,但如果用range会不会所有图层都进行一次计算,而实际没有价格变动的图层是不需要计算的。
感谢,已学习到,改成Range[indexs]比较好