请老师帮忙修改,谢谢!CURRBARSCOUNT:=DATACOUNT-BARPOS+1;
N:=33;
UR:=6;
LR:=6;
TC1:=IF(H=HHV(H,8*UR),H,NULL);
TC2:=REFX1(BARSLAST(TC1=H),10000)+1;
UPPER:=REFX1(IF(TC2=1,H,REF(H,TC2-1)),10000);
BC1:=IF(L=LLV(L,8*LR),L,NULL);
BC2:=REFX1(BARSLAST(BC1=L),10000)+1;
LOWER:=REFX1(IF(BC2=1,L,REF(L,BC2-1)),10000);
NOD:=(IF(TC2>BC2,TC2,BC2)-IF(TC2>BC2,BC2,TC2));
LR1:=FORCAST(C,NOD+1);
NP:=IF(CURRBARSCOUNT<=MAX(BC2,TC2),REFX1(IF(MIN(TC2,BC2)=1,LR1,REF(LR1,MIN(TC2,BC2)-1)),10000),NULL),POINTDOT,COLORFFFFFF;
LR2:=SLOPE(C,NOD+1);
LR3:=REFX1(IF(MIN(TC2,BC2)=1,LR2,REF(LR2,MIN(TC2,BC2)-1)),10000);
FP:=NP-LR3*(NOD),POINTDOT,COLORFFFFFF;
EQU:=(NP+FP)/2,POINTDOT,COLORFFFFFF;
AD:=ABS(NP-FP);
DBL:=BARSLAST(NOT(ISNULL(BC1)) )+1;
DBH:=BARSLAST(NOT(ISNULL( TC1)))+1;
BSP:=IF(BC2>TC2,DBL,DBH)-1;
LRL:=IF(NP>FP,FP+AD/NOD*BSP,FP-AD/NOD*BSP);
AT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND H>LRL,H,LRL);
AT2:=HHV(AT1-LRL,MAX(BC2,TC2));
AT3:=REFX1(BARSLAST(AT1-LRL=AT2),10000);
AT4:=REFX1(IF(AT3=0,H,REF(H,AT3)),10000);
AT5:=REFX1(IF(AT3=0,AT1-LRL,REF(AT1-LRL,AT3)),10000);
ATL:=LRL+AT5;
UT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND L<LRL,L,LRL);
UT2:=HHV(LRL-UT1,MAX(BC2,TC2));
UT3:=REFX1(BARSLAST(LRL-UT1=UT2),10000);
UT4:=REFX1(IF(UT3=0,H,REF(H,UT3)),10000);
UT5:=REFX1(IF(UT3=0,LRL-UT1,REF(LRL-UT1,UT3)),10000);
UTL:=LRL-UT5;
RH:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,ATL,REFX1(REF(ATL,MIN(BC2,TC2)-11),10000));
RL:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,UTL,REFX1(REF(UTL,MIN(BC2,TC2)-11),10000));
IF(NP>FP,IF(ATL<=RH,ATL,NULL),IF(ATL>=RL,ATL,NULL)),COLORYELLOW;
IF(NP>FP,IF(UTL<=RH,UTL,NULL),IF(UTL>=RL,UTL,NULL)),COLORFFFFFF;
CURRBARSCOUNT_:=DATACOUNT-BARPOS+1;
len:=if(DATACOUNT-BARPOS>10000,10000,DATACOUNT-BARPOS);
N:=33;
UR:=6;
LR:=6;
TC1:=IF(H=HHV(H,8*UR),H,0);
TC2:=REFX(BARSLAST(TC1=H),len)+1;
UPPER:=REFX(IF(TC2=1,H,REF(H,TC2-1)),len);
BC1:=IF(L=LLV(L,8*LR),L,0);
BC2:=REFX(BARSLAST(BC1=L),len)+1;
LOWER:=REFX(IF(BC2=1,L,REF(L,BC2-1)),len);
NOD:=(IF(TC2>BC2,TC2,BC2)-IF(TC2>BC2,BC2,TC2));
LR1:=FORCAST(C,NOD+1);
NP:=IF(CURRBARSCOUNT_<=MAX(BC2,TC2),REFX(IF(MIN(TC2,BC2)=1,LR1,REF(LR1,MIN(TC2,BC2)-1)),len),0),POINTDOT,COLORFFFFFF;
LR2:=SLOPE(C,NOD+1);
LR3:=REFX(IF(MIN(TC2,BC2)=1,LR2,REF(LR2,MIN(TC2,BC2)-1)),len);
FP:=NP-LR3*(NOD),POINTDOT,COLORFFFFFF;
EQU:=(NP+FP)/2,POINTDOT,COLORFFFFFF;
AD:=ABS(NP-FP);
DBL:=BARSLAST(NOT(BC1) )+1;
DBH:=BARSLAST(NOT(TC1))+1;
BSP:=IF(BC2>TC2,DBL,DBH)-1;
LRL:=IF(NP>FP,FP+AD/NOD*BSP,FP-AD/NOD*BSP);
AT1:=IF(BETWEEN(CURRBARSCOUNT_,BC2,TC2) AND H>LRL,H,LRL);
AT2:=HHV(AT1-LRL,MAX(BC2,TC2));
AT3:=REFX(BARSLAST(AT1-LRL=AT2),len);
AT4:=REFX(IF(AT3=0,H,REF(H,AT3)),len);
AT5:=REFX(IF(AT3=0,AT1-LRL,REF(AT1-LRL,AT3)),len);
ATL:=LRL+AT5;
UT1:=IF(BETWEEN(CURRBARSCOUNT_,BC2,TC2) AND L<LRL,L,LRL);
UT2:=HHV(LRL-UT1,MAX(BC2,TC2));
UT3:=REFX(BARSLAST(LRL-UT1=UT2),len);
UT4:=REFX(IF(UT3=0,H,REF(H,UT3)),len);
UT5:=REFX(IF(UT3=0,LRL-UT1,REF(LRL-UT1,UT3)),len);
UTL:=LRL-UT5;
RH:=IF(CURRBARSCOUNT_>=MIN(BC2,TC2)-10,ATL,REFX(REF(ATL,MIN(BC2,TC2)-11),len));
RL:=IF(CURRBARSCOUNT_>=MIN(BC2,TC2)-10,UTL,REFX(REF(UTL,MIN(BC2,TC2)-11),len));
IF(NP>FP,IF(ATL<=RH,ATL,0),IF(ATL>=RL,ATL,0)),COLORYELLOW;
IF(NP>FP,IF(UTL<=RH,UTL,0),IF(UTL>=RL,UTL,0)),COLORFFFFFF;
我把不一致的地方进行了替换。但是毕竟软件不一样,有些地方实现上可能还是难免有差异,即使代码一致,背后的机制也肯定不一样。