函数可以用onbar吗

为什么例程ADX的计算不能写成函数呢函数的输入可以是序列变量吗ADXandMAChannelSys_S// 名称: 基于ADX及EMA的交易系统空// 类别: 公式应用// 类型: 内建应用Minpoint=Minmove*PriceScale; //DMI指标计算, 最终将输出ADX指标 //--------------------------DMI计算开始-----------------------------------// SF = 1/DMI_N; TRValue = TrueRange; If(CurrentBar == DMI_N) { For i = 0 To DMI_N - 1 { PlusDM = 0 ; MinusDM = 0 ; UpperMove = High[i] - High[ i + 1 ] ; LowerMove = Low[ i + 1 ] - Low[i] ; If (UpperMove > LowerMove And UpperMove > 0 ) { PlusDM = UpperMove; }Else if (LowerMove > UpperMove And LowerMove > 0) { MinusDM = LowerMove ; } SumPlusDM = SumPlusDM + PlusDM ; SumMinusDM = SumMinusDM + MinusDM ; SumTR = SumTR + TRValue[i] ; } AvgPlusDM = SumPlusDM / DMI_N ; AvgMinusDM = SumMinusDM / DMI_N ; sVolty = SumTR / DMI_N ; }Else if(CurrentBar > DMI_N) { PlusDM = 0 ; MinusDM = 0 ; UpperMove = High - High[1] ; LowerMove = Low[1] -Low ; If (UpperMove > LowerMove And UpperMove > 0 ) { PlusDM = UpperMove; }Else if (LowerMove > UpperMove And LowerMove > 0 ) { MinusDM = LowerMove ; } AvgPlusDM = AvgPlusDM[1] + SF * ( PlusDM - AvgPlusDM[1] ) ; AvgMinusDM = AvgMinusDM[1] + SF * ( MinusDM - AvgMinusDM[1] ) ; sVolty = sVolty[1] + SF * ( TRValue - sVolty[1] ) ; }Else { oDMIPlus = InvalidNumeric; oDMIMinus = InvalidNumeric; oDMI = InvalidNumeric; oADX = InvalidNumeric; oADXR = InvalidNumeric; oVolty = InvalidNumeric; } If (sVolty > 0) { oDMIPlus = 100 * AvgPlusDM / sVolty ; oDMIMinus = 100 * AvgMinusDM / sVolty ; }Else { oDMIPlus = 0 ; oDMIMinus = 0 ; } Divisor = oDMIPlus + oDMIMinus ; if (Divisor > 0) { sDMI = 100 * Abs( oDMIPlus - oDMIMinus ) / Divisor; }else { sDMI = 0 ; } cumm=Cum( sDMI ); If(CurrentBar > 0) { If (CurrentBar <= DMI_N) { sADX = Cumm / CurrentBar ; oADXR = ( sADX + sADX[ CurrentBar - 1 ] ) * 0.5 ; }Else { sADX = sADX[1] + SF * ( sDMI - sADX[1] ) ; oADXR = ( sADX + sADX[ DMI_M - 1 ] ) * 0.5 ; } } oVolty = sVolty; oDMI = sDMI; oADX = sADX; //--------------------------DMI计算结束-----------------------------------// ADXValue = oADX; //计算ADX均线因为需要OnBar(ArrayRef<Integer> indexs) {他是时序逻辑的所以怎么概括这部分冗长计算呢

你这个问题能不能说清楚一些,没看懂技术指标大多是可以改造成函数的

回复:因为函数里面没有计算指标需要的OnBar(ArrayRef<Integer> indexs) {,该怎么办

回复:@wangkaiming

回复:函数里程序主体就是begin end 代码写在这个中间就可以了