{顶底背离量化主图指标,自动捕捉转折点!}
N:=47;
HHX:=H>=HV(H,N);
NH:=BARSLAST(HHX)+1;
LLX:=L<=LV(L,N);
NL:=BARSLAST(LLX)+1;
AH:=BACKSET(COUNT(LLX,NH)&&(LLX||ISLASTBAR)&&EXIST(HHX,SUMBARS(LLX||ISLASTBAR,2)),HHVBARS(IF(HHX,H,0),SUMBARS(LLX||ISLASTBAR,2))+1),NODRAW;
AL:=BACKSET(COUNT(HHX,NL)&&(HHX||ISLASTBAR)&&EXIST(LLX,SUMBARS(HHX||ISLASTBAR,2)),LLVBARS(IF(LLX,L,999999),SUMBARS(HHX||ISLASTBAR,2))+1);
GX:=CROSS(AH=1,0.5),ICON(1,'ICO1');
DX:=CROSS(AL=1,0.5),ICON(1,'ICO2');
HXX:=CROSS(BACKSET(ISLASTBAR&&EXIST(HHX,BARSLAST(DX)),BARSLAST(HHX)+1)=1,0.4);
LXX:=CROSS(BACKSET(ISLASTBAR&&EXIST(LLX,BARSLAST(GX)),BARSLAST(LLX)+1)=1,0.4);
TT:=BACKSET(ISLASTBAR,2760);
DRAWLINE1((CROSS(AH=1,0.5)||AH=1&&REF(COUNT(LLX,NH)&&LLX&&EXIST(HHX,SUMBARS(LLX,2)),1))&&TT,H,LXX||(CROSS(AL=1,0.5)||AL=1&&REF(COUNT(HHX,NL)&&HHX&&EXIST(LLX,SUMBARS(HHX,2)),1))&&TT,L,0),DOT,COLORGRAY;
DRAWLINE1((CROSS(AL=1,0.5)||AL=1&&REF(COUNT(HHX,NL)&&HHX&&EXIST(LLX,SUMBARS(HHX,2)),1))&&TT,L,HXX||(CROSS(AH=1,0.5)||AH=1&&REF(COUNT(LLX,NH)&&LLX&&EXIST(HHX,SUMBARS(LLX,2)),1))&&TT,H,0),DOT,COLORMAGENTA;
HT:=HXX||(CROSS(AH=1,0.5)||AH=1&&REF(COUNT(LLX,NH)&&LLX&&EXIST(HHX,SUMBARS(LLX,2)),1))&&TT;
LT:=LXX||(CROSS(AL=1,0.5)||AL=1&&REF(COUNT(HHX,NL)&&HHX&&EXIST(LLX,SUMBARS(HHX,2)),1))&&TT;
HH2:=H>=HV(H,N+1);
NH2:=BARSLAST(HH2)+1;
LL2:=L<=LV(L,N+1);
NL2:=BARSLAST(LL2)+1;
AH2:=BACKSET(COUNT(LL2,NH2)&&LL2&&EXIST(HH2,SUMBARS(LL2,2)),HHVBARS(IF(HH2,H,0),SUMBARS(LL2,2))+1),NODRAW;
AL2:=BACKSET(COUNT(HH2,NL2)&&HH2&&EXIST(LL2,SUMBARS(HH2,2)),LLVBARS(IF(LL2,L,999999),SUMBARS(HH2,2))+1);
DRAWLINE3(BARSLAST(CROSS(AL2=1,0.5))<BARSLAST(CROSS(AH=1,0.5))&&ISLASTBAR,HHV(IF(HHX,H,0),BARSLAST(CROSS(AL=1,0.5))+1),HHVBARS(IF(HHX,H,0),BARSLAST(CROSS(AL=1,0.5))+1),
1,REF(L,BARSLAST(CROSS(AL=1,0.5))),BARSLAST(CROSS(AL=1,0.5)),0),DOT,COLORMAGENTA;
DRAWLINE3(BARSLAST(CROSS(AL2=1,0.5))>BARSLAST(CROSS(AH=1,0.5))&&ISLASTBAR,LLV(IF(LLX,L,999999),BARSLAST(CROSS(AH=1,0.5))+1),LLVBARS(IF(LLX,L,999999),BARSLAST(CROSS(AH=1,0.5))+1),
1,REF(H,BARSLAST(CROSS(AH=1,0.5))),BARSLAST(CROSS(AH=1,0.5)),0),DOT,COLORGRAY;
//高低点背离K线(组合)信号
HHY:=CROSS(BACKSET(BARSLAST(CROSS(AL2=1,0.5))<BARSLAST(HT)&&ISLASTBAR,HHVBARS(IF(HHX,H,0),BARSLAST(LT)+1)+1),0.5);
LLY:=CROSS(BACKSET(BARSLAST(CROSS(AL2=1,0.5))>BARSLAST(HT)&&ISLASTBAR,LLVBARS(IF(LLX,L,999999),BARSLAST(HT)+1)+1),0.5);
HZ:=(HHY||HT||HXX||(CROSS(AH=1,0.5)||AH=1&&REF(COUNT(LLX,NH)&&LLX&&EXIST(HHX,SUMBARS(LLX,2)),1))&&TT);
LZ:=(LLY||LT||(CROSS(AL=1,0.5)||AL=1&&REF(COUNT(HHX,NL)&&HHX&&EXIST(LLX,SUMBARS(HHX,2)),1))&&TT);
//单K背离S/B标示
Y:=1;
HHH1:=REF(H,SUMBARS(HZ,2)-1);
HHH2:=REF(H,SUMBARS(HZ,3)-1);
HHHH:=H>HHH1&&H>HHH2;
DRAWTEXT( HZ&&(ISDOWN&&C<L+(H-L)*(1/3)||(H-MAX(O,C))/ABS(H-L)>(2/3))&&L<H/1.0036,H+Y*MINPRICE,'S'),COLORGREEN;
DRAWTEXT( LZ&&(ISUP&&C>L+(H-L)*(2/3)||(MIN(O,C)-L)/ABS(H-L)>(2/3))&&H>L*1.0036,L-Y*MINPRICE,'B'),VALIGN0,COLORRED;
LLL1:=REF(L,SUMBARS(LZ,2)-1);
LLL2:=REF(L,SUMBARS(LZ,3)-1);
LLLL:=L<LLL1&&L<LLL2;
DRAWTEXT( HZ&&(ISDOWN&&C<L+(H-L)*(1/3)||(H-MAX(O,C))/ABS(H-L)>(2/3))&&HHHH&&L<H/1.0036,H+Y*MINPRICE,'S'),COLORRED;
DRAWTEXT( LZ&&(ISUP&&C>L+(H-L)*(2/3)||(MIN(O,C)-L)/ABS(H-L)>(2/3))&&LLLL&&H>L*1.0036,L-Y*MINPRICE,'B'),VALIGN0,COLORGREEN;