iCustom函数调用指标时的耗时会是多少?调用指标时那个指标会把所有历史柱重新计算一遍吗?

 

通常一个指标在拖到图表中时,它初始化之后会先把所有历史k线柱计算一遍,一直算到 第0柱,然后每一个新tick进来就重新计算一下第0柱


那么现在有一个问题,就是在其他指标或者EA中调用这个指标的时候,例如说用iCustom调用一个RSI背离指标,是否在每次调用RSI背离指标的时候,这个RSI背离指标都会把所有历史柱重新算一遍?

如果是这样的话,那么EA或者指标在通过iCustom等函数调用另一个指标的时候,岂不是会浪费大量的计算量在重复的计算历史k线柱上?

这次调用它,它把历史柱算了一遍,下次调用它,然后它又把历史柱重新算了一遍,如果是这样,那么一个文件中如果有很多iCustom,那是不是每一个Tick进来,就相当于程序要同时把很多个指标的历史柱全都算一遍,每进来一个Tick就这样算一遍,那这样的话,岂不是很容易卡?


是我对iCustom的理解不正确吗

 

不会重复计算,除非指标本身重复计算。

可以在被调用指标中把已计算的K根数Comment出来,验证下就明白了。

 
Ziheng Zhuang:

不会重复计算,除非指标本身重复计算。

可以在被调用指标中把已计算的K根数Comment出来,验证下就明白了。

是不是被调用的指标,在包含iCustom的那一行代码结束之后,被调用的指标的各个Buffers的数组其实还是仍然保留在内存里的?

 
Huajun Huang:

是不是被调用的指标,在包含iCustom的那一行代码结束之后,被调用的指标的各个Buffers的数组其实还是仍然保留在内存里的?


是的。