投资者咨询:麻烦老师帮我改一个指标 (文华财经WH6赢顺V6.7)
来源:文华财经 日期:2018-5-30 13:16
参数
代码
////(1) 求出高点
// 前面第3(N)根K线是最近7(2N+1)根K线的最高价
A1:=REF(HIGH,N)=HHV(HIGH,2*N+1),NODRAW;
B1:=FILTER(A1,N),NODRAW;
// 将7(2N+1)根K线的最高价那根K线之后的N根K线设置为1
C1:=BACKSET(B1,N+1),NODRAW;
D1:=FILTER(C1,N);
////(2) 求出低点
// 前面第3(N)根K线是最近7(2N+1)根K线的最低价
A2:=REF(LOW,N)=LLV(LOW,2*N+1);
B2:=FILTER(A2,N);
C2:=BACKSET(B2,N+1);
D2:=FILTER(C2,N),NODRAW;
////(3)
// 求出当前K线前2N个周期内的中值
//E1:(LV(LOW,2*N)+HV(HIGH,2*N))/2,NODRAW;
E1:=(REF(LLV(LOW,2*N),1)+REF(HHV(HIGH,2*N),1))/2,NODRAW;
// 求出当前K线的中值
E2:=(HIGH+LOW)/2;
////(4) 求出符合条件的高低点
H1:=(D1 && NOT(D2 AND E1>=E2)) || ISLASTBAR || BARSCOUNT(CLOSE)=1;
L1:=(D2 && NOT(D1 AND E1<E2));
H2:=D1 && NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1;
F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,999999),X1)),NODRAW;
G1:=F1>REF(F1,1)||F1=1&&REF(NOT(F1>=0),1),NODRAW;
I1:=BACKSET(G1,2),NODRAW;
LD:=I1>REF(I1,1),NODRAW;//高点
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1;
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2)),NODRAW;
G2:=F2>REF(F2,1)||F2=1&&REF(NOT(F2>=0),1),NODRAW;
I2:=BACKSET(G2,2),NODRAW;
HD:=I2>REF(I2,1),NODRAW;//低点
/* 以上为该指标使用的判断高低的逻辑 */
DRAWLINE1(LD,L,HD,H,0),COLORMAGENTA,DOT;
DRAWLINE1(HD,H,LD,L,0),COLORMAGENTA,DOT;
////(5) 求出最近的3组高低点(多)
3DP := BARSLAST(LD=1),NODRAW;
3GP := BARSLAST(HD=1),NODRAW;
2DP1 := IFELSE(3DP<5,BARSLAST(REF(LD,5)=1)+5,-1),NODRAW;
2DP2 := IFELSE(2DP1=-1 && 3DP<10,BARSLAST(REF(LD,10)=1)+10,2DP1),NODRAW;
2DP3 := IFELSE(2DP2=-1 && 3DP<20,BARSLAST(REF(LD,20)=1)+20,2DP2),NODRAW;
2DP4 := IFELSE(2DP3=-1 && 3DP<30,BARSLAST(REF(LD,30)=1)+30,2DP3),NODRAW;
2DP5 := IFELSE(2DP4=-1 && 3DP<40,BARSLAST(REF(LD,40)=1)+40,2DP4),NODRAW;
2DP6 := IFELSE(2DP5=-1 && 3DP<50,BARSLAST(REF(LD,50)=1)+50,2DP5),NODRAW;
2DP := IFELSE(2DP6=-1 && 3DP<60,BARSLAST(REF(LD,60)=1)+60,2DP6),NODRAW;
2GP1 := IFELSE(3GP<5,BARSLAST(REF(HD,5)=1)+5,-1),NODRAW;
2GP2 := IFELSE(2GP1=-1 && 3GP<10,BARSLAST(REF(HD,10)=1)+10,2GP1),NODRAW;
2GP3 := IFELSE(2GP2=-1 && 3GP<20,BARSLAST(REF(HD,20)=1)+20,2GP2),NODRAW;
2GP4 := IFELSE(2GP3=-1 && 3GP<30,BARSLAST(REF(HD,30)=1)+30,2GP3),NODRAW;
2GP5 := IFELSE(2GP4=-1 && 3GP<40,BARSLAST(REF(HD,40)=1)+40,2GP4),NODRAW;
2GP6 := IFELSE(2GP5=-1 && 3GP<50,BARSLAST(REF(HD,50)=1)+50,2GP5),NODRAW;
2GP := IFELSE(2GP6=-1 && 3GP<60,BARSLAST(REF(HD,60)=1)+60,2GP6),NODRAW;
1DP1 := IFELSE(2DP<10,BARSLAST(REF(LD,10)=1)+10,-1),NODRAW;
1DP2 := IFELSE(1DP1=-1 && 2DP<20,BARSLAST(REF(LD,20)=1)+20,1DP1),NODRAW;
1DP3 := IFELSE(1DP2=-1 && 2DP<30,BARSLAST(REF(LD,30)=1)+30,1DP2),NODRAW;
1DP4 := IFELSE(1DP3=-1 && 2DP<40,BARSLAST(REF(LD,40)=1)+40,1DP3),NODRAW;
1DP5 := IFELSE(1DP4=-1 && 2DP<50,BARSLAST(REF(LD,50)=1)+50,1DP4),NODRAW;
1DP6 := IFELSE(1DP5=-1 && 2DP<60,BARSLAST(REF(LD,60)=1)+60,1DP5),NODRAW;
1DP7 := IFELSE(1DP6=-1 && 2DP<70,BARSLAST(REF(LD,70)=1)+70,1DP6),NODRAW;
1DP8 := IFELSE(1DP7=-1 && 2DP<80,BARSLAST(REF(LD,80)=1)+80,1DP7),NODRAW;
1DP9 := IFELSE(1DP8=-1 && 2DP<90,BARSLAST(REF(LD,90)=1)+90,1DP8),NODRAW;
1DP10:= IFELSE(1DP9=-1 && 2DP<100,BARSLAST(REF(LD,100)=1)+100,1DP9),NODRAW;
1DP11:= IFELSE(1DP10=-1 && 2DP<110,BARSLAST(REF(LD,110)=1)+110,1DP10),NODRAW;
1DP := IFELSE(1DP11=-1 && 2DP<120,BARSLAST(REF(LD,120)=1)+120,1DP11),NODRAW;
1GP1 := IFELSE(2GP<10,BARSLAST(REF(HD,10)=1)+10,-1),NODRAW;
1GP2 := IFELSE(1GP1=-1 && 2GP<20,BARSLAST(REF(HD,20)=1)+20,1GP1),NODRAW;
1GP3 := IFELSE(1GP2=-1 && 2GP<30,BARSLAST(REF(HD,30)=1)+30,1GP2),NODRAW;
1GP4 := IFELSE(1GP3=-1 && 2GP<40,BARSLAST(REF(HD,40)=1)+40,1GP3),NODRAW;
1GP5 := IFELSE(1GP4=-1 && 2GP<50,BARSLAST(REF(HD,50)=1)+50,1GP4),NODRAW;
1GP6 := IFELSE(1GP5=-1 && 2GP<60,BARSLAST(REF(HD,60)=1)+60,1GP5),NODRAW;
1GP7 := IFELSE(1GP6=-1 && 2GP<70,BARSLAST(REF(HD,70)=1)+70,1GP6),NODRAW;
1GP8 := IFELSE(1GP7=-1 && 2GP<80,BARSLAST(REF(HD,80)=1)+80,1GP7),NODRAW;
1GP9 := IFELSE(1GP8=-1 && 2GP<90,BARSLAST(REF(HD,90)=1)+90,1GP8),NODRAW;
1GP10:= IFELSE(1GP9=-1 && 2GP<100,BARSLAST(REF(HD,100)=1)+100,1GP9),NODRAW;
1GP11:= IFELSE(1GP10=-1 && 2GP<110,BARSLAST(REF(HD,110)=1)+110,1GP10),NODRAW;
1GP := IFELSE(1GP11=-1 && 2GP<120,BARSLAST(REF(HD,120)=1)+120,1GP11),NODRAW;
1D : REF(L,1DP),NODRAW;
1G : REF(H,1GP),NODRAW;
2D : REF(L,2DP),NODRAW;
2G : REF(H,2GP),NODRAW;
3D : REF(L,3DP),NODRAW;
3G : REF(H,3GP),NODRAW;
技术人员回复
日期:2018-5-30 13:41