分享

通达信画线段的公式,目前来看是接近飞狐公式(分三部)

 arbr 2015-12-03
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;

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约