参考:
//缠论高低点确认
G:=MA(C,5);
D:=EMA2(C,5);
//求上一个满足7个周期高低点
NNH:=BARSLAST(H=HHV(H,10)) ,NODRAW,NOTEXT;
NNL:=BARSLAST(L=LLV(L,10)) ,NODRAW,NOTEXT;
NN:=IF(REF(G,NNH)>REF(D,NNH) AND NNH<=4,NNH,IF(REF(G,NNL)<REF(D,NNL) AND NNL<=4,NNL,5)) ,NODRAW,NOTEXT;
N:=IF(ISLASTBAR AND NN>0,NN,5),NODRAW,NOTEXT;
HH:=REF(H,N)=HHV(H,6);
LL:=REF(L,N)=LLV(L,6);
FG01:BACKSET(HH,N+1)>BACKSET(HH,N),NODRAW,NOTEXT;//只设置前面第6个
FD01:BACKSET(LL,N+1)>BACKSET(LL,N) ,NODRAW,NOTEXT;
FG02:=FG01=FD01 AND G>D,NODRAW,NOTEXT;
FD02:FG01=FD01 AND G<D,NODRAW,NOTEXT;
TTTT:BARSLAST(FD01),NODRAW,NOTEXT;
FG0:=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,NOTEXT;
FD0:=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,NOTEXT;
//高低点间周期
GT:BARSLAST(FG0),NODRAW,NOTEXT;
DT:BARSLAST(FD0),NODRAW,NOTEXT;
//第一次处理高低点间多余的点
LLLL:DT=0 AND REF(DT,1)<GT AND L>REF(L,REF(DT,1)+1),NODRAW,NOTEXT;
FG1:BACKSET(REFX(GT,1)=0 AND GT<DT AND REFX(H,1)>=REF(H,GT),GT+1),NODRAW,NOTEXT;
FD1:BACKSET(REFX(DT,1)=0 AND DT<GT AND REFX(L,1)<=REF(L,DT),DT+1),NODRAW,NOTEXT;
FG11:IF(GT=0 AND REF(GT,1)<DT AND IF(REF(G,BARSLAST(L=LLV(L,7)))>REF(D,BARSLAST(L=LLV(L,7))),BARSLAST(L=LLV(L,7))<5,1) AND H<REF(H,REF(GT,1)+1),1,0),NODRAW,NOTEXT;
FD11:IF(DT=0 AND REF(DT,1)<GT AND IF(REF(G,BARSLAST(H=HHV(H,7)))<REF(D,BARSLAST(H=HHV(H,7))),BARSLAST(H=HHV(H,7))<5,1) AND L>REF(L,REF(DT,1)+1),1,0),NODRAW,NOTEXT;
//再次周期
GT1:BARSLAST(FG11<>1 AND FG1<>1 AND FG0),NODRAW,NOTEXT;
DT1:BARSLAST(FD11<>1 AND FD1<>1 AND FD0),NODRAW,NOTEXT;
FD2:BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)>LLV(L,GT1+5),DT1+1),NODRAW,NOTEXT;
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,NOTEXT;
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,NOTEXT;
FG2:BACKSET(REFX(DT1,1)=0 AND GT1<3 AND DT1-GT1<4 AND REF(H,GT1)<HHV(H,DT1+5),GT1+1),NODRAW,NOTEXT;
FD2A: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,NOTEXT;
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,NOTEXT;
TTTTTT: H<REF(H,REF(GT1,1)+1) AND DT1<4,NODRAW,NOTEXT;
HHHHHH:REF(LLV(L,10),DT1),NODRAW,NOTEXT;
//前长后短;
FG21:IF(GT1=0 AND DT1<4 AND H<=REF(H,REF(GT1,1)+1) ,1,0),NODRAW,NOTEXT;
FD21:IF(DT1=0 AND GT1<4 AND L>=REF(L,REF(DT1,1)+1) ,1,0),NODRAW,NOTEXT;
//前短后长,前低后高(去低);
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,NOTEXT;
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,13),GT1) OR REF(FD231,DT1)=0),GT1+1),NODRAW,NOTEXT;
FG231:BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)<REF(L,DT1) AND REF(H,GT1)<REF(HHV(H,10),GT1) ,GT1+1),NODRAW,NOTEXT;
FD23:BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)<REF(L,DT1) AND ( REF(L,DT1)>REF(LLV(L,13),DT1) OR REF(FG231,GT1)=0),DT1+1),NODRAW,NOTEXT;
FDD23:REF(H,GT1)<REF(HHV(H,10),GT1) OR REF(FD23,DT1)=0,NODRAW,NOTEXT;
FD24:BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)<HHV(H,GT1+3) AND REF(L,DT1)>LLV(L,DT1+5),DT1+1),NODRAW,NOTEXT;
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)<HHV(H,GT1+5),GT1+1),NODRAW,NOTEXT;
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,NOTEXT;
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,NOTEXT;
FG3:BACKSET(REFX(GT2,1)=0 AND GT2<DT2 AND REFX(H,1)>=REF(H,GT2),GT2+1),NODRAW,NOTEXT;
FD3:BACKSET(REFX(DT2,1)=0 AND DT2<GT2 AND REFX(L,1)<=REF(L,DT2),DT2+1),NODRAW,NOTEXT;
FG31:IF(GT2=0 AND REF(GT2,1)<DT2 AND H<REF(H,REF(GT2,1)+1),1,0),NODRAW,NOTEXT;
FD31:IF(DT2=0 AND REF(DT2,1)<GT2 AND L>REF(L,REF(DT2,1)+1),1,0),NODRAW,NOTEXT;
GT3:BARSLAST(GT2=0 AND FG3<>1 AND FG31<>1 ),NODRAW,NOTEXT;
DT3:BARSLAST(DT2=0 AND FD3<>1 AND FD31<>1),NODRAW,NOTEXT;
FG4:BACKSET(REFX(GT3,1)=0 AND GT3<DT3 AND REFX(H,1)>=REF(H,GT3),GT3+1),NODRAW,NOTEXT;
FD4:BACKSET(REFX(DT3,1)=0 AND DT3<GT3 AND REFX(L,1)<=REF(L,DT3),DT3+1),NODRAW,NOTEXT;
FG41:IF(GT3=0 AND REF(GT3,1)<DT3 AND H<REF(H,REF(GT3,1)+1),1,0),NODRAW,NOTEXT;
FD41:IF(DT3=0 AND REF(DT3,1)<GT3 AND L>REF(L,REF(DT3,1)+1),1,0),NODRAW,NOTEXT;
HHH:=GT3=0 AND FG31<>1 AND FG3<>1,NODRAW,NOTEXT;
LLL:=DT3=0 AND FD31<>1 AND FD3<>1,NODRAW,NOTEXT;
DRAWCOLORKLINE( HHH ,COLORMAGENTA,0);
DRAWCOLORKLINE(LLL,COLORMAGENTA,0);
//多空过滤
高点周期:=BARSLAST(HHH),NODRAW;
//DRAWTEXT(CROSS(EXIST(REF(L,高点周期)>L AND REF(H,高点周期)>H AND ISDOWN ,高点周期),0.5),H*1.001,'空'),FONTSIZE20,COLORBLUE;
低点周期:=BARSLAST(LLL),NODRAW;
//DRAWTEXT(CROSS(EXIST(REF(L,低点周期)<L AND REF(H,低点周期)<H AND ISUP ,低点周期),0.5),L*0.998,'多'),FONTSIZE20,COLORRED;
//开盘线
DRAWHORIZONTALLINE((TIME=1330||TIME=0900||DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('焦炭'),O,COLORBLACK),LINETHICK2;
DRAWHORIZONTALLINE((TIME=1330||TIME=0900||DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('沪镍'),O,COLORBLACK),LINETHICK2;
DRAWHORIZONTALLINE((DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('焦煤'),O,COLORBLACK),LINETHICK2;
DRAWHORIZONTALLINE((DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('沪铜'),O,COLORBLACK),LINETHICK2;
DRAWHORIZONTALLINE((DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('螺纹'),O,COLORBLACK),LINETHICK2;
DRAWHORIZONTALLINE((DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('铁矿石'),O,COLORBLACK),LINETHICK2;
DRAWHORIZONTALLINE((DAYBARPOS=1)&&PERIOD<=3&&ISCONTRACT('PTA'),O,COLORBLACK),LINETHICK2;
//均线粗
AA:=(MA(CLOSE,2)+MA(CLOSE,6)+MA(CLOSE,18)+MA(CLOSE,54))/4,LINETHICK2,COLORLIGHTGREEN;
BB:=(MA(CLOSE,11)+MA(CLOSE,33)+MA(CLOSE,99)+MA(CLOSE,297))/4,LINETHICK3,RGB(255,128,64);
M1:=(MA(CLOSE,3)+MA(CLOSE,6)+MA(CLOSE,12)+MA(CLOSE,24))/4,LINETHICK2,COLORLIGHTGREEN;
M2:=(MA(CLOSE,12)+MA(CLOSE,24)+MA(CLOSE,48)+MA(CLOSE,96))/4,LINETHICK3,COLORRED;
//绘制透明带区域
//
//
//
//////////////////
//绘制K线,颜色修改。 如要叠加透明带,请在上面写
DRAWCOLORKLINE( C>O,COLORBLUE,1);//阳线
DRAWCOLORKLINE(O>C,COLORBLUE,0);//阴线
DRAWCOLORKLINE( C=O ,COLORLIGHTBLUE,0);//十字星
DRAWCOLORKLINE( HHH ,COLORRED,0);//缠论高点加亮
DRAWCOLORKLINE(LLL,COLORMAGENTA,0);//缠论低点加这
