极品MACD优化后效果提升明显通达信公式 副图 源码附图
VA1:=HHVBARS(MACD,BARSLAST(MACD<0)+1);
VA2:=CROSS(BACKSET(CROSS(0,MACD),REF(VA1,1)+2),0.5);
QG:=CROSS(BACKSET(CROSS(0,MACD) OR (ISLASTBAR AND MACD>0),REF(VA1,1)+2),0.5);
前高:DRAWLINE(VA2,MACD,REF(VA2,1),REF(MACD,1),1),COLORMAGENTA;
VA3:=LLVBARS(MACD,BARSLAST(MACD>0)+1);
VA4:=CROSS(BACKSET(CROSS(MACD,0),REF(VA3,1)+2),0.5);
BD:=BARSLAST(FILTERX(CROSS(0,MACD),BARSCOUNT(C)));
前低:DRAWLINE(VA4,MACD,REF(VA4,1),REF(MACD,1),1);
BDTJ:=IF(MACD<0,FILTERX(MACD=LLV(MACD,BARSLAST(MACD>0)),
BARSCOUNT(C)),DRAWNULL);
TSBDTJ:=BARSLAST(BDTJ);
BDZH:=FILTERX(MACD<CONST(LLV(MACD,BD+1)),BARSCOUNT(C));
BDTS:=BARSLAST(BDZH);
本低:IF(BD+1>=1,CONST(LLV(MACD,BD+1)),DRAWNULL);
BDCL:=CROSS(COUNT(CROSS(MACD>本低/2 AND MACD<0,0.5),TSBDTJ)=1,0.5) AND TSBDTJ>=0;
终点:=IF(ISLASTBAR AND MACD>0 AND MACD=HHV(MACD,BARSLAST(MACD<0)),1,
IF(FILTERX(QG,BARSCOUNT(C)),2,DRAWNULL));
UU:=(终点=1 OR 终点=2) AND MACD>0;
ZZ:=FILTERX(UU,BARSCOUNT(C));
本高:DRAWLINE(ZZ,MACD,REF(ZZ,1),REF(MACD,1),1),COLORWHITE;
横线:=CONST(REF(MACD,BARSLAST(ZZ)));
WW:=MACD>横线;
起始点:=FILTERX(REFX(BARSLAST(WW),1)=1,BARSCOUNT(C));
天数:BARSLAST(起始点),COLORYELLOW,NODRAW;
上横线:DRAWLINE(起始点,横线,ZZ,横线,0),COLORGREEN,DOTLINE;
下横线:DRAWLINE(BDZH,CONST(LLV(MACD,BD+1)),BDTJ=1,MACD,0),COLOR8080FF,DOTLINE;
DRAWNUMBER(BDTJ,CONST(LLV(MACD,BD+1))*0.9,BDTS);
DRAWNUMBER(ZZ,上横线*1.1,天数);
TJ:=IF(起始点,BARSNEXT(ZZ),DRAWNULL);
红柱数量:IF(天数>0 AND 天数<=REF(TJ,天数),SUM(MACD>0,天数),DRAWNULL),COLORWHITE,NODRAW;
横线起始价:REF(C,天数),NODRAW;
空间评估:(横线起始价-C)/C*100,NODRAW;
TT:=BARSLAST(ZZ);
WQG:=CROSS(COUNT(CROSS(MACD<本高/2 AND MACD>0,0.5),ZZ)=1,0.5) AND ZZ>=0;
STICKLINE(MACD>前高 AND 本高>前高 AND BARSLAST(CROSS(MACD<本高/2,0.5))>0 AND
MACD>(前高+本高)/2,MACD,前高,1,0),COLORYELLOW;
前高本高二分位:IF(MACD>0 AND 本高!=前高,DRAWLINE(WQG,(前高+本高)/2,REF(WQG,1),REF((前高+本高)/2,1),1)
,DRAWNULL),COLORC0C000,DOTLINE;
AA:=STRCAT(STRCAT(STRCAT('〖','上升空间'),'〗'),CON2STR(IF(空间评估,空间评估,
DRAWNULL),2));
DRAWTEXT(WQG,MACD*1.1,'本高成立'),COLORWHITE;
DRAWTEXT(BDCL,MACD*1.1,'本低成立'),COLORWHITE;
STICKLINE(MACD>前高,MACD,前高,1,0),COLORYELLOW;
STICKLINE(WQG,MACD,0,1,0),COLORGREEN;
STICKLINE(MACD<0 AND MACD<前低 AND 前低<0,MACD,前低,1,0),COLORBLUE;
B1:=IF(CROSS(MACD<0,0.5),BARSNEXT(BDTJ),DRAWNULL);
TSB1:=BARSLAST(MACD>0)-1;
STICKLINE(BARSLAST(BDCL)>=0 AND MACD<前低 AND MACD<0,MACD,前低,1,0),COLORGREEN;
STICKLINE(BDCL,MACD,0,1,0),COLORWHITE;
STICKLINE(MACD>前高 AND 本高>前高 AND BARSLAST(WQG)>0,
MACD,前高,1,0),COLORRED;
DRAWTEXT(VA2 AND VA2!=UU,(MACD/10)*9,'前');
DRAWTEXT(VA2 AND VA2!=UU,MACD/10,'高');
DRAWTEXT(ZZ,(MACD/10)*9,'本'),COLORWHITE;
DRAWTEXT(ZZ,MACD/10,'高'),COLORWHITE;
DRAWTEXT(BDTJ,(MACD/10)*9,'低'),COLORRED;
DRAWTEXT(BDTJ,MACD/10,'本'),COLORRED;
IF(BARSLAST(BDCL)>=0,本低/2,DRAWNULL),COLORRED,DOTLINE;
{股票指标网WW.}
DRAWTEXT_FIX(1,0.05,0.04,0,'【黑马拉升由两个阶段构成:同步上涨阶段(黄芯柱)
和惯性上涨阶段(背离阶段、红芯柱)】'),COLORFFFF00;
未来函数检测结果如下:
该公式包含未来函数:BACKSET
该公式包含未来函数:BARSNEXT
该公式包含未来函数:REFX
解密、编写股票、期货策略请联系QQ或微信同号:88652583
相关股票指标公式
原理解析:
VA1赋值:HHVBARS(MACD,上次MACD<0距今天数+1)
VA2赋值:CROSS(BACKSET(CROSS(0,MACD),1日前的VA1+2),0.5)
QG赋值:CROSS(BACKSET(CROSS(0,MACD) OR (ISLASTBAR AND MACD>0),1日前的VA1+2),0.5)
输出前高:DRAWLINE(VA2,MACD,1日前的VA2,1日前的MACD,1),画洋红色
VA3赋值:LLVBARS(MACD,上次MACD>0距今天数+1)
VA4赋值:CROSS(BACKSET(CROSS(MACD,0),1日前的VA3+2),0.5)
BD赋值:上次FILTERX(0上穿MACD,C的有效数据周期数距今天数)
输出前低:DRAWLINE(VA4,MACD,1日前的VA4,1日前的MACD,1)
BDTJ赋值:IF(MACD<0,FILTERX(MACD=LLV(MACD,上次MACD>0距今天数),
C的有效数据周期数),DRAWNULL)
TSBDTJ赋值:上次BDTJ距今天数
BDZH:=FILTERX(MACD
BDTS:=上次BDZH距今天数
输出本低:IF(BD+1>=1,CONST(BD+1日内MACD最低值),DRAWNULL)
BDCL:=CROSS(COUNT(CROSS(MACD>本低/2 AND MACD<0,0.5),TSBDTJ)=1,0.5) AND TSBDTJ>=0
终点赋值:IF(ISLASTBAR AND MACD>0 AND MACD=HHV(MACD,上次MACD<0距今天数),1,
IF(FILTERX(QG,C的有效数据周期数),2,DRAWNULL))
UU赋值:(终点=1 OR 终点=2) AND MACD>0
ZZ赋值:FILTERX(UU,C的有效数据周期数)
输出本高:DRAWLINE(ZZ,MACD,1日前的ZZ,1日前的MACD,1),画白色
横线赋值:CONST(REF(MACD,上次ZZ距今天数))
WW赋值:MACD>横线
起始点赋值:FILTERX(REFX(上次WW距今天数,1)=1,C的有效数据周期数)
输出天数:上次起始点距今天数,画黄色,NODRAW
上输出横线:DRAWLINE(起始点,横线,ZZ,横线,0),画绿色,DOTLINE
下输出横线:DRAWLINE(BDZH,CONST(BD+1日内MACD最低值),BDTJ=1,MACD,0),COLOR8080FF,DOTLINE
DRAWNUMBER(BDTJ,CONST(BD+1日内MACD最低值)*0.9,BDTS)
DRAWNUMBER(ZZ,上横线*1.1,天数)
TJ赋值:IF(起始点,BARSNEXT(ZZ),DRAWNULL)
输出红柱数量:IF(天数>0 AND 天数<=天数日前的TJ,天数的MACD>0日累和,DRAWNULL),画白色,NODRAW
横线起始价:天数日前的C,NODRAW
输出空间评估:(横线起始价-C)/C*100,NODRAW
TT赋值:上次ZZ距今天数
WQG赋值:CROSS(COUNT(CROSS(MACD<本高/2 AND MACD>0,0.5),ZZ)=1,0.5) AND ZZ>=0
STICKLINE(MACD>前高 AND 本高>前高 AND 上次MACD<本高/2上穿0.5距今天数>0 AND
MACD>(前高+本高)/2,MACD,前高,1,0),画黄色
前高本高二分位:IF(MACD>0 AND 本高!=前高,DRAWLINE(WQG,(前高+本高)/2,1日前的WQG,REF((前高+本高)/2,1),1)
,DRAWNULL),COLORC0C000,DOTLINE
如果空间评估返回空间评估否则返回
DRAWNULL
当满足条件WQG时,在MACD*1.1和'本高成立'位置书写文字
当满足条件BDCL时,在MACD*1.1和'本低成立'位置书写文字
当满足条件MACD>前高时,在MACD和前高之间画柱状线
当满足条件WQG时,在MACD和0之间画柱状线
当满足条件MACD<0 AND MACD<前低 AND 前低<0时,在MACD和前低之间画柱状线
B1赋值:IF(MACD<0上穿0.5,BARSNEXT(BDTJ),DRAWNULL)
TSB1赋值:上次MACD>0距今天数-1
STICKLINE(上次BDCL距今天数>=0 AND MACD<前低 AND MACD<0,MACD,前低,1,0),画绿色
当满足条件BDCL时,在MACD和0之间画柱状线
STICKLINE(MACD>前高 AND 本高>前高 AND 上次WQG距今天数>0,
MACD,前高,1,0),画红色
DRAWTEXT(VA2 AND VA2!=UU,(MACD/10)*9,'前')
当满足条件VA2 AND VA2!=UU时,在MACD/10和'高'位置书写文字
DRAWTEXT(ZZ,(MACD/10)*9,'本'),画白色
当满足条件ZZ时,在MACD/10和'高'位置书写文字
DRAWTEXT(BDTJ,(MACD/10)*9,'低'),画红色
当满足条件BDTJ时,在MACD/10和'本'位置书写文字
IF(上次BDCL距今天数>=0,本低/2,DRAWNULL),画红色,DOTLINE
当满足条件1时,在横轴0.05纵轴0.04位置书写文字