
MZ1:EMA(C,21),LINETHICK2,COLORMAGENTA;
MZ2:EMA(C,55),NODRAW;
TR1 : =MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
ATR1 : =MA(TR1,26);
GLL:=ABS(CLOSE-MZ1);
COND100:=BARSLAST(CROSS(C,MZ1))+1>=12&&C>MZ1&&C>MZ2&&GLL>ATR1*3.8;
COND200:=BARSLAST(CROSSDOWN(C,MZ1))+1>=12&&C<MZ1&&C<MZ2&&GLL>ATR1*3.8;
COND1:=BARSLAST(CROSS(C,MZ1))+1<5&&C>MZ1&&C>MZ2&&GLL>ATR1*1.4 ;//高开或快速上涨开仓信号以下是COND1;
COND11:=BARSLAST(CROSS(C,MZ1))+1=5&&C>MZ1&&C>MZ2;
COND111:=BARSLAST(CROSS(C,MZ1))+1<=5&&C>MZ1&&C>MZ2&&GLL>=ATR1*0.90&&GLL<=ATR1*1.4;
COND4:=BARSLAST(CROSS(C,MZ1))+1=5&&C>MZ1&&C<MZ2;
COND44:=BARSLAST(CROSS(C,MZ1))+1<=5&&C>MZ1&&C<MZ2&&GLL>=ATR1*0.90&&GLL<=ATR1*1.4;
COND444:=BARSLAST(CROSS(C,MZ1))+1<=5&&C>MZ1&&C<MZ2&&GLL>ATR1*1.4;
COND2:=BARSLAST(CROSSDOWN(C,MZ1))+1<5&&C<MZ1&&C<MZ2&&GLL>ATR1*1.4 ;//高开或快速下跌开仓信号以下是COND2;
COND22:=BARSLAST(CROSSDOWN(C,MZ1))+1=5&&C<MZ1&&C<MZ2;
COND222:=BARSLAST(CROSSDOWN(C,MZ1))+1<=5&&C<MZ1&&C<MZ2&&GLL>=ATR1*0.90&&GLL<=ATR1*1.4;
COND3:=BARSLAST(CROSSDOWN(C,MZ1))+1=5&&C<MZ1&&C>MZ2;
COND33:=BARSLAST(CROSSDOWN(C,MZ1))+1<=5&&C<MZ1&&C>MZ2&&GLL>=ATR1*0.90&&GLL<=ATR1*1.4;
COND333:=BARSLAST(CROSSDOWN(C,MZ1))+1<=5&&C<MZ1&&C>MZ2&&GLL>ATR1*1.4;
AA:=COND1||COND11||COND111;
BB:=COND2||COND22||COND222;
CC:=COND3||COND33||COND333;
DD:=COND4||COND44||COND444;
DRAWTEXT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1&&COUNT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1,BARSLASTCOUNT(BARSLAST(AA)>BARSLAST(BB)))=1,H,'K'),ALIGN1,VALIGN2,COLORCYAN,FONTSIZE15;
DRAWTEXT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1&&COUNT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1,BARSLASTCOUNT(BARSLAST(DD)>BARSLAST(BB)))=1,H,'K'),ALIGN1,VALIGN2,COLORCYAN,FONTSIZE15;
DRAWTEXT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(BB)))=1,L,'D'),ALIGN1,VALIGN0,COLORRED,FONTSIZE15;
DRAWTEXT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(CC)))=1,L,'D'),ALIGN1,VALIGN0,COLORRED,FONTSIZE15;
DRAWTEXT(CC&&COUNT(CC,BARSLAST(AA||DD)+1)=1&&BARSLAST(AA)<BARSLAST(BB),H,'K'),ALIGN1,VALIGN2,COLORWHITE,FONTSIZE15;
DRAWTEXT(CC&&COUNT(CC,BARSLAST(AA||DD||BB)+1)=1&&BARSLAST(CC)<BARSLAST(DD)&&BARSLAST(DD)<BARSLAST(BB),H,'K'),ALIGN1,VALIGN2,COLORWHITE,FONTSIZE15;
DRAWTEXT(DD&&COUNT(DD,BARSLAST(BB||CC)+1)=1&&BARSLAST(BB)<BARSLAST(AA),L,'D'),ALIGN1,VALIGN0,COLORWHITE,FONTSIZE15;
DRAWTEXT(DD&&COUNT(DD,BARSLAST(AA||CC||BB)+1)=1&&BARSLAST(DD)<BARSLAST(CC)&&BARSLAST(CC)<BARSLAST(AA),L,'D'),ALIGN1,VALIGN0,COLORWHITE,FONTSIZE15;
BB1:=BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1&&COUNT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1,BARSLASTCOUNT(BARSLAST(AA)>BARSLAST(BB)))=1;
BB11:=BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1&&COUNT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1,BARSLASTCOUNT(BARSLAST(DD)>BARSLAST(BB)))=1;
AA1:=AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(BB)))=1;
AA11:=AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(CC)))=1;
CC12:=CC&&COUNT(CC,BARSLAST(AA||DD)+1)=1&&BARSLAST(AA)<BARSLAST(BB);
CC11:=CC&&COUNT(CC,BARSLAST(AA||DD||BB)+1)=1&&BARSLAST(CC)<BARSLAST(DD)&&BARSLAST(DD)<BARSLAST(BB);
DD12:=DD&&COUNT(DD,BARSLAST(BB||CC)+1)=1&&BARSLAST(BB)<BARSLAST(AA);
DD11:=DD&&COUNT(DD,BARSLAST(AA||CC||BB)+1)=1&&BARSLAST(DD)<BARSLAST(CC)&&BARSLAST(CC)<BARSLAST(AA);
BB3:=BB1||BB11;
AA3:=AA1||AA11;
CC3:=CC12||CC11;
DD3:=DD12||DD11;
CONDD1:=L>=REF(L,1)&&H<REF(H,1);//包含关系条件;
HHH:=VALUEWHEN(CONDD1,REF(H,1));//取K线最高价;
LLL:=VALUEWHEN(CONDD1,REF(L,1));//取K线最低价;
CC1:=BARSLASTCOUNT(L>LLL&&H<HHH);//后面几根K线包含关系周期数;
B:=HHV(H,CC1+1);//包含关系最高点;
F:=LLV(L,CC1+1);//包含关系最低点;
CONDD3:= C>F&&H<B;
E:=EVERY(CONDD3,CC1);
CONDD22:E=0&&CROSSDOWN(L,REF(L,1)),NODRAW;//下跌连续两根没包含关系;
CONDD44:=E=0&&CROSS(H,REF(H,1));//上涨连续两根K线没包含关系;
UU1:=CONDBARS(CONDD22,CONDD44);//下跌K线周数;
DD1:=CONDBARS(CONDD44,CONDD22);//上涨K线周期数;
X1:=CONDD44&&SUM(CONDD44,BARSLAST(CONDD22))=1;
X2:=CONDD22&&SUM(CONDD22,BARSLAST(CONDD44))=1;
LL11:=VALUEWHEN(X1,LLV(L,UU1+1));//最低价;
HH11:=VALUEWHEN(X2,HHV(H,DD1+1));//最高价:
LL22:=VALUEWHEN(X1,REF(LL11,1));//最低价;
HH22:=VALUEWHEN(X2,HHV(HH11,1));//最高价:
DKCJ222:=VALUEWHEN(AA3,C);//开仓价;
KKCJ:=VALUEWHEN(BB3,C);//开仓价;
T:=(X1||X2);
HX:CROSS(C,HH11+MINPRICE),NODRAW;
LX:CROSSDOWN(C,LL11-MINPRICE),NODRAW;
Z1:EXIST(DD,BARSLAST(BB))=0&&AA&&ATR1*5>KKCJ-C&&KKCJ-C>=ATR1*2.5&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(BB)))=1,NODRAW;
Z2:EXIST(DD,BARSLAST(BB))=0&&AA&&ATR1*5>KKCJ-C&&KKCJ-C>=ATR1*2.5&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(CC)))=1,NODRAW;
Z3:DD&&ATR1*5>KKCJ-C&&KKCJ-C>=ATR1*2.5&&COUNT(DD,BARSLAST(BB||CC)+1)=1&&BARSLAST(BB)<BARSLAST(AA),NODRAW;
Z4:DD&&ATR1*5>KKCJ-C&&KKCJ-C>=ATR1*2.5&&COUNT(DD,BARSLAST(AA||CC||BB)+1)=1&&BARSLAST(DD)<BARSLAST(CC)&&BARSLAST(CC)<BARSLAST(AA),NODRAW;
COND66:=VALUEWHEN(AA||BB||CC||DD,AA||DD)&&LX&&BACKSET(VALUEWHEN(AA||BB||CC||DD,AA||DD)&&ISLASTBAR,BARSLAST(AA||DD));
COND666:=VALUEWHEN(AA||BB||CC||DD,CC||BB)&&HX&&BACKSET(VALUEWHEN(AA||BB||CC||DD,CC||BB)&&ISLASTBAR,BARSLAST(BB||CC));
COND88:=ISLASTBAR&& VALUEWHEN(AA||BB||CC||DD,AA||DD),(BARSLAST(X1)+REF(LLVBARS(L,UU1+1),BARSLAST(X1)));
COND888:=ISLASTBAR&& VALUEWHEN(AA||BB||CC||DD,BB||CC),(BARSLAST(X2)+REF(HHVBARS(L,DD1+1),BARSLAST(X1)));
PLAYSOUND(AA||BB||CC||DD,'A');
PLAYSOUND(COND66||COND666,'C');
P1:=DD&&COUNT(DD,BARSLAST(AA||CC||BB)+1)=1&&BARSLAST(DD)<BARSLAST(CC)&&BARSLAST(CC)<BARSLAST(AA)||CC&&COUNT(CC,BARSLAST(AA||DD||BB)+1)=1&&BARSLAST(CC)<BARSLAST(DD)&&BARSLAST(DD)<BARSLAST(BB)
||DD&&COUNT(DD,BARSLAST(BB||CC)+1)=1&&BARSLAST(BB)<BARSLAST(AA)||CC&&COUNT(CC,BARSLAST(AA||DD)+1)=1&&BARSLAST(AA)<BARSLAST(BB);
P2:=BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1&&COUNT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1,BARSLASTCOUNT(BARSLAST(AA)>BARSLAST(BB)))=1||BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1&&COUNT(BB&&COUNT(BB,BARSLAST(AA||DD||CC)+1)=1,BARSLASTCOUNT(BARSLAST(DD)>BARSLAST(BB)))=1;
P3:=AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(BB)))=1||AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1&&COUNT(AA&&COUNT(AA,BARSLAST(BB||CC||DD)+1)=1,BARSLASTCOUNT(BARSLAST(AA)<BARSLAST(CC)))=1;
X1A:=BARSLAST(P3)<BARSLAST(P2)&&BARSLAST(P3)<BARSLAST(P1);
X2A:=BARSLAST(P3)>BARSLAST(P2)&&BARSLAST(P2)<BARSLAST(P1);
X3A:=BARSLAST(P1)<BARSLAST(P2)&&BARSLAST(P3)>BARSLAST(P1);
DRAWCOLORKLINE(X2A&&NOT(ISDOWN),COLORCYAN,1);
DRAWCOLORKLINE(X2A&&ISDOWN,COLORCYAN,0);
DRAWCOLORKLINE(X1A&&NOT(ISDOWN),COLORRED,1);
DRAWCOLORKLINE(X1A&&ISDOWN,COLORRED,0);
DRAWCOLORKLINE(X3A&&C>=O,COLORWHITE,1);
DRAWCOLORKLINE(X3A&&C<=O,COLORWHITE,0);
DRAWLINE3(X1A,C,0,1,REF(C,1),1,0),LINETHICK2,COLORRED;
DRAWLINE3(X2A,C,0,1,REF(C,1),1,0),LINETHICK2,COLORCYAN;
DRAWLINE3(X3A,C,0,1,REF(C,1),1,0),LINETHICK2,COLORWHITE;
交易建议
实际操作时:
- 做多:当出现红色”D”信号时,在信号K线收盘价或下一根K线开盘价进场
- 做空:当出现青色”K”信号时,在信号K线收盘价或下一根K线开盘价进场
- 止损:做多设置在LL11下方,做空设置在HH11上方
- 止盈:可参考2.5-5倍ATR的目标位,或结合趋势变化平仓
这个系统结合了趋势跟踪和波动率过滤,适合趋势性较强的市场环境。建议先在模拟盘测试熟悉信号特征再实盘使用。