Q:=(3*CLOSE+LOW+OPEN+HIGH)/6;
操盘线:(26*Q+25*REF(Q,1)+24*REF(Q,2)+23*REF(Q,3)+22*REF(Q,4)+21*REF(Q,5)
+20*REF(Q,6)+19*REF(Q,7)+18*REF(Q,8)+17*REF(Q,9)+16*REF(Q,10)+15*REF(Q,11)+14*REF(Q,12)+13*REF(Q,13)+12*REF(Q,14)+11*REF(Q,15)
+10*REF(Q,16)+9*REF(Q,17)+8*REF(Q,18)+7*REF(Q,19)+6*REF(Q,20)+5*REF(Q,21)+4*REF(Q,22)+3*REF(Q,23)+2*REF(Q,24)+REF(Q,26))/351,NODRAW;
空头线:=EMA(操盘线,7);
DRAWICON(操盘线>空头线,操盘线,'ICO118'),COLORRED;
DRAWICON(操盘线<空头线,操盘线,'ICO119'),COLORGREEN;
X1:=(CLOSE+LOW+HIGH)/3;
X2:=EMA(X1,6);
X3:=EMA(X2,5);
VAR2:=EMA(EMA(X1,1),13);
VAR3:=EMA(VAR2,21);
XCLOSE:=EMA((OPEN+HIGH+LOW+CLOSE)/4,3);
XOPEN:=EMA((REF(OPEN,1)+REF(XCLOSE,1))/2,3);
TEMPG:=MAX(HIGH,XOPEN);
XHIGH:=EMA(MAX(TEMPG,XCLOSE),3);
TEMP:=MIN(LOW,XOPEN);
XLOW:=EMA(MIN(TEMP,XCLOSE),3);
O1:=IF(XOPEN<XCLOSE,XOPEN,XCLOSE);
C1:=IF(XOPEN<XCLOSE,XCLOSE,XOPEN);
趋势线:=EMA(MA(C,34),60),LINETHICK3,COLORYELLOW;
X1A:=IF(EVERY(C>MA(C,20),2),趋势线,NULL);
X2A:=IF(EVERY(C<MA(C,20),2),趋势线,NULL);
DRAWLASTBARTEXT(X1A,' -做多为主'),COLORRED,VALIGN1,ALIGN0,FONTSIZE20;
DRAWLASTBARTEXT(X2A,' -做空为主'),COLORGREEN,VALIGN1,ALIGN0,FONTSIZE20;
////
MA20:=MA(C,20);
REF_ISDOWN:=REF(ISDOWN,1);
REF_H:=REF(H,1);
REF_ISUP:=REF(ISUP,1);
REF_L:=REF(L,1);
// 基准K:实体与20日线有重叠(只要实体有部分站上20日线,哪怕一点也算)
基准K:=CROSS(C,MA20);
// 开多信号:基准K出现后,后续3根K线内任意一根突破基准K的实体高点
HH:=VALUEWHEN(基准K,MAX(C,O));
首次开多:=C>HH&&SUM(C>HH,BARSLAST(基准K))=1&&BARSLAST(基准K)<5 ;
HH1:=VALUEWHEN(首次开多,MAX(C,O));
首次开空:=CROSSDOWN(C,VALUEWHEN(C<MA20&&ISDOWN,L));
再次开多:=C>HH1&&SUM(C>HH1,BARSLAST(首次开多))=1&&BARSLAST(基准K)<5 &&EXIST(首次开多,BARSLAST(基准K));
HH2:=VALUEWHEN(再次开多,MAX(C,O));
再次开空:=CROSSDOWN(C,VALUEWHEN(C<MA20&&ISUP,L))&&SUMBARS(C<MA20&&ISUP,1)<=5;
三次开多:=C>HH2&&SUM(C>HH2,BARSLAST(再次开多))=1&&BARSLAST(基准K)<5 &&EXIST(再次开多,BARSLAST(基准K));
// 首次开多 → 黄色
DRAWTEXT(首次开多||再次开多||三次开多, L-2*MINPRICE, '补多'), COLORYELLOW, FONTSIZE10, VALIGN0;
DRAWTEXT(首次开空||再次开空, H+2*MINPRICE, '开空'), COLORGREEN, FONTSIZE10, VALIGN2;