X_6:=LOWREF(LOW,1) AND HIGH>REF(HIGH,1);//2K高高形态
X_8:=LOW=REF(HIGH,1) AND REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,1)<=REF(HIGH,2) AND HIGHREF(HIGH,1) AND LOW<=REF(LOW,1) AND REF(HIGH,1)<=REF(HIGH,2) AND REF(LOW,1)>=REF(LOW,2) AND LOW>REF(LOW,2) AND COUNT(X_7,BARSLAST(X_6))=0;//低低形态+3K左包右、左最低
X_10:=HIGH=REF(HIGH,2) AND LOWREF(LOW,1) AND REF(HIGH,1)>=REF(HIGH,2) AND REF(LOW,1)<=REF(LOW,2) AND HIGH>REF(HIGH,2) AND COUNT(X_7,BARSLAST(X_6))=0;//低低形态+3K中包左右、中间最低
X_12:=X_6 OR X_8 OR X_10;//包含处理后低低形态
X_13:=X_7 OR X_9 OR X_11;//包含处理后高高形态
X_14:=X_13 AND COUNT(X_13,BARSLAST(X_12))=1;//低低+高高=底分型(第3元素完成)
X_15:=X_12 AND COUNT(X_12,BARSLAST(X_13))=1;//高高+低低=顶分型(第3元素完成)
X_16:=IF(X_14,LLV(LOW,1+BARSLAST(X_15)),0);//底分型第三元素
X_17:=IF(X_16,X_16,REF(X_16,BARSLAST(X_16)));//下一个最低点形成前,一直最低
X_18:=IF(X_15,HHV(HIGH,1+BARSLAST(X_14)),0);//顶分型第三元素
X_19:=IF(X_18,X_18,REF(X_18,BARSLAST(X_18)));//下一个最高点形成前,一直最高
//以上源码实现顶底分型识别
X_20:=HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1);//右包含左 X_21:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,1);//左包含右
X_22:=X_20 OR X_21;//2K包含
X_23:=HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1) AND REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,1)<=REF(HIGH,2) AND HIGH>=REF(HIGH,2);//左右包含中间
X_24:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,1) AND REF(HIGH,1)>=REF(HIGH,2) AND REF(LOW,1)<=REF(LOW,2) AND LOW<=REF(LOW,2);//中间包含左右 X_25:=X_23 OR X_24 AND (COUNT(X_15,BARSLAST(X_14))=0 OR X_15);//包含处理后底分型延续?? X_26:=HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1) AND REF(HIGH,1)<=REF(HIGH,2) AND REF(LOW,1)>=REF(LOW,2) AND LOW>=REF(LOW,2);//左右包含中间
X_27:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,2) AND REF(LOW,1)<=REF(LOW,2) AND REF(HIGH,1)>=REF(HIGH,2) AND HIGH>=REF(HIGH,2);//中间包含左右
X_28:=X_26 OR X_27 AND (COUNT(X_14,BARSLAST(X_15))=0 OR X_14);//包含处理后顶分型延续
X_29:=X_25 OR X_28;//顶底分型延续
X_30:=BARSLAST(X_17<>REF(X_17,1))-COUNT(X_22,BARSLAST(X_17<>REF(X_17,1)))+COUNT(X_29,BARSLAST(X_17<>REF(X_17,1)))>2 AND HIGH=HHV(HIGH,1+BARSLAST(X_17<>REF(X_17,1))) AND COUNT(LOWREF(X_17,1))),BARSLAST(X_17<>REF(X_17,1)))=0 AND BARSLAST(X_17<>REF(X_17,1))>0;
X_31:=SUMBARS(X_17<>REF(X_17,1),2)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),2))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),2))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),2)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),2)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),2));
X_32:=SUMBARS(X_17<>REF(X_17,1),3)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),3))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),3))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),3)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),3)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),3));
X_33:=SUMBARS(X_17<>REF(X_17,1),4)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),4))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),4))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),4)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),4)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),4));
X_34:=SUMBARS(X_17<>REF(X_17,1),5)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),5))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),5))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),5)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),5)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),5));
X_35:=SUMBARS(X_17<>REF(X_17,1),6)-COUNT(X_22,SUMBARS(X_17<>REF(X_17,1),6))+COUNT(X_29,SUMBARS(X_17<>REF(X_17,1),6))>3 AND HIGH=HHV(HIGH,SUMBARS(X_17<>REF(X_17,1),6)) AND REF(X_17,SUMBARS(X_17<>REF(X_17,1),6)-1)<=LLV(LOW,SUMBARS(X_17<>REF(X_17,1),6));
X_36:=BARSLAST(X_19<>REF(X_19,1))-COUNT(X_22,BARSLAST(X_19<>REF(X_19,1)))+COUNT(X_29,BARSLAST(X_19<>REF(X_19,1)))>2 AND COUNT(HIGH>REF(X_19,BARSLAST(X_19<>REF(X_19,1))),BARSLAST(X_19<>REF(X_19,1)))=0 AND LOW=LLV(LOW,BARSLAST(X_19<>REF(X_19,1))) AND BARSLAST(X_19<>REF(X_19,1))>0;
X_37:=SUMBARS(X_19<>REF(X_19,1),2)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),2))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),2))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),2)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),2)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),2));
X_38:=SUMBARS(X_19<>REF(X_19,1),3)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),3))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),3))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),3)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),3)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),3));
X_39:=SUMBARS(X_19<>REF(X_19,1),4)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),4))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),4))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),4)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),4)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),4));
X_40:=SUMBARS(X_19<>REF(X_19,1),5)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),5))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),5))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),5)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),5)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),5));
X_41:=SUMBARS(X_19<>REF(X_19,1),6)-COUNT(X_22,SUMBARS(X_19<>REF(X_19,1),6))+COUNT(X_29,SUMBARS(X_19<>REF(X_19,1),6))>3 AND LOW=LLV(LOW,SUMBARS(X_19<>REF(X_19,1),6)) AND REF(X_19,SUMBARS(X_19<>REF(X_19,1),6)-1)>=HHV(HIGH,SUMBARS(X_19<>REF(X_19,1),6));
X_42:=X_30 OR X_31 OR X_32 OR X_33 OR X_34 OR X_35;
X_43:=X_36 OR X_37 OR X_38 OR X_39 OR X_40 OR X_41;
X_44:=X_42 AND COUNT(X_42,1+BARSLAST(X_43))=1;
X_45:=X_43 AND COUNT(X_43,1+BARSLAST(X_42))=1;
X_46:=IF(X_44,LLV(LOW,1+BARSLAST(X_45)),0);
X_47:=IF(X_46,X_46,REF(X_46,BARSLAST(X_46)));
X_48:=IF(X_45,HHV(HIGH,1+BARSLAST(X_44)),0);
X_49:=IF(X_48,X_48,REF(X_48,BARSLAST(X_48)));
X_50:=HHV(HIGH,1+BARSLAST(X_46))=HIGH;
X_51:=LLV(LOW,1+BARSLAST(X_48))=LOW;
X_52:=CROSS(BACKSET(X_51||BARSLAST(X_50)BARSLAST(X_51)&&ISLASTBAR,BARSLAST(X_51)+1)=1,0.5);// FILTERX(X_51,BARSLAST(X_50));
X_54:=IF(X_53,LOW,0);
X_55:=IF(X_52,HIGH,0);
X_56:=IF(X_54>0,X_54,REF(X_54,BARSLAST(X_54>0)));
X_57:=IF(X_55>0,X_55,REF(X_55,BARSLAST(X_55>0)));
X_58:=BARSLAST(X_53)-COUNT(X_22,BARSLAST(X_53))+COUNT(X_29,BARSLAST(X_53))>3 AND COUNT(LOW0;
X_59:=BARSLAST(X_52)-COUNT(X_22,BARSLAST(X_52))+COUNT(X_29,BARSLAST(X_52))>3 AND COUNT(HIGH>REF(X_57,BARSLAST(X_52)),BARSLAST(X_52))=0 AND LOW=LLV(LOW,BARSLAST(X_52)) AND BARSLAST(X_52)>0;
X_60:=CROSS(BACKSET(X_59||ISLASTBAR&&BARSLAST(X_58)BARSLAST(X_59),BARSLAST(X_59)+1)=1,0.5);// FILTERX(X_59,BARSLAST(X_58));
X_62:=IF(X_61,LOW,0);
X_63:=IF(X_60,HIGH,0);
X_64:=IF(X_62>0,X_62,REF(X_62,BARSLAST(X_62>0)));
X_65:=IF(X_63>0,X_63,REF(X_63,BARSLAST(X_63>0)));
X_66:=LLV(LOW,1+BARSLAST(X_64<>REF(X_64,1) OR (X_62>0 AND X_64=REF(X_64,1))))=LOW AND COUNT(X_65<>REF(X_65,1),BARSLAST(X_64<>REF(X_64,1) OR (X_62>0 AND X_64=REF(X_64,1)))+1)=0;
X_67:=HHV(HIGH,1+BARSLAST(X_65<>REF(X_65,1) OR (X_63>0 AND X_65=REF(X_65,1))))=HIGH AND COUNT(X_64<>REF(X_64,1),BARSLAST(X_65<>REF(X_65,1) OR (X_63>0 AND X_65=REF(X_65,1)))+1)=0;//1
X_68:=CROSS(BACKSET(X_66||ISLASTBAR&&BARSLAST(X_67)BARSLAST(X_66),BARSLAST(X_66)+1)=1,0.5);// FILTERX(X_66,BARSLAST(X_67));
X_70:=IF(X_69,LOW,0),NODRAW;
X_71:=IF(X_68,HIGH,0),NODRAW;
//精准笔
DRAWSL(REFX(X_68,1),L,0,6,0,COLORRED),LINETHICK2;
DRAWSL(REFX(X_69,1),H,0,6,0,COLORGREEN),LINETHICK2;
DRAWSHIFTNUMBER(REFX(X_68,1),L,L,1,COLORYELLOW,1,5);
DRAWSHIFTNUMBER(REFX(X_69,1),H,H,1,COLORYELLOW,1,5);
//DRAWICON(X_68,H,5);
//DRAWICON(X_69,L,4),VALIGN0;
DRAWTEXT(X_68,H1.002,’顶’); DRAWTEXT(X_69,L0.998,’底’),VALIGN0;
DRAWLINE1(X_68,H,X_69,L,0),COLORYELLOW,LINETHICK2;
DRAWLINE1(X_69,L,X_68,H,0),COLORRED,LINETHICK2;
KK:=ISDOWN&&CVALUEWHEN(X_69,REF(H,1))&&COUNT(ISUP&&C>VALUEWHEN(X_69,REF(H,1)),BARSLAST(X_69))=1;
DRAWTEXT(KK,H,’卖’),RGB(255,255,255),FONTSIZE20;
DRAWTEXT(DD,L,’买’),RGB(128,255,255),VALIGN0,FONTSIZE20;
//KK,SOUND(‘A’);
//DD,SOUND(‘A’);
DRAWCOLORKLINE(BARSLAST(KK)BARSLAST(DD)&&ISDOWN,COLORRED,0);
DRAWCOLORKLINE(BARSLAST(KK)>BARSLAST(DD)&&ISDOWN=0,COLORRED,1);