函数传参变量series<Numeric> 类型的引用类型是什么?

在函数调用需要将多个值返回时,可以将变量以引用方式传递进去可以达到返回多个值的作用,如:numeric 可以 在函数参数变量类型用numericRef 方式达到,但 series<Numeric> 类型 没有找到对应的变量类型引用表达方式,我应该如何将 series<Numeric> 参数怎么办才能达到该效果? 如: 函数调用者 Vars Numeric pdi; Numeric mdi; series<Numeric> adx; Events OnBar(ArrayRef<Integer> indexs) { Range[0:DataSourceSize() - 1] { getDMI(pdi,mdi,adx); } } 函数实现: Params NumericRef PDI; //引用类型 NumericRef MDI; //引用类型 series<Numeric> ADX;//这个参数需要设计为引用类型将参数值返回出函数的,应该设计为什么类型? Begin PDI = 1; MDI = 2; ADX = AverageFC(Abs(MDI - PDI) / (MDI + PDI) * 100,6); End

TB公式不支持将序列类型变量做为参数传递给函数的引用类型参数,如果这么写编译时会报错。 我猜测,您是想把一个序列变量,整体作为参数传入函数,期望在函数里使用,这个其实是做不到的。真正传入函数的只是某根BAR运行公式时,当根BAR该序列变量的值而已。函数内部定义的序列参数,实际是根据传入的参数值再造了一个序列变量,而这个序列变量是否和公式里的序列变量值一样,就取决于是否每根BAR都调用了函数,这也是为什么序列函数不能放在条件语句中的根本原因。