<!--StartFragment -->
if CURRBARSCOUNT=1 then begin
Value1:=0;
for Value1 = 0 to (DMILEN-1) do
begin
PlusDM=0;
MinusDM=0;
UpperMove=HIGH[Value1]-HIGH[Value1+1];
LowerMove=LOW[Value1+1]-LOW[Value1];
if UpperMove>LowerMove and UpperMove>0 then PlusDM = UpperMove
else if LowerMove > UpperMove and LowerMove > 0 then MinusDM = LowerMove ;
SumPlusDM = SumPlusDM + PlusDM ;
SumMinusDM = SumMinusDM + MinusDM ;
THigh = High[value] ;
TLow = low[value] ;
if close[value+1] >High[value] then THigh = close[value+1]
else if close[value+1]<low[value] then TLow = close[value+1] ;
SumTR = SumTR +(THigh - TLow );
end;
AvgPlusDM = SumPlusDM / DMILEN ;
AvgMinusDM = SumMinusDM / DMILEN ;
oVolty = SumTR / DMILEN ;
end
else
begin
PlusDM = 0 ;
MinusDM = 0 ;
UpperMove = high - high[1] ;
LowerMove = low[1] - low ;
if UpperMove > LowerMove and UpperMove > 0 then
PlusDM = UpperMove
else if LowerMove > UpperMove and LowerMove > 0 then
MinusDM = LowerMove ;
AvgPlusDM = AvgPlusDM[1] + SF * ( PlusDM - AvgPlusDM[1] ) ;
AvgMinusDM =AvgMinusDM[1] + SF * ( MinusDM -AvgMinusDM[1] ) ;
THigh = High ;
TLow = low ;
if close[1] >High then THigh = close[1]
else if close[1] < low then TLow = close[1] ;
SumTR = SumTR +(THigh - TLow );
oVolty = oVolty[1] + SF * ( (THigh - TLow ) - oVolty[1] ) ;
end ;
if oVolty > 0 then
begin
oDMIPlus = 100 * AvgPlusDM / oVolty ;
oDMIMinus = 100 * AvgMinusDM / oVolty ;
end
else
begin
oDMIPlus = 0 ;
oDMIMinus = 0 ;
end ;
Divisor = oDMIPlus + oDMIMinus ;
if Divisor > 0 then
oDMI = 100 * Abs( oDMIPlus - oDMIMinus ) / Divisor
else
oDMI = 0 ;
if CURRBARSCOUNT <= DMILEN and CURRBARSCOUNT > 0 then
begin
oADX = ( oDMI+oDMI[1] ) / CURRBARSCOUNT ;
oADXR = ( oADX + oADX[CURRBARSCOUNT - 1 ] ) * .5 ;
end
else
begin
oADX = oADX[1]+SF * (oDMI - oADX[1] ) ;
oADXR = (oADX+oADX[DMILEN - 1 ]) * .5 ;
end ;

此主题相关图片如下:temp.png

你按照报错信息去排查下即可。你这里好几个地方都少了分号。上面那个图就是第一个。少分号的都在报错信息附近。