缠论线开关:=1;//笔中枢;
MA8:=1;
展F:=10;
HH展BDD:=(H>HV(H,展F))*缠论线开关*MA8;
NH展BDD:=(BARSLAST(HH展BDD)+1)*缠论线开关*MA8;
LL展BDD:=(LREF(D,NNHX) AND NNHX<=MX-3,NNHX,IF(REF(G,NNLX)0,NNX,MX-2) ,NODRAW;
H1:=REF(H,NNNX)=HHV(H,MX-1);
L1:=REF(L,NNNX)=LLV(L,MX-1);
FG01X:=BACKSET(H1,NNNX+1)>BACKSET(H1,NNNX),NODRAW;//只设置前面第M-1个
FD01X:=BACKSET(L1,NNNX+1)>BACKSET(L1,NNNX) ,NODRAW;
FG02X:=FG01X=FD01X AND G>D,NODRAW;
FD02X:=FG01X=FD01X AND G=MX-2,MX-2,BARSLAST(FD01X)))) AND FD02X=0 ,NODRAW;
FD0X:=FD01X AND IF(FD02X=1,L=LLV(L,BARSLAST(REF(FG01X,1))+1),L=LLV(L,IF(BARSLAST(H=HHV(L,MX))>=MX-2,MX-2,BARSLAST(FG01X))))  AND FG02X=0 ,NODRAW;
//高低点间周期
GTX:=BARSLAST(FG0X),NODRAW;
DTX:=BARSLAST(FD0X),NODRAW;
//第一次处理高低点间多余的点
LLLLX:=DTX=0 AND REF(DTX,1)REF(L,REF(DTX,1)+1),NODRAW;
FG1X:=BACKSET(REFX(GTX,1)=0 AND GTX=REF(H,GTX),GTX+1),NODRAW;
FD1X:=BACKSET(REFX(DTX,1)=0 AND DTXREF(D,BARSLAST(L=LLV(L,MX))),BARSLAST(L=LLV(L,MX))REF(L,REF(DTX,1)+1),1,0),NODRAW;
//再次周期X
GT1X:=BARSLAST(FG11X<>1 AND FG1X<>1 AND FG0X),NODRAW;
DT1X:=BARSLAST(FD11X<>1 AND FD1X<>1 AND FD0X),NODRAW;
FD2X:=BACKSET(REFX(GT1X,1)=0 AND DT1X<3 AND GT1X-DT1X<4 AND REF(L,DT1X)>LLV(L,GT1X+MX-2),DT1X+1),NODRAW;
FG2AX:=BACKSET(REFX(GT1X,1)=0 AND DT1X<3 AND GT1X-DT1X<4 AND REF(L,DT1X)<=LLV(L,GT1X+MX-2) AND REF(H,GT1X)>HHV(H,GT1X+MX-2),GT1X+1),NODRAW;
FG2BX:=IF(GT1X=0 AND DT1X<4 AND REF(GT1X,1)-DT1X<4 AND REF(L,DT1X)<=LLV(L,REF(GT1X,1)+MX-1) AND H>HHV(H,REF(GT1X,1)+MX-1),1,0),NODRAW;
FG2X:=BACKSET(REFX(DT1X,1)=0 AND GT1X<3 AND DT1X-GT1X<4 AND REF(H,GT1X)=HHV(L,DT1X+MX-2) AND REF(L,DT1X)>LLV(L,DT1X+MX-2),DT1X+1),NODRAW;
FD2BX:=IF(DT1X=0 AND GT1X<4 AND REF(DT1X,1)-GT1X<4 AND REF(H,GT1X)>=HHV(H,REF(DT1X,1)+6) AND L>LLV(L,REF(DT1X,1)+MX-1),1,0),NODRAW;
TTTTTTX:= H=REF(L,REF(DT1X,1)+1) ,1,0),NODRAW;
//前短后长,前低后高(去低);
FD231X:=BACKSET(REFX(GT1X,1)=0 AND DT1X>3 AND GT1X>DT1X AND GT1X-DT1X<4 AND REFX(H,1)>REF(H,GT1X) AND REF(L,DT1X)>REF(LLV(L,10),DT1X),DT1X+1),NODRAW;
FG23X:=BACKSET(REFX(GT1X,1)=0 AND DT1X>3 AND GT1X>DT1X AND  GT1X-DT1X<4 AND REFX(H,1)>REF(H,GT1X) AND (REF(H,GT1X)3  AND DT1X>GT1X AND DT1X-GT1X<4 AND REFX(L,1)3  AND DT1X>GT1X AND DT1X-GT1X<4 AND REFX(L,1)REF(LLV(L,13),DT1X) OR REF(FG231X,GT1X)=0),DT1X+1),NODRAW;
//前短后长,去3;
FDD23X:=REF(H,GT1X)3 AND GT1X>DT1X AND GT1X-DT1X<4 AND REFX(H,1)LLV(L,DT1X+5),DT1X+1),NODRAW;
FG24X:=BACKSET(REFX(DT1X,1)=0 AND GT1X>3  AND DT1X>GT1X AND DT1X-GT1X<4 AND REFX(L,1)>LLV(L,DT1X+3) AND REF(H,GT1X)1 AND FG23X<>1 AND FG231X<>1 AND FG24X<>1   AND FG2X<>1 AND FG2AX<>1 AND FG2BX<>1 AND GT1X=0),NODRAW;
DT2X:=BARSLAST(FD21X<>1 AND FD23X<>1 AND FD231X<>1 AND FD24X<>1  AND FD2X<>1 AND FD2AX<>1 AND FD2BX<>1 AND DT1X=0),NODRAW;
FG3X:=BACKSET(REFX(GT2X,1)=0 AND GT2X=REF(H,GT2X),GT2X+1),NODRAW;
FD3X:=BACKSET(REFX(DT2X,1)=0 AND DT2XREF(L,REF(DT2X,1)+1),1,0),NODRAW;
GT3X:=BARSLAST(GT2X=0 AND FG3X<>1 AND FG31X<>1 ),NODRAW;
DT3X:=BARSLAST(DT2X=0 AND  FD3X<>1 AND FD31X<>1),NODRAW;
FG4X:=BACKSET(REFX(GT3X,1)=0 AND GT3X=REF(H,GT3X),GT3X+1),NODRAW;
FD4X:=BACKSET(REFX(DT3X,1)=0 AND DT3XREF(L,REF(DT3X,1)+1),1,0),NODRAW;
HHHX:=GT3X=0 AND FG31X<>1 AND  FG3X<>1,NODRAW;
LLLX:=DT3X=0 AND FD31X<>1 AND  FD3X<>1,NODRAW;
DRAWLINE1(HHHX ,H,LLLX,L,0),RGB(0,128,255),LINETHICK2;//绿色
DRAWLINE1(LLLX,L,HHHX ,H,0),RGB(255,255,255),LINETHICK2;//红色
//最后一段画线
N1X:=BARSLAST(HHHX)+1;
N2X:=BARSLAST(LLLX)+1;
DRAWTEXT(HHHX,H,'●'),FONTSIZE25,RGB(255,0,255);
DRAWTEXT(LLLX,L,'●'),FONTSIZE25,RGB(255,255,255),VALIGN0;
DRAWNUMBER(HHHX,H*1.001,H,1,DOT),RGB(255,255,255);
DRAWNUMBER(LLLX,L*0.999,L,1,DOT),VALIGN0;




MA1:=EMA(C,8);
S:=MA1>REF(MA1,1);
XX:=MA1<=REF(MA1,1);
WS:=BARSLAST(S)+1,LINETHICK2;
WX:=BARSLAST(XX)+1,LINETHICK2;
H12:=REFX1(CROSSDOWN(SUM(S,WX),0.5),1)&&ISLASTBAR=0,ICON(1,'ICO1');
L12:=REFX1(CROSSDOWN(SUM(XX,WS),0.5),1)&&ISLASTBAR=0,ICON(1,'ICO2');
HH1X:BACKSET(H12,IF(VALUEWHEN(CROSS(SUM(S,WX),0.5),H)=HHV(H,BARSLAST(CROSS(SUM(S,WX),0.5) )+1),BARSLAST(CROSS(SUM(S,WX),0.5) )+1,  BARSLAST(H>HV(H,BARSLAST(CROSS(SUM(S,WX),0.5))))+1)),NODRAW;
LL1X:BACKSET(L12,IF(VALUEWHEN(CROSS(SUM(XX,WS),0.5),L)=LLV(L,BARSLAST(CROSS(SUM(XX,WS),0.5) )+1),BARSLAST(CROSS(SUM(XX,WS),0.5) )+1,  BARSLAST(L=REF(VALUEWHEN(HHZZ,H),1)&&VALUEWHEN(LLZZ,L>=REF(VALUEWHEN(LLZZ,L),1)),ICON(1,'ICO1');
HX2:=(HHZZ||ISLASTBAR)&&(HREF(VALUEWHEN(HHZZ,H),1)&&VALUEWHEN(LLZZ,LREF(VALUEWHEN(LLZZ,L),1)||IF(ISLASTBAR,1,LREF(VALUEWHEN(HHZZ,H),1))))&&REF(VALUEWHEN(LLZZ,LX1),1),ICON(0,'ICO2'),VALIGN0;

LX3:=LX1&&REF(VALUEWHEN(LLZZ,NOT(LX1)),1),ICON(0,'ICO3'),VALIGN0;
L0:=CROSS(BACKSET(HX2,REF(SUMBARS(HHZZ,1),1)+1),0.5);
L2:=CROSS(BACKSET(L0,BARSLAST(LLZZ)+1),0.5),ICON(1,'ICO2');
L3:=CROSS(BACKSET(HX3,SUMBARS(LLZZ,2)),0.5),ICON(1,'ICO2');

H0:=CROSS(BACKSET(LX2,REF(SUMBARS(LLZZ,1),1)+1),0.5);
H2:=CROSS(BACKSET(H0,BARSLAST(HHZZ)+1),0.5),ICON(1,'ICO2');
H3:=CROSS(BACKSET(LX3,SUMBARS(HHZZ,2)),0.5),ICON(1,'ICO2');

PP:=BACKSET(ISLASTBAR,SUMBARS(L3||H3,1));
P2:=BACKSET(ISLASTBAR,SUMBARS(L2&&COUNT(L2,BARSLAST(L3))=1||H2&&COUNT(H2,BARSLAST(H3))=1,1));



DRAWICON(CROSS(BACKSET(P2&&H2,BARSLAST(LLZZ)+1),0.5),L,4),VALIGN0;
DRAWICON(CROSS(BACKSET(P2&&L2,BARSLAST(HHZZ)+1),0.5),H,4),VALIGN2;
DRAWSHIFTNUMBER(ISLASTBAR,VALUEWHEN(P2&&L2,L),VALUEWHEN(P2&&L2,L),1,RGB(255,255,0),1,10);
DRAWSHIFTNUMBER(ISLASTBAR,VALUEWHEN(P2&&H2,H),VALUEWHEN(P2&&H2,H),1,RGB(128,0,255),1,10);




AL展BDD:=(BACKSET(COUNT(HH展BDD,NL展BDD)&&HH展BDD,NL展BDD))*缠论线开关*MA8;
//DRAWLINE1(CROSS(AH展BDD=1,0.5),H,CROSS(AL展BDD=1,0.5),L,0),DASHDOTDOT,LINETHICK1,RGB(146,99,1);
//DRAWLINE1(CROSS(AL展BDD=1,0.5),L,CROSS(AH展BDD=1,0.5),H,0),DASHDOTDOT,LINETHICK1,RGB(143,32,255);
//DRAWNUMBER(CROSS(AH展BDD=1,0.5),H+0*MINPRICE,H-VALUEWHEN(CROSS(AL展BDD=1,0.5),L),1,COLORYELLOW),ALIGN0,VALIGN2,FONTSIZE16;
//DRAWNUMBER(CROSS(AL展BDD=1,0.5),L-0*MINPRICE,L-VALUEWHEN(CROSS(AH展BDD=1,0.5),H),1,COLORGREEN),ALIGN0,VALIGN0,FONTSIZE16;
LX:=AL展BDD, NOTEXT;
HX:=AH展BDD, NOTEXT;

笔:=1;
//1、本级别 (BOLL26)笔:

XZ:BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),12)),NODRAW;
X8:CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),8)),0.5),NODRAW;

X9:CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),9)),0.5),NODRAW;

X12:CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),12)),0.5),NODRAW;

X13:CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),13)),0.5),NODRAW;


//BOLL26最后一笔(未完成);
//HH:=CROSS(HX=1,0.5);
//LL:=CROSS(LX=1,0.5);
HH:CROSS(AH展BDD=1,0.5), NOTEXT;
LL:CROSS(AL展BDD=1,0.5), NOTEXT;


////////2、画倒数1234的笔;
//2.1、倒数第4笔(已完成);
BADS4:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4));
BBDS4:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),5));

//2.2、倒数第2笔(已完成);
BADS2:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),2));
BBDS2:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),3));

//2.3、倒数第3笔(已完成);
BADS3:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),3));
BBDS3:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4));

//2.4、倒数第1笔(已完成);
BADS1:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),1));
BBDS1:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),2));



////////3、计算笔的长度;
//3.1、BOLL26笔(已完成)的每笔长度;
DRAWNUMBER1(笔*REFX(CROSS(LX=1,0.5),5),REFX(L,5),REFX((L-VALUEWHEN(CROSS(HX=1,0.5),H)),5),2),ALIGN2,VALIGN0,RGB(0,67,100);//向下笔(已完成)长度,保留2位小数;
DRAWNUMBER1(笔*REFX(CROSS(HX=1,0.5),5),REFX(H,5),REFX((H-VALUEWHEN(CROSS(LX=1,0.5),L)),5),2),ALIGN2,VALIGN2,RGB(0,67,100);//向上笔(已完成)长度,保留2位小数;
//BOLL26最后一笔(未完成)长度;
BX1:=CROSS(BACKSET(ISLASTBAR&&BARSLAST(HH)BARSLAST(LL),HHVBARS(H,BARSLAST(LL))+1),0.5);
DRAWNUMBER1(笔*REFX(BX1,5),REFX(L,5),REFX((L-VALUEWHEN(CROSS(HX=1,0.5),H)),5),2),ALIGN2,VALIGN0,RGB(0,67,100);//向下笔(未完成)长度,保留2位小数;
DRAWNUMBER1(笔*REFX(BX2,5),REFX(H,5),REFX((H-VALUEWHEN(CROSS(LX=1,0.5),L)),5),2),ALIGN2,VALIGN0,RGB(0,67,100);//向上笔(未完成)长度,保留2位小数;





////////4、笔终点标注文字记号;
//4.1、笔(已完成)终点标注文字;
BAA:=IF(CROSS(LX=1,0.5),L,H);
BBB:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4));
DRAWTEXT(笔*BBB&&CROSS(HX=1,0.5)&&COUNT(CROSS(HX=1,0.5),BARSLASTCOUNT(BBB))=1,H,'H2      '),ALIGN2,FONTSIZE18,RGB(128,128,255),COLORRED;//倒数第2个高点标注文字;
DRAWTEXT(笔*BBB&&CROSS(HX=1,0.5)&&COUNT(CROSS(HX=1,0.5),BARSLASTCOUNT(BBB))=2,H,'H1      '),ALIGN2,FONTSIZE18,RGB(128,128,255),COLORRED;//倒数第1个高点标注文字;
DRAWTEXT(笔*BBB&&CROSS(LX=1,0.5)&&COUNT(CROSS(LX=1,0.5),BARSLASTCOUNT(BBB))=1,L,'L2      '),ALIGN2,VALIGN0,FONTSIZE18,RGB(128,128,255),COLORGREEN;//倒数第2个低点标注文字;
DRAWTEXT(笔*BBB&&CROSS(LX=1,0.5)&&COUNT(CROSS(LX=1,0.5),BARSLASTCOUNT(BBB))=2,L,'L1      '),ALIGN2,VALIGN0,FONTSIZE18,RGB(128,128,255),COLORGREEN;//倒数第1个低点标注文字;

BAA0:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),5));
DRAWTEXT(笔*CROSS(BAA0>=1,0.5) && CROSS(LX=1,0.5),L,'L3      '),ALIGN2,VALIGN0,FONTSIZE18,RGB(155,155,155),COLORGREEN;//倒数第3个低点标注文字;
DRAWTEXT(笔*CROSS(BAA0>=1,0.5) && CROSS(HX=1,0.5),H,'H3      '),ALIGN2,FONTSIZE18,RGB(155,155,155),COLORRED;//倒数第3个高点标注文字;

BAA1:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),6));
DRAWTEXT(笔*CROSS(BAA1>=1,0.5) && CROSS(LX=1,0.5),L,'L4      '),ALIGN2,VALIGN0,FONTSIZE18,RGB(155,155,155),COLORGREEN;//倒数第4个低点标注文字;
DRAWTEXT(笔*CROSS(BAA1>=1,0.5) && CROSS(HX=1,0.5),H,'H4      '),ALIGN2,FONTSIZE18,RGB(155,155,155),COLORRED;//倒数第4个高点标注文字;

//4.2、笔(未完成)的最后1笔标注文字;
AM26:=BACKSET(ISLASTBAR&&BARSLAST(HH)>BARSLAST(LL),HHVBARS(H,BARSLAST(LL))+1);
BM26:=BACKSET(ISLASTBAR&&BARSLAST(HH)0 || HH1>0 || LL2>0 || LL1>0)=1;
NGG:=BARSLASTCOUNT(HH2>0 && HH1>0 && LL2>0 && LL1>0)=1;
DRAWSL(笔中枢*NGG,MIN(HH2,HH1),0,-SUMBARS(NG,1)+1,0,RGB(128,128,255)),DOT;//中枢上轨;
DRAWSL(笔中枢*NGG,MAX(LL2,LL1),0,-SUMBARS(NG,1)+1,0,RGB(128,128,255)),DOT;//中枢下轨;
DRAWLINE(笔中枢*NGG,MIN(HH2,HH1),NGG,MAX(LL2,LL1),RGB(128,128,255)),DOT;//中枢右边垂线;
DRAWLINE3(笔中枢*NGG,MIN(HH2,HH1),SUMBARS(NG,1)-1,NGG,MAX(LL2,LL1),SUMBARS(NG,1)-1,0),RGB(128,128,255),DOT;//中枢左边垂线;
//画笔中枢框延伸部分;
L1缠:=CROSS(BACKSET(ISLASTBAR,BARSLAST(CROSS(LX=1,0.5))+1),0.5);
L2缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5),2)),0.5);
L3缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5),3)),0.5);
L4缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5),4)),0.5),ICON(1,'●');
L5缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5),5)),0.5),ICON(1,'●');
H1缠:=CROSS(BACKSET(ISLASTBAR,BARSLAST(CROSS(HX=1,0.5))+1),0.5);
H2缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(HX=1,0.5),2)),0.5);
H3缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(HX=1,0.5),3)),0.5);
H4缠:=CROSS(BACKSET(ISLASTBAR,SUMBARS(CROSS(HX=1,0.5),4)),0.5),ICON(1,'●');

周期:=BARSLAST(CROSS(BBB,0.5)),RGB(255,0,255);
DRAWLINE3(ISLASTBAR&&VALUEWHEN(L1缠,L)>=VALUEWHEN(L2缠,L),VALUEWHEN(L1缠,L),0,1,VALUEWHEN(L1缠,L),BARSLAST(CROSS(BBB,0.5)),0),RGB(128,128,255),LINETHICK1;
DRAWLINE3(ISLASTBAR&&VALUEWHEN(L1缠,L)<=VALUEWHEN(L2缠,L),VALUEWHEN(L2缠,L),0,1,VALUEWHEN(L2缠,L),BARSLAST(CROSS(BBB,0.5)),0),RGB(128,128,255),LINETHICK1;
DRAWTEXT(ISLASTBAR&&VALUEWHEN(L1缠,L)>=VALUEWHEN(L2缠,L),VALUEWHEN(L1缠,L),'                                              笔枢下沿'),RGB(128,128,255);
DRAWTEXT(ISLASTBAR&&VALUEWHEN(L1缠,L)<=VALUEWHEN(L2缠,L),VALUEWHEN(L2缠,L),'                                              笔枢下沿'),RGB(128,128,255);
DRAWNUMBER(ISLASTBAR&&VALUEWHEN(L1缠,L)>=VALUEWHEN(L2缠,L),VALUEWHEN(L1缠,L),VALUEWHEN(L1缠,L)*(-1),2,RGB(128,128,255)),ALIGN0;
DRAWNUMBER(ISLASTBAR&&VALUEWHEN(L1缠,L)<=VALUEWHEN(L2缠,L),VALUEWHEN(L2缠,L),VALUEWHEN(L2缠,L)*(-1),2,RGB(128,128,255)),ALIGN0;
DRAWLINE3(ISLASTBAR&&VALUEWHEN(H1缠,H)>=VALUEWHEN(H2缠,H),VALUEWHEN(H2缠,H),0,1,VALUEWHEN(H2缠,H),BARSLAST(CROSS(BBB,0.5)),0),RGB(128,128,255),DOT;
DRAWLINE3(ISLASTBAR&&VALUEWHEN(H1缠,H)<=VALUEWHEN(H2缠,H),VALUEWHEN(H1缠,H),0,1,VALUEWHEN(H1缠,H),BARSLAST(CROSS(BBB,0.5)),0),RGB(128,128,255),DOT;
DRAWNUMBER(ISLASTBAR&&VALUEWHEN(H1缠,H)>=VALUEWHEN(H2缠,H),VALUEWHEN(H2缠,H),VALUEWHEN(H2缠,H)*(-1),2,RGB(128,128,255)),ALIGN0;
DRAWNUMBER(ISLASTBAR&&VALUEWHEN(H1缠,H)<=VALUEWHEN(H2缠,H),VALUEWHEN(H1缠,H),VALUEWHEN(H1缠,H)*(-1),2,RGB(128,128,255)),ALIGN0;
DRAWTEXT(ISLASTBAR&&VALUEWHEN(H1缠,H)>=VALUEWHEN(H2缠,H),VALUEWHEN(H2缠,H),'                                              笔枢上沿'),RGB(128,128,255);
DRAWTEXT(ISLASTBAR&&VALUEWHEN(H1缠,H)<=VALUEWHEN(H2缠,H),VALUEWHEN(H1缠,H),'                                              笔枢上沿'),RGB(128,128,255);





//填充中枢;
HHH2:=REFX1(VALUEWHEN(BBB&&CROSS(HX=1,0.5)&&COUNT(CROSS(HX=1,0.5),BARSLASTCOUNT(BBB))=1,H),99999);
HHH1:=REFX1(VALUEWHEN(BBB&&CROSS(HX=1,0.5)&&COUNT(CROSS(HX=1,0.5),BARSLASTCOUNT(BBB))=2,H),99999);
LLL2:=REFX1(VALUEWHEN(BBB&&CROSS(LX=1,0.5)&&COUNT(CROSS(LX=1,0.5),BARSLASTCOUNT(BBB))=1,L),99999);
LLL1:=REFX1(VALUEWHEN(BBB&&CROSS(LX=1,0.5)&&COUNT(CROSS(LX=1,0.5),BARSLASTCOUNT(BBB))=2,L),99999);
AA:=BACKSET(ISLASTBAR,MAX(BARSLAST(H2缠),BARSLAST(L2缠))+1),NODRAW;
BB:=BACKSET(ISLASTBAR,MIN(BARSLAST(H1缠),BARSLAST(L1缠))+1),NODRAW;
ZXZ:=(IF(ISNULL( AA),0,AA)+IF(ISNULL( BB),0,BB))=1|| REF((IF(ISNULL( AA),0,AA)+IF(ISNULL( BB),0,BB))=1,1),NODRAW;
FILLRGN(ZXZ&&笔中枢*BARSLASTCOUNT(HH2>0 || HH1>0 || LL2>0 || LL1>0)>=1 && ((HH2>0 && HH1>0 && LL2>0 && LL1>0)=0 || BARSLASTCOUNT(HH2>0 && HH1>0 && LL2>0 && LL1>0)=1),MAX(LLL1,LLL2),MIN(HHH1,HHH2),RGB(0,0,100));//填充中枢;





AAX:CROSS(BACKSET(ISLASTBAR,BARSLAST(CROSS(LX=1,0.5)||CROSS(HX=1,0.5))+1),0.5),ICON(1,'ICO1');

DRAWSL(AAX, REF(HHV(IF(CROSS(LX=1,0.5),L,0) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8)),0,-SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),12),0,COLORYELLOW);
DRAWSL(AAX, REF(LLV(IF(CROSS(HX=1,0.5),H,999999) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8)),0,-SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),12),0,COLORYELLOW);
DRAWLINE(AAX,REF(HHV(IF(CROSS(LX=1,0.5),L,0) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8)),1,REF(LLV(IF(CROSS(HX=1,0.5),H,999999) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8)),COLORYELLOW);
DRAWLINE3(AAX,REF(HHV(IF(CROSS(LX=1,0.5),L,0) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8)),SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),12),AAX,REF(LLV(IF(CROSS(HX=1,0.5),H,999999) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8)),SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),12),0),COLORYELLOW;

HHX:REFX1(VALUEWHEN(AAX,REF(HHV(IF(CROSS(LX=1,0.5),L,0) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8))),10000),NODRAW;
LLX:REFX1(VALUEWHEN(AAX,REF(LLV(IF(CROSS(HX=1,0.5),H,999999) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4)) ,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5) , 8))),10000),NODRAW;

/////6.2填充中枢区间;
//扩张型中枢,G1>G2,D2>D1, G2>D2,填充区间G2D2;
FILLRGN(ZXZ&&笔中枢*REFX1(ISLASTBAR&&VALUEWHEN(H1缠,H)>=VALUEWHEN(H2缠,H)&&ISLASTBAR&&VALUEWHEN(L2缠,L)>=VALUEWHEN(L1缠,L) &&ISLASTBAR&&VALUEWHEN(H2缠,H)>VALUEWHEN(L2缠,L),10000),    REFX1(VALUEWHEN(L2缠,L),10000),  REFX1(VALUEWHEN(H2缠,H),10000),  RGB(0,0,100));
//收敛型中枢,G2>G1,D1>D2, G1>D1,填充区间G1D1;

FILLRGN(ZXZ&&笔中枢*REFX1(ISLASTBAR&&VALUEWHEN(H2缠,H)>=VALUEWHEN(H1缠,H)&&ISLASTBAR&&VALUEWHEN(L1缠,L)>=VALUEWHEN(L2缠,L) &&ISLASTBAR&&VALUEWHEN(H1缠,H)>VALUEWHEN(L1缠,L),10000),   REFX1(VALUEWHEN(H1缠,H),10000),  REFX1(VALUEWHEN(L1缠,L),10000),RGB(33,33,33));
//奔走向上型,向上之字型中枢,G1>G2,D1>D2,  G2>D1,填充区间G2D1;

FILLRGN(ZXZ&&笔中枢*REFX1(ISLASTBAR&&VALUEWHEN(H1缠,H)>=VALUEWHEN(H2缠,H)&&ISLASTBAR&&VALUEWHEN(L1缠,L)>=VALUEWHEN(L2缠,L) &&ISLASTBAR&&VALUEWHEN(H2缠,H)>VALUEWHEN(L1缠,L),10000) ,   REFX1(VALUEWHEN(H2缠,H),10000),  REFX1(VALUEWHEN(L1缠,L),10000),RGB(99,80,0));
//奔走向下型,向下之字型中枢,G2>SG1,D2>D1,  G1>D2,填充区间G1D2;

FILLRGN(ZXZ&&笔中枢*REFX1(ISLASTBAR&&VALUEWHEN(H2缠,H)>=VALUEWHEN(H1缠,H)&&ISLASTBAR&&VALUEWHEN(L2缠,L)>=VALUEWHEN(L1缠,L) &&ISLASTBAR&&VALUEWHEN(H1缠,H)>VALUEWHEN(L2缠,L),10000),   REFX1(VALUEWHEN(H1缠,H),10000),  REFX1(VALUEWHEN(L2缠,L),10000),  RGB(0,27,0));

//上涨3买型,G1>G2,D1>D2, G2VALUEWHEN(H2缠,H)&&ISLASTBAR&&VALUEWHEN(L1缠,L)>VALUEWHEN(L2缠,L) &&ISLASTBAR&&VALUEWHEN(H2缠,H)G1,D2>D1,  G1VALUEWHEN(H1缠,H)&&ISLASTBAR&&VALUEWHEN(L2缠,L)>VALUEWHEN(L1缠,L) &&ISLASTBAR&&VALUEWHEN(H1缠,H)REF(VALUEWHEN(CROSS(HX=1,0.5),H),1)))&& VALUEWHEN(AAX,VALUEWHEN(CROSS(LX=1,0.5),L>REF(VALUEWHEN(CROSS(LX=1,0.5),L),1)))&&REF(REF(H,SUMBARS(CROSS(HX=1,0.5),2)-1),1)H2&&L1>L2&&H2VALUEWHEN(CROSS(HX=1,0.5),H) ,10000),NODRAW;//H1H2&&L2>L1&&H2>L2 RGB(0,0,100)
DO3:REFX1(VALUEWHEN(AAX,VALUEWHEN(CROSS(HX=1,0.5),H>REF(VALUEWHEN(CROSS(HX=1,0.5),H),1)))&& VALUEWHEN(AAX,VALUEWHEN(CROSS(LX=1,0.5),LREF(REF(L,SUMBARS(CROSS(LX=1,0.5),2)-1),1) ,10000),NODRAW;//H1>H2&&L1>L2&&H2H1&&L1>L2&&H1>L1 RGB(33,33,33)
DO4:REFX1(VALUEWHEN(AAX,VALUEWHEN(CROSS(HX=1,0.5),HREF(VALUEWHEN(CROSS(LX=1,0.5),L),1)))&&REF(REF(H,SUMBARS(CROSS(HX=1,0.5),1)-1),1)>REF(REF(L,SUMBARS(CROSS(LX=1,0.5),1)-1),1) ,10000),NODRAW;//H1>H2&&L1>L2&&H2H2&&L1>L2&&H2>L1  RGB(99,80,0)
DO5:REFX1(VALUEWHEN(AAX,VALUEWHEN(CROSS(HX=1,0.5),H>REF(VALUEWHEN(CROSS(HX=1,0.5),H),1)))&& VALUEWHEN(AAX,VALUEWHEN(CROSS(LX=1,0.5),L>REF(VALUEWHEN(CROSS(LX=1,0.5),L),1)))&&REF(REF(H,SUMBARS(CROSS(HX=1,0.5),2)-1),1)>REF(REF(L,SUMBARS(CROSS(LX=1,0.5),1)-1),1) ,10000),NODRAW;//H1>H2&&L1>L2&&H2H1&&L2>L1&&H1>L2  RGB(0,27,0) 
DO6:REFX1(VALUEWHEN(AAX,VALUEWHEN(CROSS(HX=1,0.5),HREF(REF(L,SUMBARS(CROSS(LX=1,0.5),2)-1),1) ,10000),NODRAW;//H1>H2&&L1>L2&&H2REF(HN,1))); 
LL3:=BARSLAST((LLY LL3),-1,0)); 
HM:=HHV(HIGH,3);
LM:=LLV(LOW,3);
HM1:=IF(HCLOSE&&(HHV(OPEN,0)-CLOSE)>0,REF(H,4),0);
LM1:=IF(L>REF(L,1)&&L>REF(L,3)&&L>REF(L,5)&&H>REF(H,1)&&H>REF(H,2)&&H>REF(H,4)&&OPEN0,REF(L,4),0);
HM2:=VALUEWHEN(HM1>0,HM1);
LM2:=VALUEWHEN(LM1>0,LM1);
KM1:=IF(CLOSE>HM2,-3,IF(CLOSE0,KM1);
GM:=IF(KM2=1,HM2,LM2);
GM1:=VALUEWHEN(ISLASTBAR,GM);

BLQ:=2;
TMPM:=KM2; 
WM1:=KM2;
WM2:=OPEN-CLOSE;
HTM:=IF(OPEN>CLOSE,OPEN,CLOSE);
LTM:=IF(OPEN0 ,ZXQ,NULL), COLORYELLOW,LINETHICK2;
布上:=IF(BLQ>1,SA,NULL), COLORCYAN,LINETHICK1;
XA:= ZXQ-2*TMP2;
布下:=IF(BLQ>1,XA,NULL),COLORCYAN,LINETHICK1;



熊26:IF( BLQ>1 OR X=2 OR X=3,MA(C,89),NULL),COLORRED,LINETHICK3,NODRAW;



//缠论
局部低点预选A:=BACKSET(LLV(L,5)REF(HHV(H,4),1),4);
局部高点预选B:=BACKSET(局部高点预选A=0 AND REF(局部高点预选A,1)=1,2);
局部高点预选C:=IF(局部高点预选B=1 AND REF(局部高点预选B,1)=0,1,0);
缺口判断:=IF(L>REF(H,1),1,IF(HREF(距前低天,1) AND LLV(L,距前高天+1)=4 OR LLV(缺口判断,距前高天)=-1 OR LLV(L,距前低天+2)1) OR REF(低保留S,距前低天)=0,1,0);
判断:=IF(局部高点预选C=1 AND REF(距前低天,1)<=REF(距前高天,1) AND 预判=1 AND 大值周期>REF(小值周期,距前低天+1) AND 大值周期>REF(小值周期,距前低天) AND 大值周期>REF(大值周期,距前高天),1,0);
高保留A:=IF(局部高点预选C=1 AND REF(距前低天,1)>REF(距前高天,1) AND HHV(H,距前低天+1)>REF(HHV(H,距前低天+1),1),1,0);
高保留B:=IF(局部高点预选C=1 AND REF(距前低天,1)<=REF(距前高天,1) AND REF(低保留S,距前低天)=-1 AND (距前低天>=4 OR HHV(缺口判断,距前低天)=1),1,0);
高保留:=IF((高保留A=1 OR 高保留B=1 OR 判断=1) AND H>REF(L,距前低天+1),1,0);
预判A:=IF((距前高天<4 AND HHV(缺口判断,距前高天)<>1) OR REF(高保留,距前高天)=0,1,0);
判断A:=IF(局部低点预选C=-1 AND REF(距前高天,1)<=REF(距前低天,1) AND 预判A=1 AND 小值周期>REF(大值周期,距前高天+1) AND 小值周期>REF(大值周期,距前高天) AND 小值周期>REF(小值周期,距前低天),-1,0);
低保留A:=IF(局部低点预选C=-1 AND REF(距前高天,1)>REF(距前低天,1) AND LLV(L,距前高天+1)=4 OR LLV(缺口判断,距前高天)=-1 OR 判断A=-1),-1,0);
低保留:=IF((低保留A=-1 OR 低保留B=-1) AND L1) OR REF(低保留,距前低天A)=0,1,0);
判断X:=IF(局部高点预选C=1 AND REF(距前低天A,1)<=REF(距前高天A,1) AND 预判X=1 AND 大值周期>REF(小值周期,距前低天A+1) AND 大值周期>REF(小值周期,距前低天A) AND 大值周期>REF(大值周期,距前高天A),1,0);
高保留XA:=IF(局部高点预选C=1 AND REF(距前低天A,1)>REF(距前高天A,1) AND HHV(H,距前低天A+1)>REF(HHV(H,距前低天A+1),1),1,0);
高保留XB:=IF(局部高点预选C=1 AND REF(距前低天A,1)<=REF(距前高天A,1) AND REF(低保留,距前低天A)=-1 AND (距前低天A>=4 OR HHV(缺口判断,距前低天A)=1),1,0);
高保留X:=IF((高保留XA=1 OR 高保留XB=1 OR 判断X=1) AND H>REF(L,距前低天A+1),1,0);
预判XA:=IF((距前高天A<4 AND HHV(缺口判断,距前高天A)<>1) OR REF(高保留XA,距前高天A)=0,1,0);
判断XA:=IF(局部低点预选C=-1 AND REF(距前高天A,1)<=REF(距前低天A,1) AND 预判XA=1 AND 小值周期>REF(大值周期,距前高天A+1) AND 小值周期>REF(大值周期,距前高天A) AND 小值周期>REF(小值周期,距前低天A),-1,0);
低保留XA:=IF(局部低点预选C=-1 AND REF(距前高天A,1)>REF(距前低天A,1) AND LLV(L,距前高天A+1)=4 OR LLV(缺口判断,距前高天A)=-1 OR 判断XA=-1),-1,0);
低保留X:=IF((低保留XA=-1 OR 低保留XB=-1) AND L1) OR REF(低保留X,距前低天YA)=0,1,0);
判断YX:=IF(局部高点预选C=1 AND REF(距前低天YA,1)<=REF(距前高天YA,1) AND 预判YX=1 AND 大值周期>REF(小值周期,距前低天YA+1) AND 大值周期>REF(小值周期,距前低天YA) AND 大值周期>REF(大值周期,距前高天YA),1,0);
高保留YXA:=IF(局部高点预选C=1 AND REF(距前低天YA,1)>REF(距前高天YA,1) AND HHV(H,距前低天YA+1)>REF(HHV(H,距前低天YA+1),1),1,0);
高保留YXB:=IF(局部高点预选C=1 AND REF(距前低天YA,1)<=REF(距前高天YA,1) AND REF(低保留X,距前低天YA)=-1 AND (距前低天YA>=4 OR HHV(缺口判断,距前低天YA)=1),1,0);
高保留YX:=IF((高保留YXA=1 OR 高保留YXB=1 OR 判断YX=1) AND H>REF(L,距前低天YA+1),1,0);
预判YXA:=IF((距前高天YA<4 AND HHV(缺口判断,距前高天YA)<>1) OR REF(高保留YXA,距前高天YA)=0,1,0);
判断YXA:=IF(局部低点预选C=-1 AND REF(距前高天YA,1)<=REF(距前低天YA,1) AND 预判YXA=1 AND 小值周期>REF(大值周期,距前高天YA+1) AND 小值周期>REF(大值周期,距前高天YA) AND 小值周期>REF(小值周期,距前低天YA),-1,0);
低保留YXA:=IF(局部低点预选C=-1 AND REF(距前高天YA,1)>REF(距前低天YA,1) AND LLV(L,距前高天YA+1)=4 OR LLV(缺口判断,距前高天YA)=-1 OR 判断YXA=-1),-1,0);
低保留YX:=IF((低保留YXA=-1 OR 低保留YXB=-1) AND LREF(H,REF(距前高天YA,1)+2),1,IF(高保留YX=1 AND 低保留YX=-1 AND LREF(D,NNH) ,NODRAW;
NNQQ:=IF(REF(G,NNH)>REF(D,NNH) AND NNH<=4,NNH,IF(REF(G,NNL)0,NNQQ,5) ,NODRAW;

FG01:=BACKSET(HH,N+1)>BACKSET(HH,N),NODRAW;//只设置前面第6个
FD01:=BACKSET(LL,N+1)>BACKSET(LL,N) ,NODRAW;
FG02:=FG01=FD01 AND G>D,NODRAW;
FD02:=FG01=FD01 AND GBARSLAST(FG01),FG01,0),NODRAW;
//高点处
FD001:=IF(BARSLAST(FG001)=0 AND BARSLAST(FG01)=BARSLAST(FD01) AND D>G,FD01,NULL);
FD003:=IF(BARSLAST(FG001)=0 AND BARSLAST(FG01)>BARSLAST(FD01),FD01,0),NODRAW;
TTTT:=BARSLAST(FD01),NODRAW;
FG0:=FG01 AND H=HHV(H,IF(FG02=1,BARSLAST(REF(FD01,1))+1,BARSLAST(FD01))) AND FD02=0 ,NODRAW;
FD0:=FD01 AND L=LLV(L,IF(FD02=1,BARSLAST(REF(FG01,1))+1,BARSLAST(FG01))) AND FG02=0 ,NODRAW;
FG00:=FG01 AND IF(FG02=1,H=HHV(H,BARSLAST(REF(FD01,1))+1),H=HHV(H,IF(BARSLAST(L=LLV(L,7))>=5,5,BARSLAST(FD01)))) AND FD02=0 ,NODRAW;
FD00:=FD01 AND IF(FD02=1,L=LLV(L,BARSLAST(REF(FG01,1))+1),L=LLV(L,IF(BARSLAST(H=HHV(L,7))>=5,5,BARSLAST(FG01))))  AND FG02=0 ,NODRAW;
//高低点间周期
GT:=BARSLAST(FG00),NODRAW;
DT:=BARSLAST(FD00),NODRAW;
//第一次处理高低点间多余的点
LLLL:=DT=0 AND REF(DT,1)REF(L,REF(DT,1)+1),NODRAW;
FG1:=BACKSET(REFX(GT,1)=0 AND GT
=REF(H,GT),GT+1),NODRAW; FD1:=BACKSET(REFX(DT,1)=0 AND DTREF(D,BARSLAST(L=LLV(L,7))),BARSLAST(L=LLV(L,7))<5,1) AND HREF(L,REF(DT,1)+1),1,0),NODRAW; //再次周期 GT1:=BARSLAST(FG11<>1 AND FG1<>1 AND FG0),NODRAW; DT1:=BARSLAST(FD11<>1 AND FD1<>1 AND FD0),NODRAW; GGT1:=REF(GT1,1),NODRAW;//处理两边都少于3根的笔 HHHH:=REF(H,GT1),NODRAW; HHHHH:=HHV(H,GT1+5),NODRAW; FD2:=BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)>LLV(L,GT1+5),DT1+1),NODRAW; //加两句,低是最低,去两边; NL:=GT1=0 AND DT1<4 AND REF(GT1,1)-DT1<4 ,NODRAW; LLLLLLLL:=LLV(L,GT1+5),NODRAW; FG2A:=BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)<=LLV(L,GT1+5) AND REF(H,GT1)>HHV(H,GT1+5),GT1+1),NODRAW; FG2B:=IF(GT1=0 AND DT1<4 AND REF(GT1,1)-DT1<4 AND REF(L,DT1)<=LLV(L,REF(GT1,1)+6) AND H>HHV(H,REF(GT1,1)+6),1,0),NODRAW; FG2:=BACKSET(REFX(DT1,1)=0 AND GT1<3 AND DT1-GT1<4 AND REF(H,GT1)=HHV(L,DT1+5) AND REF(L,DT1)>LLV(L,DT1+5),DT1+1),NODRAW; FD2B:=IF(DT1=0 AND GT1<4 AND REF(DT1,1)-GT1<4 AND REF(H,GT1)>=HHV(H,REF(DT1,1)+6) AND L>LLV(L,REF(DT1,1)+6),1,0),NODRAW;// GGG:=IF(HHV(H,GT1+1)1),NODRAW; DT11:=BARSLAST(DT1=0 AND FD2<>1 AND FD02<>1),NODRAW; //FG21:IF(GT1=0 AND DT1<4 AND HLLV(L,REF(DT1,1)+3) ,1,0),NODRAW; FD22:=BACKSET(REFX(GT1,1)=0 AND DT1<3 AND REFX(H,1)>REF(H,GT1) AND REF(L,DT1)>LLV(L,GT1+5),DT1+1),NODRAW; G22:=BACKSET(REFX(DT1,1)=0 AND GT1<3 AND REFX(L,1)=REF(L,REF(DT1,1)+1) ,1,0),NODRAW; //前短后长,前低后高(去低); FD231:=BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)>REF(H,GT1) AND REF(L,DT1)>REF(LLV(L,10),DT1),DT1+1),NODRAW; FG23:=BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)>REF(H,GT1) AND (REF(H,GT1)=REF(HHV(H,8),GT1),NODRAW; //前短后长,去2; FG231:=BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)REF(LLV(L,13),DT1) OR REF(FG231,GT1)=0),DT1+1),NODRAW;///前短后长,去3; FDD23:=REF(H,GT1)3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)LLV(L,DT1+5),DT1+1),NODRAW; FG24:=BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)>LLV(L,DT1+3) AND REF(H,GT1)4 AND REF(GT1,1)-DT1<3 AND H1,1,0),NODRAW; FD241:=IF(DT1=0 AND GT1>4 AND REF(DT1,1)-GT1<3 AND L>LLV(L,REF(DT1,1)+3) AND REF(FG24,GT1+2)<>1,1,0),NODRAW; FGE:=BACKSET(ISLASTBAR AND DT1-GT1<3 AND DT1>GT1, GT1+1),NODRAW;//FDE:BACKSET(ISLASTBAR AND GT1-DT1<3 AND GT1>DT1, DT1+1),NODRAW; FG21:=IF(GT1=0 AND DT1<4 AND REF(GT1,1)<4,1,0),NODRAW; FD21:=IF(DT1=0 AND GT1<4 AND REF(DT1,1)<4 ,1,0),NODRAW; //做两次高低点间多余的点 GT2:=BARSLAST(FG21<>1 AND FG23<>1 AND FG231<>1 AND FG24<>1 AND FG2<>1 AND FG2A<>1 AND FG2B<>1 AND GT1=0),NODRAW; DT2:=BARSLAST(FD21<>1 AND FD23<>1 AND FD231<>1 AND FD24<>1 AND FD2<>1 AND FD2A<>1 AND FD2B<>1 AND DT1=0),NODRAW; FG3:=BACKSET(REFX(GT2,1)=0 AND GT2=REF(H,GT2),GT2+1),NODRAW; //HHX:REF(H,GT2),NODRAW; FD3:=BACKSET(REFX(DT2,1)=0 AND DT2REF(L,REF(DT2,1)+1),1,0),NODRAW; GT3:=BARSLAST(GT2=0 AND FG3<>1 AND FG31<>1 ),NODRAW; DT3:=BARSLAST(DT2=0 AND FD3<>1 AND FD31<>1),NODRAW; FG4:=BACKSET(REFX(GT3,1)=0 AND GT3=REF(H,GT3),GT3+1),NODRAW; FD4:=BACKSET(REFX(DT3,1)=0 AND DT3REF(L,REF(DT3,1)+1),1,0),NODRAW; LLL:=DT3=0 AND FD31<>1 AND FD3<>1,NODRAW; HHH:=FG0 AND FG11<>1 AND FG1<>1 AND FG2<>1 AND FG21<>1 AND FG31<>1 AND FG3<>1; PARTLINE(FG0 AND FG41<>1 AND FG4<>1 AND FG31<>1 AND FG3<>1 AND FG2<>1 AND FG11<>1 AND FG1<>1,H,COLORYELLOW),CIRCLEDOT,LINETHICK5; PARTLINE(FD0 AND FD41<>1 AND FD4<>1 AND FD31<>1 AND FD3<>1 AND FD2<>1 AND FD11<>1 AND FD1<>1,L,COLORYELLOW),CIRCLEDOT,LINETHICK5; //PARTLINE(FD01 ,L,COLORRED),CIRCLEDOT,LINETHICK2; //PARTLINE(FG0 ,H,COLORYELLOW),POINTDOT,LINETHICK2; //PARTLINE(FD0 ,L,COLORCYAN),CIRCLEDOT,LINETHICK2; BD:=IF(FD0 AND FD41<>1 AND FD4<>1 AND FD31<>1 AND FD3<>1 AND FD2<>1 AND FD11<>1 AND FD1<>1,L,0); 笔低:=IF(BD<>0,BD,NULL),COLORYELLOW,NODRAW; BG:=IF(FG0 AND FG41<>1 AND FG4<>1 AND FG31<>1 AND FG3<>1 AND FG2<>1 AND FG11<>1 AND FG1<>1,H,0); 笔高:IF(BG<>0,BG,NULL),COLORYELLOW,NODRAW; 老笔:=1; GB:=MA(C,5); DB:=MA(C,10); HHB:=REF(H,5)=HHV(H,11); FGB01:=BACKSET(HHB,6)>BACKSET(HHB,5) ; FDB01:=BACKSET(LL1,6)>BACKSET(LL1,5) ; FGB02:=IF(BARSLAST(FGB01)=BARSLAST(FDB01) AND GB>DB,FGB01,IF(BARSLAST(FDB01)>BARSLAST(FGB01),FGB01,0)); FDB02:=IF(BARSLAST(FGB01)=BARSLAST(FDB01) AND DB>GB,FDB01,IF(BARSLAST(FGB01)>BARSLAST(FDB01),FDB01,0)); FGB0:=FGB02 AND H=HHV(H,BARSLAST(FDB02)); FDB0:=FDB02 AND L=LLV(L,BARSLAST(FGB02)); JG:=IF(FGB0 AND BG=0,H,1) ; 局高:=IF(JG<>1,JG,NULL),COLORGREEN,NODRAW; JD:=IF(FDB0 AND BD=0,L,-1),COLORGREEN; 局低:IF(JD<>-1,JD,NULL),COLORGREEN,NODRAW; 短极点:IF(PERIOD>2,IF(极点保留=-1 AND BD=0 AND JD=-1,L,IF(极点保留=1 AND BG=0 AND JG=1,H,NULL)) ,NULL),COLORMAGENTA,NODRAW; //中枢分割线 HIGH1:=REF(HHV(H,90),3);//3周期前的90周期的最高价 LOW1:=REF(LLV(L,90),3);//3周期前的90周期的最低价 J1:=HIGH1-(HIGH1-LOW1)*0.191; J0:=HIGH1-(HIGH1-J1)/2; J2:=HIGH1-(HIGH1-LOW1)*0.382; J3:=HIGH1-(HIGH1-LOW1)*0.5; J4:=HIGH1-(HIGH1-LOW1)*0.618; J5:=HIGH1-(HIGH1-LOW1)*0.809; J6:=HIGH1-(HIGH1-LOW1)*1.191; JZ:=J0-(J0-LOW1)/2; HIGHB1:=REF(HHV(H,60),3); LOW2:=REF(LLV(L,60),3); HIGHB2:=IF(HIGHB1<=J4,J4,IF(HIGHB1<=J3,J3-(J3-J4)/2,IF(HIGHB1<=J2,J2-(J2-J3)/2,IF(HIGHB1<=J1,J1-(J1-J2)/2,IF(HIGHB1<=HIGH1 ,HIGH1-(HIGH1-J1)/2,NULL))))); HIGH2:=IF(HIGHB1=HIGHB2 AND C7&&AD,(HIGH + LOW + CLOSE)/3,NULL); CCI1:=(TYP-MA(TYP,6))/(0.015*AVEDEV(TYP,6)); CCI2:=(TYP-MA(TYP,10))/(0.015*AVEDEV(TYP,10)); CCI3:=(TYP-MA(TYP,20))/(0.015*AVEDEV(TYP,20)); CCI4:=(TYP-MA(TYP,30))/(0.015*AVEDEV(TYP,30)); CCI5:=(TYP-MA(TYP,60))/(0.015*AVEDEV(TYP,60)); CCI:=CCI1+CCI2+CCI3+CCI4+CCI5; AAAB:=IF(PERIOD>2&&AD,(3*C+H+L+O)/6,NULL); VVAR1:=(8*AAAB+7*REF(AAAB,1)+6*REF(AAAB,2)+5*REF(AAAB,3)+4*REF(AAAB,4)+3*REF(AAAB,5)+2*REF(AAAB,6)+REF(AAAB,8))/36; VVAR6:=(LLV(VVAR1,2)+LLV(VVAR1,4)+LLV(VVAR1,6))/3; 短线:=IF(X=1 , QZS,NULL),COLORCYAN,LINETHICK1; 强线:=IF( X=1 , VVAR1, NULL),COLORWHITE,LINETHICK1; 中线:=IF( X=1 ,VVAR6, NULL),COLORLIGHTGREEN,LINETHICK2; FILLRGN1(短线>强线 ,短线,强线),RGB(150,10,50); FILLRGN1( 短线<强线,短线,强线),RGB(10,100,10); //未来函数预测波段顶底,通用程序 DRAWTEXT(PERIOD>=8 AND ISLASTBAR<>1 AND TROUGHBARS(L,20,1,1)=0 AND CL<3,L-6*M*MINPRICE,'底'),COLORYELLOW,FONTSIZE26; DRAWTEXT(PERIOD>=8 AND ISLASTBAR<>1 AND PEAKBARS(H,20,1,1)=0 AND CL<3,H+6*M*MINPRICE,'顶'),COLORMAGENTA,FONTSIZE26; DDMS:=IF(PERIOD>=8 AND ISLASTBAR<>1 AND TROUGHBARS(L,20,1,1)=0,1,0); DMS:=IF(PERIOD>=8 AND ISLASTBAR<>1 AND PEAKBARS(H,20,1,1)=0,1,0); DTS:=IF(ISLASTBAR<>1 AND PEAKBARS(H,8,1,1)=0,1,0); JDTS:=IF(ISLASTBAR<>1 AND TROUGHBARS(L,8,1,1)=0,1,0),COLORWHITE; XZDZ:=IF((PERIOD<=13 AND ZIGZAG(C,3,1)>REF(ZIGZAG(C,3,1),1)) AND (REF(ZIGZAG(C,3,1),1)<=REF(ZIGZAG(C,3,1),2)) AND (REF(ZIGZAG(C,3,1),2)<=REF(ZIGZAG(C,3,1),3)) AND JDTS<>1,1,0); XZDD:=IF((PERIOD<=13 AND ZIGZAG(C,3,1)=REF(ZIGZAG(C,3,1),2)) AND REF(ZIGZAG(C,3,1),2)>=REF(ZIGZAG(C,3,1),3) AND DTS<>1,1,0); TY:=(CLOSE+HIGH+LOW)/3; CCIB:=(TY-MA(TY,14))/(0.015*AVEDEV(TY,14)); YY:=IF(BG<>0 AND CCIB<100 AND CCIB>0,1,0); DRAWTEXT(YY=1 AND XZDD<>1,H+3*M*MINPRICE,'●'); P:=2; MID:=MA(C,20); UPPER:= MID+P*STD(C,20); LOWER:= MID - P*STD(C,20); AT:=MA(C,20),COLORBLUE; 通道限宽:=(C-LOWER)/(UPPER-LOWER),COLORRED; 通道极限:=100*(C-AT)/STD(C,26),COLORWHITE; 通道趋势:=EMA(通道极限,3),COLORMAGENTA; DRAWTEXT(BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限>-100 AND XZDZ<>1,L-1*M*MINPRICE,'●'),COLORWHITE,VALIGN0; GLQD2:=IF(BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限>-100,1,0); DRAWTEXT(GLQD2<>1 AND BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限>-170 AND XZDZ<>1,L-2*M*MINPRICE,'●'),COLORMAGENTA,VALIGN0; XJ:=IF(BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限<-170,LLV(L,60),0); //DRAWTEXT(BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限<-170 AND JDTS<>1 AND L0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限<-170 AND L>=XJ AND JDTS<>1 AND XZDZ<>1,L-3*M*MINPRICE,'●'),COLORYELLOW,VALIGN0; XJGL:=IF(BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限<-170 AND L>=XJ AND JDTS<>1 AND XZDZ<>1,1,0); DRAWTEXT(((BD<>0 AND FDB0=1) OR (BD<>0 AND 极点保留=-1)) AND CCIB<0 AND CCIB>-100 AND 通道极限<0 AND 通道极限>-100 AND JDTS<>1 AND XJGL<>1 ,L-2*M*MINPRICE,'●'),COLORCYAN,VALIGN0; XX1:=IF(BD<>0 AND CCIB>0 OR 通道极限>0,1,NULL); DRAWTEXT(XX1=1 AND BD<>0,L-1*M*MINPRICE,'●'),VALIGN0; ZDG1:=REF(HHV(H,5),8) ,NODRAW; ZDG2:=REF(HHV(H,5),16) ,NODRAW; ZDG3:=REF(HHV(H,5),24) ,NODRAW; ZDG4:=REF(HHV(H,5),32) ,NODRAW; ZDG5:=REF(HHV(H,5),40) ,NODRAW; ZDG6:=REF(HHV(H,5),48) ,NODRAW; ZDG7:=REF(HHV(H,5),56) ,NODRAW; DPD:=IF(BG<>0 AND FGB0=1 AND H<=ZDG1 ,1,0); PD1:=IF(BG<>0 AND FGB0=1 AND H<=ZDG2,DPD+1,DPD); PD2:=IF(BG<>0 AND FGB0=1 AND H<=ZDG3,PD1+1,PD1); PD3:=IF(BG<>0 AND FGB0=1 AND H<=ZDG4,PD2+1,PD2); PD4:=IF(BG<>0 AND FGB0=1 AND H<=ZDG5,PD3+1,PD3); PD5:=IF(BG<>0 AND FGB0=1 AND H<=ZDG6,PD4+1,PD4); PD6:=IF(BG<>0 AND FGB0=1 AND H<=ZDG7,PD5+1,PD5); 背离次数:=PD6,NODRAW; GLQD:=IF(BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限<170,1,0); GLQD1:=IF(BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限>170 AND DTS<>1,1,0); DRAWTEXT(GLQD<>1 AND GLQD1<>1 AND YY<>1 AND ( PD6>=4) AND ((CCIB>100 AND 通道极限>170) OR (CCIB<100 AND 通道极限<170 )) ,H+2*M*MINPRICE,'起跌'),COLORGREEN; DRAWTEXT(BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限<170 AND XZDD<>1,H+2*M*MINPRICE,'超买跌'),COLORCYAN; DRAWTEXT(BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限>170 AND DTS<>1 AND XZDD<>1,H+2*M*MINPRICE,'超买跌'),COLORCYAN; CMGL:=IF(BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限<170 AND XZDD<>1,1,0); CMGL1:=IF(BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限>170 AND DTS<>1 AND XZDD<>1,1,0); DRAWTEXT(((BG<>0 AND FGB0=1) OR (FGB0=1 AND 极点保留=1) OR (BG<>0 AND 极点保留=1) OR FGB0=1) AND CCIB>100 AND 通道极限>100 AND DTS<>1 AND XZDD<>1 AND CMGL<>1 AND CMGL1<>1,H+1*M*MINPRICE,'●'),COLORCYAN; JS:=IF(ISLASTBAR=1,1,0); //价格上涨彩色K(趋势)多增红多减绿,通用程序 NNC:=BARSLAST(DATE<>REF(DATE,1))+1; 仓1:=OPI-REF(OPI,NNC); VARL:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN)); 成交:VOL,COLORMAGENTA,NODRAW; 持仓量:OPI,NODRAW; 主动买盘:=IF(CLOSE>OPEN,VARL*(HIGH-LOW),IF(CLOSEOPEN,VARL*((HIGH-CLOSE)+(OPEN-LOW)),IF(CLOSE170 ,L,'※'),COLORYELLOW,FONTSIZE16,VALIGN0; DRAWTEXT(ISLASTBAR=1 AND 通道极限<-170 ,H,'超卖'),COLORYELLOW,FONTSIZE16; DRAWKLINE1(H,O,L,C); PERIOD<>3&&CL<2||YY=1 AND XZDD<>1||BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限>-100 AND XZDZ<>1,SOUND('A'); GLQD2<>1 AND BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限>-170 AND XZDZ<>1||BD<>0 AND FDB0=1 AND 极点保留=-1 AND CCIB<-100 AND 通道极限<-170 AND L>=XJ AND JDTS<>1 AND XZDZ<>1,SOUND('A'); ((BD<>0 AND FDB0=1) OR (BD<>0 AND 极点保留=-1)) AND CCIB<0 AND CCIB>-100 AND 通道极限<0 AND 通道极限>-100 AND JDTS<>1 AND XJGL<>1||XX1=1 AND BD<>0,SOUND('A'); GLQD<>1 AND GLQD1<>1 AND YY<>1 AND ( PD6>=4) AND ((CCIB>100 AND 通道极限>170) OR (CCIB<100 AND 通道极限<170 )),SOUND('A'); BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限<170 AND XZDD<>1,SOUND('A'); BG<>0 AND FGB0=1 AND 极点保留=1 AND CCIB>100 AND 通道极限>170 AND DTS<>1 AND XZDD<>1,SOUND('A'); ((BG<>0 AND FGB0=1) OR (FGB0=1 AND 极点保留=1) OR (BG<>0 AND 极点保留=1) OR FGB0=1) AND CCIB>100 AND 通道极限>100 AND DTS<>1 AND XZDD<>1 AND CMGL<>1 AND CMGL1<>1,SOUND('A'); 通道极限>170||通道极限<-170,SOUND('A'); X_6:=LOWREF(LOW,1) AND HIGH>REF(HIGH,1);//2K高高形态 X_8:=LOW=REF(HIGH,1) AND REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,1)<=REF(HIGH,2) AND HIGHREF(HIGH,1) AND LOW<=REF(LOW,1) AND REF(HIGH,1)<=REF(HIGH,2) AND REF(LOW,1)>=REF(LOW,2) AND LOW>REF(LOW,2) AND COUNT(X_7,BARSLAST(X_6))=0;//低低形态+3K左包右、左最低 X_10:=HIGH=REF(HIGH,2) AND LOWREF(LOW,1) AND REF(HIGH,1)>=REF(HIGH,2) AND REF(LOW,1)<=REF(LOW,2) AND HIGH>REF(HIGH,2) AND COUNT(X_7,BARSLAST(X_6))=0;//低低形态+3K中包左右、中间最低 X_12:=X_6 OR X_8 OR X_10;//包含处理后低低形态 X_13:=X_7 OR X_9 OR X_11;//包含处理后高高形态 X_14:=X_13 AND COUNT(X_13,BARSLAST(X_12))=1;//低低+高高=底分型(第3元素完成) X_15:=X_12 AND COUNT(X_12,BARSLAST(X_13))=1;//高高+低低=顶分型(第3元素完成) X_16:=IF(X_14,LLV(LOW,1+BARSLAST(X_15)),0);//底分型第三元素 X_17:=IF(X_16,X_16,REF(X_16,BARSLAST(X_16)));//下一个最低点形成前,一直最低 X_18:=IF(X_15,HHV(HIGH,1+BARSLAST(X_14)),0);//顶分型第三元素 X_19:=IF(X_18,X_18,REF(X_18,BARSLAST(X_18)));//下一个最高点形成前,一直最高 //以上源码实现顶底分型识别 X_20:=HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1);//右包含左 X_21:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,1);//左包含右 X_22:=X_20 OR X_21;//2K包含 X_23:=HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1) AND REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,1)<=REF(HIGH,2) AND HIGH>=REF(HIGH,2);//左右包含中间 X_24:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,1) AND REF(HIGH,1)>=REF(HIGH,2) AND REF(LOW,1)<=REF(LOW,2) AND LOW<=REF(LOW,2);//中间包含左右 X_25:=X_23 OR X_24 AND (COUNT(X_15,BARSLAST(X_14))=0 OR X_15);//包含处理后底分型延续?? X_26:=HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1) AND REF(HIGH,1)<=REF(HIGH,2) AND REF(LOW,1)>=REF(LOW,2) AND LOW>=REF(LOW,2);//左右包含中间 X_27:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,2) AND REF(LOW,1)<=REF(LOW,2) AND REF(HIGH,1)>=REF(HIGH,2) AND HIGH>=REF(HIGH,2);//中间包含左右 X_28:=X_26 OR X_27 AND (COUNT(X_14,BARSLAST(X_15))=0 OR X_14);//包含处理后顶分型延续 X_29:=X_25 OR X_28;//顶底分型延续 X_30:=BARSLAST(X_17<>REF(X_17,1))-COUNT(X_22,BARSLAST(X_17<>REF(X_17,1)))+COUNT(X_29,BARSLAST(X_17<>REF(X_17,1)))>2 AND HIGH=HHV(HIGH,1+BARSLAST(X_17<>REF(X_17,1))) AND COUNT(LOWREF(X_17,1))),BARSLAST(X_17<>REF(X_17,1)))=0 AND BARSLAST(X_17<>REF(X_17,1))>0; X_31:=SUMBARS(X_17<>REF(X_17,1),2)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),2))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),2))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),2)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),2)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),2)); X_32:=SUMBARS(X_17<>REF(X_17,1),3)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),3))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),3))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),3)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),3)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),3)); X_33:=SUMBARS(X_17<>REF(X_17,1),4)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),4))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),4))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),4)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),4)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),4)); X_34:=SUMBARS(X_17<>REF(X_17,1),5)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),5))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),5))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),5)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),5)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),5)); X_35:=SUMBARS(X_17<>REF(X_17,1),6)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),6))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),6))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),6)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),6)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),6)); X_36:=BARSLAST(X_19<>REF(X_19,1))-COUNT(X_22,BARSLAST(X_19<>REF(X_19,1)))+COUNT(X_29,BARSLAST(X_19<>REF(X_19,1)))>2 AND COUNT(HIGH>REF(X_19,BARSLAST(X_19<>REF(X_19,1))),BARSLAST(X_19<>REF(X_19,1)))=0 AND LOW=LLV(LOW,BARSLAST(X_19<>REF(X_19,1))) AND BARSLAST(X_19<>REF(X_19,1))>0; X_37:=SUMBARS(X_19<>REF(X_19,1),2)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),2))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),2))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),2)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),2)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),2)); X_38:=SUMBARS(X_19<>REF(X_19,1),3)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),3))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),3))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),3)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),3)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),3)); X_39:=SUMBARS(X_19<>REF(X_19,1),4)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),4))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),4))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),4)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),4)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),4)); X_40:=SUMBARS(X_19<>REF(X_19,1),5)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),5))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),5))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),5)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),5)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),5)); X_41:=SUMBARS(X_19<>REF(X_19,1),6)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),6))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),6))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),6)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),6)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),6)); X_42:=X_30 OR X_31 OR X_32 OR X_33 OR X_34 OR X_35; X_43:=X_36 OR X_37 OR X_38 OR X_39 OR X_40 OR X_41; X_44:=X_42 AND COUNT(X_42,1+BARSLAST(X_43))=1; X_45:=X_43 AND COUNT(X_43,1+BARSLAST(X_42))=1; X_46:=IF(X_44,LLV(LOW,1+BARSLAST(X_45)),0); X_47:=IF(X_46,X_46,REF(X_46,BARSLAST(X_46))); X_48:=IF(X_45,HHV(HIGH,1+BARSLAST(X_44)),0); X_49:=IF(X_48,X_48,REF(X_48,BARSLAST(X_48))); X_50:=HHV(HIGH,1+BARSLAST(X_46))=HIGH; X_51:=LLV(LOW,1+BARSLAST(X_48))=LOW; X_52:=CROSS(BACKSET(X_51||BARSLAST(X_50)BARSLAST(X_51)&&ISLASTBAR,BARSLAST(X_51)+1)=1,0.5);// FILTERX(X_51,BARSLAST(X_50)); X_54:=IF(X_53,LOW,0); X_55:=IF(X_52,HIGH,0); X_56:=IF(X_54>0,X_54,REF(X_54,BARSLAST(X_54>0))); X_57:=IF(X_55>0,X_55,REF(X_55,BARSLAST(X_55>0))); X_58:=BARSLAST(X_53)-COUNT(X_22,BARSLAST(X_53))+COUNT(X_29,BARSLAST(X_53))>3 AND COUNT(LOW0; X_59:=BARSLAST(X_52)-COUNT(X_22,BARSLAST(X_52))+COUNT(X_29,BARSLAST(X_52))>3 AND COUNT(HIGH>REF(X_57,BARSLAST(X_52)),BARSLAST(X_52))=0 AND LOW=LLV(LOW,BARSLAST(X_52)) AND BARSLAST(X_52)>0; X_60:=CROSS(BACKSET(X_59||ISLASTBAR&&BARSLAST(X_58)BARSLAST(X_59),BARSLAST(X_59)+1)=1,0.5);// FILTERX(X_59,BARSLAST(X_58)); X_62:=IF(X_61,LOW,0); X_63:=IF(X_60,HIGH,0); X_64:=IF(X_62>0,X_62,REF(X_62,BARSLAST(X_62>0))); X_65:=IF(X_63>0,X_63,REF(X_63,BARSLAST(X_63>0))); X_66:=LLV(LOW,1+BARSLAST(X_64<>REF(X_64,1) OR (X_62>0 AND X_64=REF(X_64,1))))=LOW AND COUNT(X_65<>REF(X_65,1),BARSLAST(X_64<>REF(X_64,1) OR (X_62>0 AND X_64=REF(X_64,1)))+1)=0; X_67:=HHV(HIGH,1+BARSLAST(X_65<>REF(X_65,1) OR (X_63>0 AND X_65=REF(X_65,1))))=HIGH AND COUNT(X_64<>REF(X_64,1),BARSLAST(X_65<>REF(X_65,1) OR (X_63>0 AND X_65=REF(X_65,1)))+1)=0;//1 X_68:=CROSS(BACKSET(X_66||ISLASTBAR&&BARSLAST(X_67)BARSLAST(X_66),BARSLAST(X_66)+1)=1,0.5);// FILTERX(X_66,BARSLAST(X_67)); X_70:=IF(X_69,LOW,0),NODRAW; X_71:=IF(X_68,HIGH,0),NODRAW; //精准笔 DRAWSL(REFX(X_68,1),L,0,15,0,RGB(255,255,255)),LINETHICK3; DRAWSL(REFX(X_69,1),H,0,15,0,RGB(128,0,255)),LINETHICK3; //DRAWICON(X_68,H,5); //DRAWICON(X_69,L,4),VALIGN0; DRAWTEXT(X_68,H,'▼F'),RGB(255,255,255),VALIGN0; DRAWTEXT(X_69,L,'▲F'),RGB(255,255,255); KK16:=ISDOWN&&CVALUEWHEN(X_69,REF(H,1))&&COUNT(ISUP&&C>VALUEWHEN(X_69,REF(H,1)),BARSLAST(X_69))=1; DRAWTEXT(KK16,H,'F▼'),RGB(255,255,255),FONTSIZE20; DRAWTEXT(DD,L,'F▲'),RGB(255,255,255),VALIGN0,FONTSIZE20; KK16,SOUND('A'); DD,SOUND('A'); DRAWCOLORKLINE(BARSLAST(KK16)BARSLAST(DD)&&ISDOWN&&NOT(ISLASTBAR),RGB(255,0,0),0); DRAWCOLORKLINE(BARSLAST(KK16)>BARSLAST(DD)&&ISDOWN=0&&NOT(ISLASTBAR),COLORRED,0); DRAWCOLORKLINE(CROSS(BARSLAST(KK16)BARSLAST(DD),0.5)&&NOT(ISLASTBAR),COLORBLUE,0); DRAWCOLORKLINE(CROSS(BARSLAST(KK16)REF(BOLL_TOP,1); SG_XX:=BOLL_TOPREF(BOLL_BOTTOM,1); XG_XX:=BOLL_BOTTOMBOLL_TOP; JG_XG:=CLOSEBOLL_MID; MA5:=EMA(CLOSE,5); MA10:=EMA(CLOSE,10); MA20:=EMA(CLOSE,20); // 量能系统 VOL5:=MA(VOL,5); VL_RT:=VOL/REF(VOL5,1); // RSI指标 LC1:=REF(CLOSE,1); RSI_UP1:=SMA(MAX(CLOSE-LC1,0),6,1); RSI_DN1:=SMA(ABS(CLOSE-LC1),6,1); RSI_V:=RSI_UP1/RSI_DN1*100; // 1. 上轨区域信号 SG_DUO:=SG_SX AND JG_SG AND MA5>MA10 AND VL_RT>1.0 AND RSI_V<80; SG_KONG:=SG_XX AND NOT(JG_SG) AND MA50.8 AND RSI_V>20; // 2. 中轨区域信号 ZG_DUO:=ABS(CLOSE-BOLL_MID)/BOLL_MID<0.005 AND CROSS(CLOSE,BOLL_MID) AND MA5>MA10 AND VL_RT>1.2; ZG_KONG:=ABS(CLOSE-BOLL_MID)/BOLL_MID<0.005 AND CROSS(BOLL_MID,CLOSE) AND MA51.2; // 3. 下轨区域信号 XG_DUO:=XG_SX AND NOT(JG_XG) AND MA5>REF(MA5,1) AND VL_RT>1.5 AND RSI_V<30; XG_KONG:=XG_XX AND JG_XG AND MA50.8 AND RSI_V>70; // 上轨信号显示 DRAWTEXT(NN&&CROSSUP(SG_DUO,0.5),BOLL_TOP*1.0,'上轨▲'),RGB(255,255,0), FONTSIZE20; DRAWTEXT(NN&&CROSSUP(SG_KONG,0.5),BOLL_TOP*1.01,'上轨▼'),RGB(255,255,255), FONTSIZE20; // 中轨信号显示 DRAWTEXT(NN&&CROSSUP(ZG_DUO,0.5),BOLL_MID*1.00,'中轨▲'),RGB(255,255,0), FONTSIZE20; DRAWTEXT(NN&&CROSSUP(ZG_KONG,0.5),BOLL_MID*1.00,'中轨▼'),RGB(255,255,255), FONTSIZE20; // 下轨信号显示 DRAWTEXT(NN&&CROSSUP(XG_DUO,0.5),BOLL_BOTTOM*0.9990,'下轨▲'),COLORRED; DRAWTEXT(NN&&CROSSUP(XG_KONG,0.5),BOLL_BOTTOM*1,'下轨▼'),COLORGREEN; // 显示当前参数 DRAWTEXT(ISLASTBAR,BOLL_MID*0.98,'周期:20'),COLORGRAY; DRAWTEXT(ISLASTBAR,BOLL_MID*1.02,'宽度:2.0'),COLORGRAY; // 轨道宽度预警 GDKD:=(BOLL_TOP-BOLL_BOTTOM)/BOLL_MID*100; DRAWTEXT(NN&&CROSSUP(GDKD>KZ,0.5),BOLL_TOP*1,'宽幅'),COLORMAGENTA; DRAWTEXT(NN&&CROSSUP(GDKD1 AND MA5>MA10 AND MA10>MA20; QS_XX:=QSQD<-1 AND MA580 AND JG_SG; CM:=RSI_V<20 AND JG_XG; DRAWTEXT(NN&&CROSSUP(CB,0.5),BOLL_TOP*1,'超买▲'),RGB(255,255,0), FONTSIZE20; DRAWTEXT(NN&&CROSSUP(CM,0.5),BOLL_BOTTOM*1,'超卖▼'),RGB(255,255,255), FONTSIZE20; // 绘制K线 DRAWKLINE1(H,O,L,C); // 均线显示 MA5,COLORWHITE,LINETHICK2,NODRAW; MA10,COLORYELLOW,LINETHICK2,NODRAW; MA20,COLORCYAN,LINETHICK2,NODRAW; // 当前价格标签 SG_DUO_CNT:=COUNT(SG_DUO,20),NODRAW; SG_KONG_CNT:=COUNT(SG_KONG,20),NODRAW; ZG_DUO_CNT:=COUNT(ZG_DUO,20),NODRAW; ZG_KONG_CNT:=COUNT(ZG_KONG,20),NODRAW; XG_DUO_CNT:=COUNT(XG_DUO,20),NODRAW; XG_KONG_CNT:=COUNT(XG_KONG,20),NODRAW; SCORE:=(SG_DUO*3+ZG_DUO*2+XG_DUO*1)-(SG_KONG*3+ZG_KONG*2+XG_KONG*1); // 颜色根据评分变化 SC_COL:=IF(SCORE>5,COLORRED,IF(SCORE<-5,COLORGREEN,COLORYELLOW)); // 简化高低点识别 JD_GD:=H=HHV(H,10); JD_DD:=L=LLV(L,10); DRAWTEXT(NN&&CROSSUP(JD_GD AND COUNT(JD_GD,5)=1,0.5),H*1.02,'高'),COLORWHITE; DRAWTEXT(NN&&CROSSUP(JD_DD AND COUNT(JD_DD,5)=1,0.5),L*0.98,'低'),COLORYELLOW; DRAWSHIFTNUMBER(ISLASTBAR,C,SCORE,0,COLORYELLOW,1,4),FONTSIZE22; 分数:REFX1(VALUEWHEN(ISLASTBAR,SCORE),10000000),NODRAW; DRAWSHIFTNUMBER(ISLASTBAR,C,SCORE,0,COLORYELLOW,1,4),FONTSIZE22; DRAWLASTBARLINE(1,BOLL_BOTTOM,0,1,BOLL_BOTTOM,-3,0),RGB(128,0,255),LINETHICK3; KTEXT(ISLASTBAR,0,BOLL_BOTTOM,2,RGB(255,255,255),' 21下轨'); DRAWSHIFTNUMBER(ISLASTBAR,BOLL_BOTTOM,BOLL_BOTTOM,0,RGB(255,0,255),1,1); DRAWLASTBARLINE(1,BOLL_TOP,0,1,BOLL_TOP,-3,0),RGB(128,0,255),LINETHICK3; KTEXT(ISLASTBAR,0,BOLL_TOP,2,RGB(255,255,255),' 21上轨'); DRAWSHIFTNUMBER(ISLASTBAR,BOLL_TOP,BOLL_TOP,0,RGB(255,0,255),1,1); DRAWLASTBARLINE(1,BOLL_MID,0,1,BOLL_MID,-3,0),RGB(128,0,255),LINETHICK3; KTEXT(ISLASTBAR,0,BOLL_MID,2,RGB(255,255,255),' 21 中轨'); DRAWSHIFTNUMBER(ISLASTBAR,BOLL_MID,BOLL_MID,0,RGB(255,0,255),1,1); DRAWSL(ISLASTBAR,BOLL_MID,BOLL_MID-REF(BOLL_MID,1),5,0,RGB(255,255,255)),LINETHICK1,DOT; DRAWSL(ISLASTBAR,BOLL_TOP,BOLL_TOP-REF(BOLL_TOP,1),5,0,RGB(255,255,255)),LINETHICK1,DOT; DRAWSL(ISLASTBAR,BOLL_BOTTOM,BOLL_BOTTOM-REF(BOLL_BOTTOM,1),5,0 ,RGB(255,255,255)),LINETHICK1,DOT; SETTLE,LINETHICK4,RGB(128,0,255) ,NODRAW; KTEXT(ISLASTBAR,0,SETTLE,2,RGB(255,255,255),' SP'),FONTSIZE18,RGB(255,255,0); DRAWLASTBARLINE(1,SETTLE,0,1,SETTLE,-10,0),RGB(255,255,255),LINETHICK2; DRAWLASTBARNUMBER(SETTLE,SETTLE,0,RGB(128,0,255)),ALIGN0; DRAWLASTBARNUMBER(SETTLE,SETTLE,0,COLORYELLOW),ALIGN0; EMA35:EMA(C,35),COLORMAGENTA,DOT,NODRAW; FILLRGN(MA5>MA10,MA5,MA10,COLORMAGENTA); FILLRGN(MA50, CURRENT_VOL/PRE_VOL, 0); // 成交量变化率 VOL_AMPLIFY:=VOL_CHANGE_RATE>=VOL_MUL; // 放量信号 VOL_REDUCE:=VOL_CHANGE_RATE<=REDUCE_RATIO; // 缩量信号 VOL_NORMAL:=VOL_CHANGE_RATE>REDUCE_RATIO AND VOL_CHANGE_RATE0, CURRENT_OPI/PRE_OPI, 0); // 持仓量变化率 OPI_INCREASE:=OPI_CHANGE>0; // 增仓信号 OPI_DECREASE:=OPI_CHANGE<0; // 减仓信号 OPI_FLAT:=ABS(OPI_CHANGE_RATE-1)<0.01; // 持仓量基本不变 // 3. 价格变化 PRICE_CHANGE:=CURRENT_CLOSE-PRE_CLOSE; // 价格变化 PRICE_CHANGE_RATE:=IF(PRE_CLOSE>0, PRICE_CHANGE/PRE_CLOSE, 0); // 价格变化率 PRICE_UP:=PRICE_CHANGE>0; // 价格上涨 PRICE_DOWN:=PRICE_CHANGE<0; // 价格下跌 PRICE_FLAT:=ABS(PRICE_CHANGE_RATE)<0.001; // 价格基本持平 // 4. 成交额估算 EST_AMOUNT:=CURRENT_VOL*CURRENT_CLOSE; // 估算成交额 PRE_AMOUNT:=PRE_VOL*PRE_CLOSE; AMOUNT_CHANGE_RATE:=IF(PRE_AMOUNT>0, EST_AMOUNT/PRE_AMOUNT, 0); // ========== 信号组合分析 ========== // 1. 主力资金流入信号 MAIN_CAPITAL_IN:=VOL_AMPLIFY AND OPI_INCREASE AND PRICE_UP; // 放量增仓上涨 STRONG_MAIN_IN:=MAIN_CAPITAL_IN AND VOL_CHANGE_RATE>=2.0; // 强势流入 // 2. 主力资金流出信号 MAIN_CAPITAL_OUT:=VOL_AMPLIFY AND OPI_DECREASE AND PRICE_DOWN; // 放量减仓下跌 STRONG_MAIN_OUT:=MAIN_CAPITAL_OUT AND VOL_CHANGE_RATE>=2.0; // 强势流出 // 3. 多空分歧信号 DIVERGENCE_SIGNAL:=VOL_AMPLIFY AND PRICE_FLAT; // 放量滞涨 STRONG_DIVERGENCE:=DIVERGENCE_SIGNAL AND VOL_CHANGE_RATE>=2.5; // 强烈分歧 // 4. 缩量调整信号 HEALTHY_ADJUST:=VOL_REDUCE AND PRICE_DOWN AND OPI_INCREASE; // 缩量下跌增仓 HEALTHY_ADJUST2:=VOL_REDUCE AND PRICE_UP AND OPI_INCREASE; // 缩量上涨增仓 // 5. 可疑信号 SUSPICIOUS_SIGNAL:=VOL_REDUCE AND OPI_DECREASE AND PRICE_UP; // 缩量减仓上涨 DANGER_SIGNAL:=VOL_REDUCE AND OPI_DECREASE AND PRICE_DOWN; // 缩量减仓下跌 // 6. 突破信号 BREAK_HIGH:=CURRENT_HIGH>REF(HHV(H,20),1) AND VOL_AMPLIFY; // 放量突破前高 BREAK_LOW:=CURRENT_LOW=3.0; // 巨量信号 ULTRA_LOW_VOL:=VOL_CHANGE_RATE<=0.3; // 极低成交量 // ========== 可视化信号标记 ========== // 在K线实体上做标记 // 1. 在K线最高价上方标记信号 NN12:=BACKSET(ISLASTBAR,6); DRAWICON(MAIN_CAPITAL_IN&&NN12, H*1.002, 1), COLORRED; // 红三角-主力流入 DRAWICON(MAIN_CAPITAL_OUT&&NN12, H*1.002, 2), COLORGREEN; // 绿三角-主力流出 DRAWICON(DIVERGENCE_SIGNAL&&NN12, H*1.002, 3), COLORYELLOW; // 黄圈-多空分歧 DRAWICON(HEALTHY_ADJUST&&NN12, H*1.002, 4), COLORBLUE; // 蓝方-健康调整 DRAWICON(SUSPICIOUS_SIGNAL&&NN12, H*1.002, 5), COLORGRAY; // 灰钻-可疑信号 DRAWICON(DANGER_SIGNAL&&NN12, H*1.002, 6), COLORBLACK; // 黑星-危险信号 DRAWICON(BREAK_HIGH&&NN12, H*1.002, 7), COLORMAGENTA; // 紫上箭头-突破前高 DRAWICON(BREAK_LOW&&NN12, H*1.002, 8), COLORCYAN; // 青下箭头-跌破前低 DRAWICON(ABNORMAL_VOL&&NN12, H*1.002, 9), COLORCYAN; // 亮青叹号-巨量 DRAWICON(ULTRA_LOW_VOL&&NN12, H*1.002, 10), COLORGRAY; // 亮灰叉-极低量 // 2. 在K线最低价下方显示文字标签 DRAWTEXT(MAIN_CAPITAL_IN&&NN12, L*1, '主力进'),RGB(255,255,0); DRAWTEXT(MAIN_CAPITAL_OUT&&NN12, L*1, '主力出'),RGB(255,255,255); DRAWTEXT(DIVERGENCE_SIGNAL&&NN12, L*0.998, '分歧'), COLORYELLOW; DRAWTEXT(HEALTHY_ADJUST&&NN12, L*0.998, '健康调'), COLORBLUE; DRAWTEXT(SUSPICIOUS_SIGNAL&&NN12, L*0.998, '可疑'), COLORGRAY; DRAWTEXT(DANGER_SIGNAL&&NN12, L*0.998, '危险'), COLORBLACK; DRAWTEXT(BREAK_HIGH&&NN12, L*0.998, '突高'), COLORMAGENTA; DRAWTEXT(BREAK_LOW&&NN12, L*0.998, '破低'), COLORCYAN; DRAWTEXT(ABNORMAL_VOL&&NN12, L*0.998, '巨量'), COLORCYAN; DRAWTEXT(ULTRA_LOW_VOL&&NN12, L*0.998, '地量'), COLORGRAY; // 3. 在K线实体上绘制彩色边框 STICKLINE(MAIN_CAPITAL_IN&&NN12, O, C, 0.1, 0), COLORRED; // 红色边框 STICKLINE(MAIN_CAPITAL_OUT&&NN12, O, C, 0.1, 0), COLORGREEN; // 绿色边框 STICKLINE(STRONG_MAIN_IN&&NN12, O, C, 0.2, 0), COLORRED; // 粗红边框-强势流入 STICKLINE(STRONG_MAIN_OUT&&NN12, O, C, 0.2, 0), COLORGREEN; // 粗绿边框-强势流出 STICKLINE(STRONG_DIVERGENCE&&NN12, O, C, 0.15, 0), COLORYELLOW;// 粗黄边框-强烈分歧 // 4. 在K线实体内部填充颜色 STICKLINE(VOL_AMPLIFY AND OPI_INCREASE&&NN12, O, C, 3, 1), COLORRED; // 放量增仓-红色填充 STICKLINE(VOL_AMPLIFY AND OPI_DECREASE&&NN12, O, C, 3, 1), COLORGREEN; // 放量减仓-绿色填充 STICKLINE(VOL_REDUCE AND OPI_INCREASE&&NN12, O, C, 3, 1), COLORBLUE; // 缩量增仓-蓝色填充 STICKLINE(VOL_REDUCE AND OPI_DECREASE&&NN12, O, C, 3, 1), COLORGRAY; // 缩量减仓-灰色填充 // 5. 绘制成交量和持仓量变化趋势线 // 成交量变化趋势(在K线下方绘制) VOL_TREND_LINE:VOL_CHANGE_RATE*10, NODRAW; //DRAWLINE1(BARPOS=1, VOL_CHANGE_RATE*10, REF(VOL_CHANGE_RATE*10,1), 1, 0), COLORRED, LINETHICK1; // 持仓量变化趋势 OPI_TREND_LINE:OPI_CHANGE_RATE*10, NODRAW; //DRAWLINE1(BARPOS=1, OPI_CHANGE_RATE*10, REF(OPI_CHANGE_RATE*10,1), 1, 0), COLORGREEN, LINETHICK1; // 6. 在K线图上绘制数值标签 // 成交量变化率标签 DRAWNUMBER1(VOL_AMPLIFY&&NN12, H*1.01, VOL_CHANGE_RATE, 2), COLORRED; DRAWNUMBER1(VOL_REDUCE&&NN12, H*1.01, VOL_CHANGE_RATE, 2), COLORGREEN; DRAWNUMBER1(VOL_NORMAL&&NN12, H*1.01, VOL_CHANGE_RATE, 2), COLORWHITE; // 持仓量变化标签 DRAWNUMBER1(OPI_INCREASE AND OPI_CHANGE_RATE>1.05&&NN12, L*0.99, OPI_CHANGE_RATE, 2), COLORRED; DRAWNUMBER1(OPI_DECREASE AND OPI_CHANGE_RATE<0.95&&NN12, L*0.99, OPI_CHANGE_RATE, 2), COLORGREEN; // ========== 信息汇总面板 ========== // 在K线图固定位置显示统计信息 // 右上角信号统计 SIGNAL_COUNT_MAIN_IN:=COUNT(MAIN_CAPITAL_IN, 20); SIGNAL_COUNT_MAIN_OUT:=COUNT(MAIN_CAPITAL_OUT, 20); SIGNAL_COUNT_DIVERGE:=COUNT(DIVERGENCE_SIGNAL, 20); // ========== 辅助线绘制 ========== // 1. 绘制成交量均线 VOL_MA5:=MA(VOL,5); VOL_MA20:=MA(VOL,20); DRAWLINE1(BARPOS=1, VOL_MA5, REF(VOL_MA5,1), 1, 0), COLORYELLOW, LINETHICK1; DRAWLINE1(BARPOS=1, VOL_MA20, REF(VOL_MA20,1), 1, 0), COLORMAGENTA, LINETHICK1; // 2. 绘制持仓量均线 OPI_MA5:=MA(OPI,5); OPI_MA20:=MA(OPI,20); DRAWLINE1(BARPOS=1, OPI_MA5, REF(OPI_MA5,1), 1, 0), COLORCYAN, LINETHICK1; DRAWLINE1(BARPOS=1, OPI_MA20, REF(OPI_MA20,1), 1, 0), COLORGRAY, LINETHICK1; // ========== 自定义函数:绘制箭头 ========== // 3. 绘制价格关键位 DRAWSL(ISLASTBAR, REF(H,1), 0, -10000, 0,RGB(128,0,255)); // 20周期高点 DRAWSL(ISLASTBAR, REF(L,1),0, -10000, 0,RGB(128,0,255)); // 20周期低点 // 上涨箭头 DRAWICON(PRICE_UP AND VOL_AMPLIFY&&NN12, L, 4); // 下跌箭头 DRAWICON(PRICE_DOWN AND VOL_AMPLIFY&&NN12, H, 5); // 重要位置箭头 DRAWICON(BREAK_HIGH&&NN12, L, 4); DRAWICON(BREAK_LOW&&NN12, H, 5); // ========== 返回K线颜色设置 ========== // 根据信号设置K线颜色 DRAWCOLORKLINE(MAIN_CAPITAL_IN&&NN12,RGB(255,0,0),0); DRAWCOLORKLINE(MAIN_CAPITAL_OUT&&NN12,RGB(0,255,255),0); // 参数设置 NI:=5; // 手动修改需要调整的K线数值 NN16 := BACKSET(ISLASTBAR, 10); // 期货成交量优化(主力合约处理) VOL_ADJ := IF(REF(OPI,1)=0, VOL, VOL*OPI/REF(OPI,1)); REF_VOL := REF(VOL_ADJ, 1); // 上根K线成交量 MA_VOL := MA(VOL, 5); // 5日均量 // 关键价格定义(仅参考前一K线) 上根最高价 := REF(HIGH, 1); 上根最低价 := REF(LOW, 1); REF_OPI := REF(OPI, 1); // 上根K线持仓量 // 新增:倒数第2根K线的最高最低价 倒数第2根最高价 := REF(HIGH, 2); 倒数第2根最低价 := REF(LOW, 2); // 当前K线突破判断 ------------------------------------------------- // 阳线突破前高 真突破条件 := CLOSE > OPEN // 当前阳线 AND CLOSE > 上根最高价 // 收盘突破前高 AND VOL_ADJ > REF_VOL * 0.8 // 量能不小于上根的80% AND (OPI >= REF_OPI OR REF_OPI = 0); // 持仓不减少 // 阴线突破前低 真跌破条件 := CLOSE < OPEN // 当前阴线 AND CLOSE < 上根最低价 // 收盘跌破前低 AND VOL_ADJ > REF_VOL * 0.8 // 量能不小于上根的80% AND (OPI >= REF_OPI OR REF_OPI = 0); // 持仓不减少 // 假突破模式(更严格定义)----------------------------------------------------- // 假突破:上影线长,收盘回落到前高下方 假突破条件 := HIGH > 上根最高价 // 盘中突破前高 AND CLOSE < 上根最高价 // 收盘回落到前高之下 AND (CLOSE < OPEN OR (HIGH-CLOSE) > (CLOSE-LOW)) // 上影线长于下影线 AND VOL_ADJ > REF_VOL * 1.3 // 明显放量 AND VOL_ADJ > MA_VOL * 1.2; // 量能大于5日均量 // 假跌破:下影线长,收盘拉回前低上方 假跌破条件 := LOW < 上根最低价 // 盘中跌破前低 AND CLOSE > 上根最低价 // 收盘拉回前低之上 AND (CLOSE > OPEN OR (CLOSE-LOW) > (HIGH-CLOSE)) // 下影线长于上影线 AND VOL_ADJ > REF_VOL * 1.3 // 明显放量 AND VOL_ADJ > MA_VOL * 1.2; // 量能大于5日均量 // 信号确认逻辑(增加过滤,避免矛盾) ---------------------------------------------------- // 下根K线开仓条件(避免在反转信号出现时开仓) 下根K开多条件 := REF(真突破条件, 1) AND NOT(真跌破条件) AND NOT(假跌破条件); 下根K开空条件 := REF(真跌破条件, 1) AND NOT(真突破条件) AND NOT(假突破条件); // 信号可视化系统 -------------------------------------------------- // 1. 真突破/真跌破标记 DRAWTEXT(NN16 AND 真突破条件, LOW*0.998, '▲', COLORRED), VALIGN2; DRAWTEXT(NN16 AND 真跌破条件, HIGH*1.002, '▼', COLORGREEN), VALIGN0; // 2. 假突破/假跌破标记 DRAWTEXT(NN16 AND 假突破条件, HIGH*1.002, '▽假', COLORMAGENTA), VALIGN0, FONTSIZE25; DRAWTEXT(NN16 AND 假跌破条件, LOW*0.998, '△假', COLORBLUE), VALIGN2, FONTSIZE25; // 3. 开仓信号标记(增加优先级标记,避免与当前信号矛盾) DRAWICON(NN16 AND 下根K开多条件, OPEN, 1), COLORRED; // 图标1表示买入 DRAWICON(NN16 AND 下根K开空条件, OPEN, 2), COLORGREEN; // 图标2表示卖出 DRAWTEXT(NN16 AND 下根K开多条件, LOW*0.9960, '开多', COLORRED), VALIGN2, FONTSIZE25; DRAWTEXT(NN16 AND 下根K开空条件, HIGH*1.0005, '开空', COLORGREEN), VALIGN0, FONTSIZE25; // 4. 信号强度显示 DRAWTEXT(NN16 AND 真突破条件, (HIGH+LOW)/2, '▲强', COLORRED), VALIGN1, FONTSIZE25; DRAWTEXT(NN16 AND 真跌破条件, (HIGH+LOW)/2, '▼强',RGB(128,0,255)), VALIGN1, FONTSIZE25,RGB(128,0,255); DRAWTEXT(NN16 AND 假突破条件, (HIGH+LOW)/2, '▼假',RGB(0,128,255)), VALIGN1, FONTSIZE25,RGB(0,128,255); DRAWTEXT(NN16 AND 假跌破条件, (HIGH+LOW)/2, '▲假', COLORBLUE), VALIGN1, FONTSIZE25; // 5. 如果同时有开仓信号和反向信号,显示警告 冲突开多 := 下根K开多条件 AND (真跌破条件 OR 假跌破条件); 冲突开空 := 下根K开空条件 AND (真突破条件 OR 假突破条件); DRAWTEXT(NN16 AND 冲突开多, HIGH*1, '?矛盾', COLORYELLOW), VALIGN0, FONTSIZE25; DRAWTEXT(NN16 AND 冲突开空, LOW*1, '?矛盾', COLORYELLOW), VALIGN2, FONTSIZE25; // 关键价位线 IF(NN16, 上根最高价, NULL), COLORRED, LINETHICK1,NODRAW; IF(NN16, 上根最低价, NULL), COLORGREEN, LINETHICK1,NODRAW; // 6. K线颜色标记 STICKLINE(真突破条件 AND NN16, OPEN, CLOSE, 3, 0), COLORRED; STICKLINE(真跌破条件 AND NN16, OPEN, CLOSE, 3, 0), COLORGREEN; STICKLINE(假突破条件 AND NN16, OPEN, CLOSE, 3, 0), COLORMAGENTA; STICKLINE(假跌破条件 AND NN16, OPEN, CLOSE, 3, 0), COLORBLUE;

作者 admin

九稳量化交易系统 是一套高胜率策略趋势跟踪系统,系统最大优势就是开仓位置精确,信号不漂移 不延迟 同步行情信号 拒绝马后面!www.gao998.cn 微信 fxfx668998

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注