BD1:= LOW<=LLV(LOW,6) AND REFXV(LOW,1)>LOW AND REFXV(LOW,2)>LOW AND REFXV(LOW,3)>LOW AND REFXV(LOW,4)>LOW AND REFXV(LOW,5)>LOW ;{笔高,粗选} BG1:= HIGH>=HHV(HIGH,6) AND REFXV(HIGH,1)<HIGH AND REFXV(HIGH,2)<HIGH AND REFXV(HIGH,3)<HIGH AND REFXV(HIGH,4)<HIGH AND REFXV(HIGH,5)<HIGH;{笔低,粗选} BD2:=(BD1 AND BARSLAST(BG1)>3 AND LOW<=LLV(LOW,BARSLAST(BG1)+1-4)); BDDW:=BACKSET(BD2,BARSLAST(BG1)+1-4); BD:=(BDDW AND REFXV(BDDW,1)=0)OR (BD1 AND BARSLAST(BG1)<4); BG2:=(BG1 AND BARSLAST(BD1)>3 AND HIGH>=HHV(HIGH,BARSLAST(BD1)+1-4))OR(BG1 AND BARSLAST(BD1)<4); BGDW:=BACKSET(BG2,BARSLAST(BD1)+1-4); BG:=(BGDW AND REFXV(BGDW,1)=0)OR(BG1 AND BARSLAST(BD1)<4); JQD:=BARSLAST(BD);{距前低} JQG:=BARSLAST(BG);{距前高} {DRAWTEXT(BD1,LOW,'低点')COLORRED;{测试低点} {DRAWTEXT(BG1,HIGH,'高点')COLORGREEN;{测试高点} {DRAWTEXT(BD,LOW*0.95,'Y低点')COLORCYAN;{测试低点} {DRAWTEXT(BG,HIGH*1.05,'Y高点')COLORYELLOW;{测试高点} {K线包含处理} {前面顶部左侧K线第1根是否跟前一根重合} 顶前包含:=(REF(LOW,JQG+1)<=REF(LOW,JQG+2) AND REF(HIGH,JQG+1)>=REF(HIGH,JQG+2)) OR (REF(LOW,JQG+1)>=REF(LOW,JQG+2) AND REF(HIGH,JQG+1)<=REF(HIGH,JQG+2)); {前面底部的左侧第一根K线是否跟前一根重合} 底前包含:=(REF(LOW,JQD+1)<=REF(LOW,JQD+2) AND REF(HIGH,JQD+1)>=REF(HIGH,JQD+2)) OR (REF(LOW,JQD+1)>=REF(LOW,JQD+2) AND REF(HIGH,JQD+1)<=REF(HIGH,JQD+2)); {当前位置左右侧跟前面高点点最高点是否包含判断} 当前顶右侧:=(REFXV(LOW,1)<=REFXV(LOW,2) AND REFXV(HIGH,1)>=REFXV(HIGH,2)) OR (REFXV(LOW,1)>=REFXV(LOW,2) AND REFXV(HIGH,JQG+1)<=REFXV(HIGH,2)); 当前顶左侧:=(REF(LOW,1)<=REF(LOW,2) AND REF(HIGH,1)>=REF(HIGH,2)) OR (REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,JQG+1)<=REF(HIGH,2)); 当前底右侧:=(REFXV(LOW,1)<=REFXV(LOW,2) AND REFXV(HIGH,1)>=REFXV(HIGH,2)) OR (REFXV(LOW,1)>=REFXV(LOW,2) AND REFXV(HIGH,JQG+1)<=REFXV(HIGH,2)); 当前底左侧:=(REF(LOW,1)<=REF(LOW,2) AND REF(HIGH,1)>=REF(HIGH,2)) OR (REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,JQG+1)<=REF(HIGH,2)); {包含成立取最大值} {按前面顺序} DZD:=MIN(REF(HIGH,JQD+1),REF(HIGH,JQD+2)); GZD:=MAX(REF(LOW,JQG+1),REF(LOW,JQG+2)); DQGYC:=MAX(REFXV(LOW,1),REFXV(LOW,2) );{当前是顶分型,取低点最大值} DQGZC:=MAX(REF(LOW,1),REF(LOW,2)); DQDYC:=MIN(REFXV(HIGH,1),REFXV(HIGH,2) );{当前是底分型,取高点最小值} DQDZC:=MIN(REF(HIGH,1),REF(HIGH,2)); {高低点包含关系} 不被顶前包含:=LOW<REF(LOW,JQG) AND LOW<REF(LOW,JQG+1) AND LOW<REF(LOW,JQG-1); {顶分型底分型包含判断} BDB:=BD AND LOW<IF(顶前包含,GZD,REF(LOW,JQG+1)) AND REF(HIGH,JQG)>IF(当前底左侧,DQDZC,REF(HIGH,1)) AND REF(HIGH,JQG)>IF(当前底右侧,DQDYC,REFXV(HIGH,1)) AND LOW<REF(CLOSE,JQG+2) ;{当前底分型,最后一句包含缺口情况AND LOW<REF(LOW,JQG)} BGB:=BG AND HIGH>IF(底前包含,DZD,REF(HIGH,JQD+1)) AND REF(LOW,JQD)<IF(当前顶右侧,DQGYC,REFXV(LOW,1)) AND REF(LOW,JQD)<IF(当前顶左侧,DQGZC,REF(LOW,1))AND HIGH>REF(CLOSE,JQD+2) ;{当前顶分型,最后一句是包含缺口情况AND HIGH>REF(HIGH,JQD)} {DRAWTEXT(BDB,LOW*0.98,'低点')COLORRED;{测试低点} {DRAWTEXT(BGB,HIGH,'高点')COLORGREEN;{测试高点} {HIGH*1.05;} {合并同向高低点} JQD1:=BARSLAST(BDB);{距前低} JQG1:=BARSLAST(BGB);{距前高} XZBG:=BGB AND BARSLAST(BDB)>3 AND HIGH>=HHV(HIGH,JQD1+1-4) ; XZBG1:=BGB AND BARSLAST(BDB)<4 ;{保留近高} GG:=BACKSET(XZBG,JQD1);{确立合并高点} ZGD:=(GG AND REFXV(GG,1)=0)OR XZBG1;{获取特殊高序列} XZBD:=BDB AND BARSLAST(BGB)>3 AND LOW<=LLV(LOW,BARSLAST(BGB)+1-4) ;{修改过,不以新的高点序列为标准进行合并,因为跟新的高序列对照合并,保证不了最低} XZBD1:=BDB AND BARSLAST(BGB)<4;{保留近低} DD:=BACKSET(XZBD,BARSLAST(BGB));{确立合并低点} ZDD:=(DD AND REFXV(DD,1)=0) OR XZBD1;{获取特殊低序列} {精选点} {DRAWTEXT(ZGD,HIGH,'S高点')COLORWHITE DRAWABOVE; DRAWTEXT(ZDD,LOW,'S低点')COLORYELLOW DRAWABOVE; {DRAWTEXT(BDB,LOW,'P低点')COLORCYAN DRAWABOVE; DRAWTEXT(BGB,HIGH,'P高点')COLORRED DRAWABOVE; {找出特征低点} TZD:=BACKSET(ZDD AND BARSLAST(ZGD)<4 ,BARSLAST(ZGD));{特征低点向前赋值} TZDD:=TZD AND REFXV(TZD,1)=0;{定位特征低点} TZG:=BACKSET(ZGD AND BARSLAST(ZDD)<4 ,BARSLAST(ZDD)); TZGG:=TZG AND REFXV(TZG,1)=0; JZD:=TZDD AND REF(TZGG,BARSLAST(ZGD))=0 AND REF(REF(TZDD,BARSLAST(ZDD)),1)=0;{找出特征低点} TZDQC:=BACKSET(JZD,BARSLAST(ZGD));{这地方等等再思考} TZDDDDFZ:=TZDQC AND REFXV(TZDQC,1)=0; {DRAWTEXT(TZDDDDFZ,LOW*0.95,'去除低点')COLORMAGENTA DRAWABOVE;} TZDQCHD:=ZDD AND TZDDDDFZ=0;{特征低去除后低点,产生新低点序列记为TZDQCHD} {DRAWTEXT(TZDQCHD,LOW*0.98,'新低序列')COLORYELLOW DRAWABOVE; {合并高点} DYXGD:=ZGD AND BARSLAST(TZDQCHD)>3 AND HIGH>=HHV(HIGH,BARSLAST(TZDQCHD)+1-4);{相对上一新低点,合并高点,定义新高点} FZXGD:=BACKSET(DYXGD,BARSLAST(TZDQCHD) );{赋值新高点,合并} {合并低点后形成的新高点} TZDQCHG:=(FZXGD AND REFXV(FZXGD,1)=0)OR (BARSLAST(TZDQCHD)<4 AND ZGD); {DRAWTEXT(TZDQCHG,HIGH,'新高序列')COLORCYAN DRAWABOVE; {找出特征高点} TZD1:=BACKSET(TZDQCHD AND BARSLAST(TZDQCHG)<4 ,BARSLAST(TZDQCHG));{标记特征低点} TZDD1:=TZD1 AND REFXV(TZD1,1)=0;{区分特征低点序列} TZG1:=BACKSET(TZDQCHG AND BARSLAST(TZDQCHD)<4 ,BARSLAST(TZDQCHD));{标记特征高点} TZGG1:=TZG1 AND REFXV(TZG1,1)=0;{区分特征高点序列} JZG1:=TZGG1 AND REF(TZDD1,BARSLAST(TZDQCHD))=0 AND REF(REF(TZGG1,BARSLAST(TZDQCHG)),1)=0;{找出特征高点} TZGQC1:=BACKSET(JZG1,BARSLAST(TZDQCHD));{去除特征高} TZGQCFZ:=TZGQC1 AND REFXV(TZGQC1,1)=0;{标记定位特征高} {DRAWTEXT(TZGQCFZ,HIGH*1.05,'去除高点')COLORMAGENTA;} TZGQCHG1:=TZDQCHG AND TZGQCFZ=0;{特征高去除后低点,产生新高点序列记为TZGQCHG1}; {合并低点} DYXDD1:=TZDQCHD AND LOW<=LLV(LOW,BARSLAST(TZGQCHG1)+1-4);{相对上一新高点,合并低点,定义新低点} FZXDD1:=BACKSET(DYXDD1,BARSLAST(TZGQCHG1));{赋值新高点,合并} TZGQCHD1:=FZXDD1 AND REFXV(FZXDD1,1)=0;{合并低点后形成的新低点} BBD:=TZGQCHD1; BBG:=TZGQCHG1; {DRAWTEXT(BBD,LOW,'P低点')COLORCYAN DRAWABOVE; DRAWTEXT(BBG,HIGH,'P高点')COLORRED DRAWABOVE;} HBWMDD:=BBD AND LOW<=LLV(LOW,BARSLAST(BBG)+1-4);{完美低点是最低} FZWMDD:=BACKSET(HBWMDD,BARSLAST(BBG));{赋值} XBBD1:=(FZWMDD AND REFXV(FZWMDD,1)=0)OR (ISLASTBAR AND BARSLAST(BBD)>BARSLAST(BBG) AND BARSLAST(BBG)>=4 AND LOW<REF(LOW,BARSLAST(BBG)) OR(BARSTATUS=1 AND HIGH<REFXV(HIGH,5)) ) ;{最后定位完美低点,后面补充上当前K线,方便对比} {最后合并高点} HBWWGD:=BBG AND HIGH>=HHV(HIGH,BARSLAST(XBBD1)+1-4);{完美高点是最高价} FZWMGD:=BACKSET(HBWWGD,BARSLAST(XBBD1));{赋值} {补充当日K线} XBBG1:=(FZWMGD AND REFXV(FZWMGD,1)=0)OR ((ISLASTBAR AND BARSLAST(BBG)>BARSLAST(BBD) AND BARSLAST(BBD)>=4 AND HIGH>REF(HIGH,BARSLAST(BBD))) OR (BARSTATUS=1 AND HIGH>REFXV(HIGH,5) ) ); {DRAWTEXT(XBBD1,LOW,'P低点')COLORCYAN DRAWABOVE; DRAWTEXT(XBBG1,HIGH,'P高点')COLORRED DRAWABOVE;} {用初始高低点和最新高低点进行合并}; JQD6:=BARSLAST(XBBD1);{距前低} JQG6:=BARSLAST(XBBG1);{距前高} {DRAWTEXT(BD1,LOW,'低点')COLORRED;{测试低点} {DRAWTEXT(BG1,HIGH,'高点')COLORGREEN;{测试高点} {DRAWTEXT(BD,LOW*0.95,'Y低点')COLORCYAN;{测试低点} {DRAWTEXT(BG,HIGH*1.05,'Y高点')COLORYELLOW;{测试高点} {K线包含处理} {前面顶部左侧K线第1根是否跟前一根重合} 顶前包含6:=(REF(LOW,JQG6+1)<=REF(LOW,JQG6+2) AND REF(HIGH,JQG6+1)>=REF(HIGH,JQG6+2)) OR (REF(LOW,JQG6+1)>=REF(LOW,JQG6+2) AND REF(HIGH,JQG6+1)<=REF(HIGH,JQG6+2)); {前面底部的左侧第一根K线是否跟前一根重合} 底前包含6:=(REF(LOW,JQD6+1)<=REF(LOW,JQD6+2) AND REF(HIGH,JQD6+1)>=REF(HIGH,JQD6+2)) OR (REF(LOW,JQD6+1)>=REF(LOW,JQD6+2) AND REF(HIGH,JQD6+1)<=REF(HIGH,JQD6+2)); {当前位置左右侧跟前面高点点最高点是否包含判断} 当前顶右侧6:=(REFXV(LOW,1)<=REFXV(LOW,2) AND REFXV(HIGH,1)>=REFXV(HIGH,2)) OR (REFXV(LOW,1)>=REFXV(LOW,2) AND REFXV(HIGH,JQG6+1)<=REFXV(HIGH,2)); 当前顶左侧6:=(REF(LOW,1)<=REF(LOW,2) AND REF(HIGH,1)>=REF(HIGH,2)) OR (REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,JQG6+1)<=REF(HIGH,2)); 当前底右侧6:=(REFXV(LOW,1)<=REFXV(LOW,2) AND REFXV(HIGH,1)>=REFXV(HIGH,2)) OR (REFXV(LOW,1)>=REFXV(LOW,2) AND REFXV(HIGH,JQG6+1)<=REFXV(HIGH,2)); 当前底左侧6:=(REF(LOW,1)<=REF(LOW,2) AND REF(HIGH,1)>=REF(HIGH,2)) OR (REF(LOW,1)>=REF(LOW,2) AND REF(HIGH,JQG6+1)<=REF(HIGH,2)); {包含成立取最大值} {按前面顺序} DZD6:=MIN(REF(HIGH,JQD6+1),REF(HIGH,JQD6+2)); GZD6:=MAX(REF(LOW,JQG6+1),REF(LOW,JQG6+2)); DQGYC6:=MAX(REFXV(LOW,1),REFXV(LOW,2) );{当前是顶分型,取低点最大值} DQGZC6:=MAX(REF(LOW,1),REF(LOW,2)); DQDYC6:=MIN(REFXV(HIGH,1),REFXV(HIGH,2) );{当前是底分型,取高点最小值} DQDZC6:=MIN(REF(HIGH,1),REF(HIGH,2)); {高低点包含关系} 不被顶前包含6:=LOW<REF(LOW,JQG6) AND LOW<REF(LOW,JQG6+1) AND LOW<REF(LOW,JQG6-1); {顶分型底分型包含判断} BDB6:=BD AND LOW<IF(顶前包含6,GZD6,REF(LOW,JQG6+1)) AND REF(HIGH,JQG6)>IF(当前底左侧6,DQDZC6,REF(HIGH,1)) AND REF(HIGH,JQG6)>IF(当前底右侧6,DQDYC6,REFXV(HIGH,1)) AND LOW<REF(CLOSE,JQG6+2) ;{当前底分型,最后一句包含缺口情况AND LOW<REF(LOW,JQG)} BGB6:=BG AND HIGH>IF(底前包含6,DZD6,REF(HIGH,JQD6+1)) AND REF(LOW,JQD6)<IF(当前顶右侧6,DQGYC6,REFXV(LOW,1)) AND REF(LOW,JQD6)<IF(当前顶左侧6,DQGZC6,REF(LOW,1))AND HIGH>REF(CLOSE,JQD6+2) ;{当前顶分型,最后一句是包含缺口情况AND HIGH>REF(HIGH,JQD)}; XBBD6:=BDB6 AND BARSLAST(XBBG1)>3 AND LOW<=LLV(LOW,BARSLAST(XBBG1)+1-4);{新笔低条件} FZZZBBD:=BACKSET(XBBD6,BARSLAST(XBBG1)+1-4);{赋值新笔低} XBBD2:=FZZZBBD AND REFXV(FZZZBBD,1)=0;{定位新笔低} XBBG6:=BGB6 AND BARSLAST(XBBD1)>3 AND HIGH>=HHV(HIGH,BARSLAST(XBBD1)+1-4);{新笔高条件} FZZZBBG:=BACKSET(XBBG6,BARSLAST(XBBD1)+1-4);{赋值新笔高} XBBG2:=FZZZBBG AND REFXV(FZZZBBG,1)=0;{定位新笔高} {DRAWTEXT(XBBD2,LOW,'新低点')COLORWHITE; DRAWTEXT(XBBG2,HIGH,'新高点')COLORYELLOW DRAWABOVE; {DRAWTEXT(XBBD2=0 AND XBBD1,LOW*0.95,'被去低点')COLORBLUE; DRAWTEXT(XBBG2=0 AND XBBG1,HIGH*1.05,'被去高点')COLORMAGENTA DRAWABOVE; {合并新笔高笔低} XBBG3:=XBBG2 AND BARSLAST(XBBD2)>3 AND HIGH>=HHV(HIGH,BARSLAST(XBBD2)+1-4); FZXBBG3:=BACKSET(XBBG3,BARSLAST(XBBD2)+1-4); XBBG:=(FZXBBG3 AND REFXV(FZXBBG3,1)=0)OR(XBBG2 AND BARSLAST(XBBD2)<4 ); XBBD3:=XBBD2 AND BARSLAST(XBBG2)>3 AND LOW<=LLV(LOW,BARSLAST(XBBG2)+1-4); FZXBBD3:=BACKSET(XBBD3,BARSLAST(XBBG2)+1-4); XBBD:=(FZXBBD3 AND REFXV(FZXBBD3,1)=0)OR(XBBD2 AND BARSLAST(XBBG2)<4 ); {验证} {DRAWTEXT(XBBD4,LOW*0.95,'4低点')COLORLIBLUE; DRAWTEXT(XBBG4,HIGH*1.05,'4高点')COLORYELLOW; {DRAWTEXT(XBBD2 AND XBBD4=0,LOW,'前低点')COLORRED; DRAWTEXT(XBBG2 AND XBBG4=0,HIGH,'前高点')COLORRED;}; BGMACD:=MA(MACD.MACD,BARSLAST(XBBD))*(BARSLAST(XBBD)); BGMACD1:=VAR2STR(BGMACD,2); BDMACD:=MA(MACD.MACD,BARSLAST(XBBG))*(BARSLAST(XBBG)); BDMACD1:=VAR2STR(BDMACD,2); DRAWTEXT(XBBD AND BARSSINCE(XBBD)>5,LOW*0.98,BDMACD1)COLORYELLOW; DRAWTEXT(XBBG AND BARSSINCE(XBBG)>5,HIGH*1.02,BGMACD1)COLORGREEN; {DRAWTEXT(XBBD,LOW,'笔低')COLORYELLOW; {DRAWTEXT(XBBG,HIGH,'笔高')COLORGREEN;} DRAWLINE(XBBG,HIGH,XBBD,LOW,0) DOTLINE; DRAWLINE(XBBD,LOW,XBBG,HIGH,0)DOTLINE ; {DRAWTEXT(JZG1,HIGH*0.95,'被去除点')COLORGREEN;}; {向上线段向前确定:当前是笔高,笔高高于前高,笔低高于前低并且低于前高。} BDGYQD:=XBBD AND LOW>REF(REF(LOW,BARSLAST(XBBD)),1);{标记笔低高于前个笔低} BDGYQD1:=BACKSET(BDGYQD,BARSLAST(XBBG)); TZBD:=BDGYQD1 AND REFXV(BDGYQD1,1)=0;{确定特征笔低} XSXD:=(XBBG AND HIGH>REF(REF(HIGH,BARSLAST(XBBG)),1) AND REF(LOW,BARSLAST(XBBD))<REF(REF(HIGH,BARSLAST(XBBG)),1)AND REF(TZBD,BARSLAST(XBBD)))OR(BARSTATUS=1 AND XBBG) ; {高点大于前高,前低点大于前前低,前低小于前高} {验证调试向上笔} {DRAWTEXT(XSXD,HIGH,'向上点')COLORYELLOW DRAWABOVE; {向下线段确定,当前是笔低,笔低低于前低,笔高低于前高,} BGDYQG:=XBBG AND HIGH<REF(REF(HIGH,BARSLAST(XBBG)),1);{笔高低于前笔高} BGDYQG1:=BACKSET(BGDYQG,BARSLAST(XBBD));{标记特征笔高} TZBG:=BGDYQG1 AND REFXV(BGDYQG1,1)=0;{确定特征笔高} BDDYQD:=XBBD AND LOW<REF(REF(LOW,BARSLAST(XBBD)),1);{标记笔低低于前个笔低} XXXD:=(BDDYQD AND REF(TZBG,BARSLAST(XBBG)) AND REF(HIGH,BARSLAST(BBG))>REF(REF(HIGH,BARSLAST(XBBD)),1))OR(BARSTATUS=1 AND XBBD);{向下线段确定,当前是笔低,笔低低于前低,笔高低于前高} {验证调试向下笔} {DRAWTEXT(XXXD,LOW,'向下点')COLORWHITE;} {破坏笔} {形成向下线段必须的破坏笔:笔低高于上一前高} BPHKSDGD:=XBBG AND REFXV(LOW,BARSNEXT(XBBD))<REF(REF(HIGH,BARSLAST(XBBG)),1) AND HIGH>REFXV(REFXV(HIGH,BARSNEXT(XBBG)),1);{向下破坏笔的开始高点,后一个高点不能是向上点} BJKSGD:=BACKSET(BPHKSDGD,BARSLAST(XBBD));{特征高点赋值} BJKSGD1:=BJKSGD AND REFXV(BJKSGD,1)=0;{定位向下破坏笔高点位置} {验证向下破坏笔开始高点} {DRAWTEXT(BJKSGD1,HIGH,'下破高点')COLORGREEN DRAWABOVE; {确立破坏笔低点} BPHZZDDD:=XBBD AND REF(BJKSGD1,BARSLAST(XBBG));{破坏笔低点,确立条件} FZPHBDD:=BACKSET(BPHZZDDD,BARSLAST(XBBG));{破坏笔赋值} PHBDD:=FZPHBDD AND REFXV(FZPHBDD,1)=0;{定位向下破坏笔低点位置} {验证破坏笔低点} {DRAWTEXT(PHBDD,LOW,'破坏笔低点')COLORRED;} {如果,连接向下笔的高点,同时是向下线段形成点,向下破坏笔不能被后面的连续向上笔刺穿,否则够不成真正破坏笔} {粗线段画向下破坏笔} {DRAWLINE(BJKSGD1,HIGH,PHBDD,LOW,0) COLORMAGENTA LINETHICK3;} {XXXCB:=XBBD AND LOW>; JDXXXD:=XXXD AND REF(REF(PHBDD,BARSLAST(XBBD)),1);{绝对向下线段形成笔低点:连续破坏笔,并且形成向下线段的重叠条件的笔低,绝对的向下线段} {DRAWTEXT(JDXXXD,LOW*0.95,'绝对向下')COLORYELLOW;} {形成向上线段绝对形成形成:满足向上点,并且前一笔是破坏笔} {确立向上破坏笔成立:当前笔高,高点大于前前低,后一个低点低于前低} XSPHBDD:=XBBD AND REFXV(HIGH,BARSNEXT(XBBG))>REF(REF(LOW,BARSLAST(XBBD)),1) AND LOW<REFXV(REFXV(LOW,BARSNEXT(XBBD)),1);{确立向上破坏笔的笔低条件} XSPHBDDFZ:=BACKSET(XSPHBDD,XBBG);{赋值} DWXSPHBDD:=XSPHBDDFZ AND REFXV(XSPHBDDFZ,1)=0;{定位向上破坏笔低点} {验证向上破坏笔笔低} {DRAWTEXT(DWXSPHBDD,LOW*0.9,'向上转折笔')COLORRED; {确定破坏笔高点} XSPHBGD:=XBBG AND REF(DWXSPHBDD,BARSLAST(XBBD));{向上破坏笔高点} XSPHBGDFZ:=BACKSET(XSPHBGD,BARSLAST(XBBD));{赋值特征比高} DWXSPHBGD:=XSPHBGDFZ AND REFXV(XSPHBGDFZ,1)=0;{定位破坏笔高点} {验证向上破坏笔高点} {DRAWTEXT(DWXSPHBGD,HIGH*1.05,'向上破坏笔高')COLORBLUE; {向上确定点} JDXSXD:=XSXD AND REF(REF(DWXSPHBGD,BARSLAST(XBBG)),1); {验证向上线段开始点} {DRAWTEXT(JDXSXD,HIGH*1.05,'绝对向上')COLORWHITE;} SZZD:=JDXSXD OR(BARSTATUS=1 AND XBBG);{上转折点,确立形成向上线段} XZZD:=JDXXXD OR(BARSTATUS=1 AND XBBD);{下转折点,确立形成向下线段} {取得最后一个上下转折点} {取上转折点} QLSZZD:=BACKSET(SZZD,BARSLAST(XZZD));{由上转折点向前赋值到下转折点} ZZSZZD:=QLSZZD AND REFXV(QLSZZD,1)=0;{定位最终的上转折点} {验证} {DRAWTEXT(ZZSZZD,HIGH,'向上转折点')COLORYELLOW}; {取下转折点} QLXZZD:=BACKSET(XZZD,BARSLAST(SZZD));{有下转折点向前赋值到上转折点} ZZXZZD:=QLXZZD AND REFXV(QLXZZD,1)=0;{定位最终下转折点} {验证} {DRAWTEXT(ZZXZZD,LOW,'向下转折点')COLORBROWN;} {取得向上转折点到前一个下转折间隙最低点} JQZDD:= BARSLAST(ZZXZZD)< BARSLAST(JDXSXD)AND XBBD AND LOW<=LLV(LOW,BARSLAST(ZZXZZD)+1) ; FZTSDD:=BACKSET(JQZDD,BARSLAST(ZZXZZD)+1);{赋值特殊低点} TSDD:=(FZTSDD AND REFXV(FZTSDD,1)=0)OR(CURRBARSCOUNT=N3)OR(CURRBARSCOUNT=N4);{定位特殊低点,补充上市日K线} {取得向下转折点到前一个向上点间隙最高点}; JQZGD:= BARSLAST(JDXXXD)>BARSLAST(ZZSZZD) AND XBBG AND HIGH>=HHV(HIGH,BARSLAST(ZZSZZD)+1) ; FZTSGD:=BACKSET(JQZGD,BARSLAST(ZZSZZD)+1);{赋值特殊高低} TSGD:=(FZTSGD AND REFXV(FZTSGD,1)=0)OR(CURRBARSCOUNT=N2)OR(CURRBARSCOUNT=N1);{定位特殊高低} DRAWTEXT(TSDD,LOW,'线低')COLORBROWN; DRAWTEXT(TSGD,HIGH,'线高')COLORYELLOW; DRAWLINE(TSDD,LOW,TSGD,HIGH,0)COLORYELLOW LINETHICK2; DRAWLINE(TSGD,HIGH,TSDD,LOW,0)COLORWHITE LINETHICK2; HIGH*1.03 DOTLINE COLORBLACK; |
|