富途牛牛 缠论指标

N1:=10;
N2:=10;
DISP:=2;
K:=1/10;
P1:=PEAK(1,K*N1,1);
P2:=PEAK(1,K*N1,2);
WP1:=PEAKBARS(1,K*N1,1);
WP2:=PEAKBARS(1,K*N1,2);
T1:=TROUGH(2,K*N2,1);
T2:=TROUGH(2,K*N2,2);
WT1:=TROUGHBARS(2,K*N2,1);
WT2:=TROUGHBARS(2,K*N2,2);
TJ1:=P1>T1 AND P2>T2 ;
ZD:=MAX(T1,T2);
ZG:=MIN(P1,P2);
LL:=MIN(T1,T2);
HH:=MAX(P1,P2);
TJ2:=FILTER(ZG>ZD,10);
TJ3:=ZG=REF(ZG,BARSLAST(TJ2)-1) OR ZD=REF(ZD,BARSLAST(TJ2)-1);
TJ4:=TJ1 AND TJ2;
{TJ4:=TJ1 AND TJ2 OR NOT(TJ3);}

UPBOUND1:=MAX(REF(ZD,REF(BARSLAST(TJ4),1)),REF(ZG,REF(BARSLAST(TJ4),1)))+0.000001;
DOWNBOUND1:=MIN(REF(ZD,REF(BARSLAST(TJ4),1)),REF(ZG,REF(BARSLAST(TJ4),1)))-0.00001;
TJ5:=BETWEEN(ZD,DOWNBOUND1,UPBOUND1);
TJ6:=BETWEEN(ZG,DOWNBOUND1,UPBOUND1);
TJ7:=ZG>REF(ZG,REF(BARSLAST(TJ4),1))AND ZD<REF(ZD,REF(BARSLAST(TJ4),1));
TJ8:=TJ4 AND NOT(TJ5 OR TJ6 OR TJ7);

ZSD:=IF(TJ8,ZD,DRAWNULL);
ZSG:=IF(TJ8,ZG,DRAWNULL);
ZSH:=IF(TJ8,HH,DRAWNULL);
ZSL:=IF(TJ8,LL,DRAWNULL);
{STICKLINE(TJ8,ZSH,ZSL,0,-1),COLORMAGENTA;
STICKLINE(TJ8,ZSD,ZSG,IF(DISP=1,3,0),1),COLORMAGENTA;}
{DRAWTEXT(DISP=2,ZSH,'ZS'),COLORWHITE;}
REF(ZSD,BARSLAST(TJ8)),COLORLIRED,POINTDOT,LINETHICK3;
REF(ZSG,BARSLAST(TJ8)),COLORLIGREEN,POINTDOT,LINETHICK3;

LOCAL_LOW_PREA:=BACKSET(LLV(L,5)<REF(LLV(L,4),1),4);
LOCAL_LOW_PREB:=BACKSET(LOCAL_LOW_PREA=0 AND REF(LOCAL_LOW_PREA,1)=1,2);
LOCAL_LOW_PREC:=IF(LOCAL_LOW_PREB=1 AND REF(LOCAL_LOW_PREB,1)=0,-1,0);
LOCAL_HIGH_PREA:=BACKSET(HHV(H,5)>REF(HHV(H,4),1),4);
LOCAL_HIGH_PREB:=BACKSET(LOCAL_HIGH_PREA=0 AND REF(LOCAL_HIGH_PREA,1)=1,2);
LOCAL_HIGH_PREC:=IF(LOCAL_HIGH_PREB=1 AND REF(LOCAL_HIGH_PREB,1)=0,1,0);
GAP_CHECK:=IF(L>REF(H,1),1,IF(H<REF(L,1),-1,0));
PERIOD_PREHIGH:=BARSLAST(LOCAL_HIGH_PREC=1);
PERIOD_PRELOW:=BARSLAST(LOCAL_LOW_PREC=-1);
SMALLVAL_PERIOD:=LOWRANGE(L);
BIGVAL_PERIOD:=TOPRANGE(H);
LOWSAVE_AA:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGH,1)>REF(PERIOD_PRELOW,1) AND LLV(L,PERIOD_PREHIGH+1)<REF(LLV(L,PERIOD_PREHIGH+1),1),-1,0);
GAP_CHECK_RECORDAB:=IF(PERIOD_PREHIGH=0,-1,LLV(GAP_CHECK,PERIOD_PREHIGH));
LOWSAVE_AB:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGH,1)<=REF(PERIOD_PRELOW,1) AND (PERIOD_PREHIGH>=4 OR GAP_CHECK_RECORDAB=-1 OR LLV(L,PERIOD_PRELOW+2)<REF(LLV(L,PERIOD_PRELOW+1),1)),-1,0);
LOWSAVE_S:=IF((LOWSAVE_AA=-1 OR LOWSAVE_AB=-1) AND L<REF(H,PERIOD_PREHIGH+1),-1,0);
GAP_CHECK_RECORD:=IF(PERIOD_PRELOW=0,1,HHV(GAP_CHECK,PERIOD_PRELOW));
PRECHECK:=IF((PERIOD_PRELOW<4 AND GAP_CHECK_RECORD!=1) OR REF(LOWSAVE_S,PERIOD_PRELOW)=0,1,0);
REAL_CHECK:=IF(LOCAL_HIGH_PREC=1 AND REF(PERIOD_PRELOW,1)<=REF(PERIOD_PREHIGH,1) AND PRECHECK=1 AND BIGVAL_PERIOD>REF(SMALLVAL_PERIOD,PERIOD_PRELOW+1) AND BIGVAL_PERIOD>REF(SMALLVAL_PERIOD,PERIOD_PRELOW) AND BIGVAL_PERIOD>REF(BIGVAL_PERIOD,PERIOD_PREHIGH),1,0);
HIGHSAVE_A:=IF(LOCAL_HIGH_PREC=1 AND REF(PERIOD_PRELOW,1)>REF(PERIOD_PREHIGH,1) AND HHV(H,PERIOD_PRELOW+1)>REF(HHV(H,PERIOD_PRELOW+1),1),1,0);
HIGHSAVE_B:=IF(LOCAL_HIGH_PREC=1 AND REF(PERIOD_PRELOW,1)<=REF(PERIOD_PREHIGH,1) AND REF(LOWSAVE_S,PERIOD_PRELOW)=-1 AND (PERIOD_PRELOW>=4 OR GAP_CHECK_RECORD=1),1,0);
HIGHSAVE:=IF((HIGHSAVE_A=1 OR HIGHSAVE_B=1 OR REAL_CHECK=1) AND H>REF(L,PERIOD_PRELOW+1),1,0);
GAP_CHECK_RECORDA:=IF(PERIOD_PREHIGH=0,1,HHV(GAP_CHECK,PERIOD_PREHIGH));
PRECHECKA:=IF((PERIOD_PREHIGH<4 AND GAP_CHECK_RECORDA!=1) OR REF(HIGHSAVE,PERIOD_PREHIGH)=0,1,0);
REAL_CHECKA:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGH,1)<=REF(PERIOD_PRELOW,1) AND PRECHECKA=1 AND SMALLVAL_PERIOD>REF(BIGVAL_PERIOD,PERIOD_PREHIGH+1) AND SMALLVAL_PERIOD>REF(BIGVAL_PERIOD,PERIOD_PREHIGH) AND SMALLVAL_PERIOD>REF(SMALLVAL_PERIOD,PERIOD_PRELOW),-1,0);
LOWSAVEA:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGH,1)>REF(PERIOD_PRELOW,1) AND LLV(L,PERIOD_PREHIGH+1)<REF(LLV(L,PERIOD_PREHIGH+1),1),-1,0);
LOWSAVEB:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGH,1)<=REF(PERIOD_PRELOW,1) AND (PERIOD_PREHIGH>=4 OR GAP_CHECK_RECORDA=-1 OR REAL_CHECKA=-1),-1,0);
LOWSAVE:=IF((LOWSAVEA=-1 OR LOWSAVEB=-1) AND L<REF(H,PERIOD_PREHIGH+1),-1,0);
PERIOD_PREHIGHA:=BARSLAST(HIGHSAVE=1);
PERIOD_PRELOWA:=BARSLAST(LOWSAVE=-1);
GAP_CHECK_RECORDX:=IF(PERIOD_PRELOWA=0,1,HHV(GAP_CHECK,PERIOD_PRELOWA));
PRECHECKX:=IF((PERIOD_PRELOWA<4 AND GAP_CHECK_RECORDX!=1) OR REF(LOWSAVE,PERIOD_PRELOWA)=0,1,0);
REAL_CHECKX:=IF(LOCAL_HIGH_PREC=1 AND REF(PERIOD_PRELOWA,1)<=REF(PERIOD_PREHIGHA,1) AND PRECHECKX=1 AND BIGVAL_PERIOD>REF(SMALLVAL_PERIOD,PERIOD_PRELOWA+1) AND BIGVAL_PERIOD>REF(SMALLVAL_PERIOD,PERIOD_PRELOWA) AND BIGVAL_PERIOD>REF(BIGVAL_PERIOD,PERIOD_PREHIGHA),1,0);
HIGHSAVEXA:=IF(LOCAL_HIGH_PREC=1 AND REF(PERIOD_PRELOWA,1)>REF(PERIOD_PREHIGHA,1) AND HHV(H,PERIOD_PRELOWA+1)>REF(HHV(H,PERIOD_PRELOWA+1),1),1,0);
HIGHSAVEXB:=IF(LOCAL_HIGH_PREC=1 AND REF(PERIOD_PRELOWA,1)<=REF(PERIOD_PREHIGHA,1) AND REF(LOWSAVE,PERIOD_PRELOWA)=-1 AND (PERIOD_PRELOWA>=4 OR GAP_CHECK_RECORDX=1),1,0);
HIGHSAVEX:=IF((HIGHSAVEXA=1 OR HIGHSAVEXB=1 OR REAL_CHECKX=1) AND H>REF(L,PERIOD_PRELOWA+1),1,0);
GAP_CHECK_RECORDXA:=IF(PERIOD_PREHIGHA=0,1,HHV(GAP_CHECK,PERIOD_PREHIGHA));
PRECHECKXA:=IF((PERIOD_PREHIGHA<4 AND GAP_CHECK_RECORDXA!=1) OR REF(HIGHSAVEXA,PERIOD_PREHIGHA)=0,1,0);
REAL_CHECKXA:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGHA,1)<=REF(PERIOD_PRELOWA,1) AND PRECHECKXA=1 AND SMALLVAL_PERIOD>REF(BIGVAL_PERIOD,PERIOD_PREHIGHA+1) AND SMALLVAL_PERIOD>REF(BIGVAL_PERIOD,PERIOD_PREHIGHA) AND SMALLVAL_PERIOD>REF(SMALLVAL_PERIOD,PERIOD_PRELOWA),-1,0);
LOWSAVEXA:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGHA,1)>REF(PERIOD_PRELOWA,1) AND LLV(L,PERIOD_PREHIGHA+1)<REF(LLV(L,PERIOD_PREHIGHA+1),1),-1,0);
GAP_CHECK_RECORDXB:=IF(PERIOD_PREHIGHA=0,-1,LLV(GAP_CHECK,PERIOD_PREHIGHA));
LOWSAVEXB:=IF(LOCAL_LOW_PREC=-1 AND REF(PERIOD_PREHIGHA,1)<=REF(PERIOD_PRELOWA,1) AND (PERIOD_PREHIGHA>=4 OR GAP_CHECK_RECORDXB=-1 OR REAL_CHECKXA=-1),-1,0);
LOWSAVEX:=IF((LOWSAVEXA=-1 OR LOWSAVEXB=-1) AND L<REF(H,PERIOD_PREHIGHA+1),-1,0);
PD_PREHIGHYA:=BARSLAST(HIGHSAVEX=1);
PD_PRELOWYA:=BARSLAST(LOWSAVEX=-1);
GAP_CHECK_RECORDYX:=IF(PD_PRELOWYA=0,1,HHV(GAP_CHECK,PD_PRELOWYA));
PRECHECKYX:=IF((PD_PRELOWYA<4 AND GAP_CHECK_RECORDYX!=1) OR REF(LOWSAVEX,PD_PRELOWYA)=0,1,0);
REAL_CHECKYX:=IF(LOCAL_HIGH_PREC=1 AND REF(PD_PRELOWYA,1)<=REF(PD_PREHIGHYA,1) AND PRECHECKYX=1 AND BIGVAL_PERIOD>REF(SMALLVAL_PERIOD,PD_PRELOWYA+1) AND BIGVAL_PERIOD>REF(SMALLVAL_PERIOD,PD_PRELOWYA) AND BIGVAL_PERIOD>REF(BIGVAL_PERIOD,PD_PREHIGHYA),1,0);
HIGHSAVEYXA:=IF(LOCAL_HIGH_PREC=1 AND REF(PD_PRELOWYA,1)>REF(PD_PREHIGHYA,1) AND HHV(H,PD_PRELOWYA+1)>REF(HHV(H,PD_PRELOWYA+1),1),1,0);
HIGHSAVEYXB:=IF(LOCAL_HIGH_PREC=1 AND REF(PD_PRELOWYA,1)<=REF(PD_PREHIGHYA,1) AND REF(LOWSAVEX,PD_PRELOWYA)=-1 AND (PD_PRELOWYA>=4 OR GAP_CHECK_RECORDYX=1),1,0);
HIGHSAVEYX:=IF((HIGHSAVEYXA=1 OR HIGHSAVEYXB=1 OR REAL_CHECKYX=1) AND H>REF(L,PD_PRELOWYA+1),1,0);
GAP_CHECK_RECORDYXA:=IF(PD_PREHIGHYA=0,1,HHV(GAP_CHECK,PD_PREHIGHYA));
PRECHECKYXA:=IF((PD_PREHIGHYA<4 AND GAP_CHECK_RECORDYXA!=1) OR REF(HIGHSAVEYXA,PD_PREHIGHYA)=0,1,0);
REAL_CHECKYXA:=IF(LOCAL_LOW_PREC=-1 AND REF(PD_PREHIGHYA,1)<=REF(PD_PRELOWYA,1) AND PRECHECKYXA=1 AND SMALLVAL_PERIOD>REF(BIGVAL_PERIOD,PD_PREHIGHYA+1) AND SMALLVAL_PERIOD>REF(BIGVAL_PERIOD,PD_PREHIGHYA) AND SMALLVAL_PERIOD>REF(SMALLVAL_PERIOD,PD_PRELOWYA),-1,0);
LOWSAVEYXA:=IF(LOCAL_LOW_PREC=-1 AND REF(PD_PREHIGHYA,1)>REF(PD_PRELOWYA,1) AND LLV(L,PD_PREHIGHYA+1)<REF(LLV(L,PD_PREHIGHYA+1),1),-1,0);
GAP_CHECK_RECORDYXB:=IF(PD_PREHIGHYA=0,-1,LLV(GAP_CHECK,PD_PREHIGHYA));
LOWSAVEYXB:=IF(LOCAL_LOW_PREC=-1 AND REF(PD_PREHIGHYA,1)<=REF(PD_PRELOWYA,1) AND (PD_PREHIGHYA>=4 OR GAP_CHECK_RECORDYXB=-1 OR REAL_CHECKYXA=-1),-1,0);
LOWSAVEYX:=IF((LOWSAVEYXA=-1 OR LOWSAVEYXB=-1) AND L<REF(H,PD_PREHIGHYA+1),-1,0);
AAAD:=IF(HIGHSAVEYX=1 AND LOWSAVEYX=-1 AND H>REF(H,REF(PD_PREHIGHYA,1)+2),1,IF(HIGHSAVEYX=1 AND LOWSAVEYX=-1 AND L<REF(L,REF(PD_PRELOWYA,1)+2),-1,0));
EXM_POINT_SAVE:=IF(AAAD=0,HIGHSAVEYX+LOWSAVEYX,AAAD);
LOCAL_EXM_POINT:IF(EXM_POINT_SAVE=-1,L,IF(EXM_POINT_SAVE=1,H,DRAWNULL)),CIRCLEDOT,COLORYELLOW;
DRAWLINE(EXM_POINT_SAVE=-1,LOCAL_EXM_POINT,EXM_POINT_SAVE=1,LOCAL_EXM_POINT,0),COLORLIRED;
DRAWLINE(EXM_POINT_SAVE=1,LOCAL_EXM_POINT,EXM_POINT_SAVE=-1,LOCAL_EXM_POINT,0),COLORYELLOW;
DD1:=BARSLAST(ABS(EXM_POINT_SAVE)!=1);
C++

打印/导出