参考:
N:=4;
MA4:=MA(C,N);
AA:=FORCAST(MA4,N );
BB:=REF( AA,1 );
DRAWCOLORLINE(AA>BB,AA,COLORRED,COLORGREEN),LINETHICK2;
A:=AA-BB;
A线 :=EMA(C,12) - EMA(C,26);
B线:=EMA(A线,9);
MACD := 3*(A线-B线), COLORSTICK;
DRAWNUMBER1(A>0 AND ISLASTBAR,C,C,0),COLORRED,ALIGN0,VALIGN1,FONTSIZE25;
DRAWNUMBER1(A<=0 AND ISLASTBAR,C,C,0),COLORGREEN,ALIGN0,VALIGN1,FONTSIZE25;
A1:=A>0 AND MACD>=REF(MACD,1) AND L<=REF( C,1 ) AND ISLASTBAR;
A2:=A<0 AND MACD<=REF(MACD,1) AND H>=REF( C,1 ) AND ISLASTBAR;
B:=REF( C,1 ) ;
DRAWICON(A1,L,'ICO4');
DRAWICON(A2,H,'ICO5');
DRAWSL1(REFX(A1||A2,1),C,0,0,0),COLORWHITE;
核实一下,您1楼源码中A1和A2的条件要求是最后一根K线,您是想去掉最后一根K线这个限制?
另外,画水平线的条件有A1、A2两个条件,是满足A1条件时向右画水平线,直到不满足A1条件,A2同理?
参考:
N:=4;
MA4:=MA(C,N);
AA:=FORCAST(MA4,N );
BB:=REF( AA,1 );
DRAWCOLORLINE(AA>BB,AA,COLORRED,COLORGREEN),LINETHICK2;
A:=AA-BB;
A线 :=EMA(C,12) - EMA(C,26);
B线:=EMA(A线,9);
MACD := 3*(A线-B线), COLORSTICK;
DRAWNUMBER1(A>0 AND ISLASTBAR,C,C,0),COLORRED,ALIGN0,VALIGN1,FONTSIZE25;
DRAWNUMBER1(A<=0 AND ISLASTBAR,C,C,0),COLORGREEN,ALIGN0,VALIGN1,FONTSIZE25;
A1:=A>0 AND MACD>=REF(MACD,1) AND L<=REF( C,1 ) ;// AND ISLASTBAR;
A2:=A<0 AND MACD<=REF(MACD,1) AND H>=REF( C,1 ) ;// AND ISLASTBAR;
B:=REF( C,1 ) ;
DRAWICON(CROSS(A1,0.5),L,'ICO4');
DRAWICON(CROSS(A2,0.5),H,'ICO5');
DRAWSL1(A1&&BARSLASTCOUNT(A1)>1,VALUEWHEN(CROSS(A1,0.5),B),0,BARSLASTCOUNT(A1)-1,1),COLORWHITE;
DRAWSL1(A2&&BARSLASTCOUNT(A2)>1,VALUEWHEN(CROSS(A2,0.5),B),0,BARSLASTCOUNT(A2)-1,1),COLORWHITE;
参考:
N:=4;
MA4:=MA(C,N);
AA:=FORCAST(MA4,N );
BB:=REF( AA,1 );
DRAWCOLORLINE(AA>BB,AA,COLORRED,COLORGREEN),LINETHICK2;
A:=AA-BB;
A线 :=EMA(C,12) - EMA(C,26);
B线:=EMA(A线,9);
MACD := 3*(A线-B线), COLORSTICK;
DRAWNUMBER1(A>0 AND ISLASTBAR,C,C,0),COLORRED,ALIGN0,VALIGN1,FONTSIZE25;
DRAWNUMBER1(A<=0 AND ISLASTBAR,C,C,0),COLORGREEN,ALIGN0,VALIGN1,FONTSIZE25;
A1:=A>0 AND MACD>=REF(MACD,1) AND L<=REF( C,1 ) ;// AND ISLASTBAR;
A2:=A<0 AND MACD<=REF(MACD,1) AND H>=REF( C,1 ) ;// AND ISLASTBAR;
B:=REF( C,1 ) ;
DRAWICON(CROSS(A1,0.5),L,'ICO4');
DRAWICON(CROSS(A2,0.5),H,'ICO5');
COND:=COUNT(A1&&BARSLASTCOUNT(A1)>1||A2&&BARSLASTCOUNT(A2)>1,0)=REFX1(COUNT(A1&&BARSLASTCOUNT(A1)>1||A2&&BARSLASTCOUNT(A2)>1,0),9999);
DRAWSL1(A1&&BARSLASTCOUNT(A1)>1&&COND,VALUEWHEN(CROSS(A1,0.5),B),0,BARSLASTCOUNT(A1),1),COLORWHITE;
DRAWSL1(A2&&BARSLASTCOUNT(A2)>1&&COND,VALUEWHEN(CROSS(A2,0.5),B),0,BARSLASTCOUNT(A2),1),COLORWHITE;
DRAWNUMBER1(A1&&BARSLASTCOUNT(A1)>1&&COND,VALUEWHEN(CROSS(A1,0.5),B),VALUEWHEN(CROSS(A1,0.5),B),0),COLORWHITE;
DRAWNUMBER1(A2&&BARSLASTCOUNT(A2)>1&&COND,VALUEWHEN(CROSS(A2,0.5),B),VALUEWHEN(CROSS(A1,0.5),B),0),COLORWHITE;