来函数检测结果如下:
该公式没有未来函数
SHORT:=12;LONG:=26;M:=12;
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,M);
MACD:=2*(DIF-DEA);
KK:=IF(DIF>DEA,5,-5);
JCSC:=(M-1)/(M+1)*DEA/(1-2/(M+1));{计算出金叉死叉时的DIFF值}
DD:=(MACD/2+(DEA*(M-1)/(M+1)))/(1-2/(M+1));{计算出明日MACD=MACD时的DIFF值}
DIF拐头价:=(DIF*(SHORT+1)*(LONG+1)-(LONG+1)*(SHORT-1)*EMA(C,SHORT)+(SHORT+1)*(LONG-1)*EMA(C,LONG))/(2*((LONG+1)-(SHORT+1)))COLORGREEN,POINTDOT;
金死叉价:=(JCSC*(SHORT+1)*(LONG+1)-(LONG+1)*(SHORT-1)*EMA(C,SHORT)+(SHORT+1)*(LONG-1)*EMA(C,LONG))/(2*((LONG+1)-(SHORT+1))),NODRAW;
柱变向价:=(DD*(SHORT+1)*(LONG+1)-(LONG+1)*(SHORT-1)*EMA(C,SHORT)+(SHORT+1)*(LONG-1)*EMA(C,LONG))/(2*((LONG+1)-(SHORT+1))),COLORYELLOW,POINTDOT;
黄铢消失见顶:=IF(柱变向价>=DIF拐头价,柱变向价,DRAWNULL),COLORYELLOW,CIRCLEDOT,LINETHICK1;
上拐:IF(DIF拐头价<柱变向价,DIF拐头价,DRAWNULL),COLORRED,LINETHICK4;
下拐:IF(DIF拐头价>=柱变向价,DIF拐头价,DRAWNULL),COLOR33FF33,POINTDOT,LINETHICK4;
ZJ:=上拐,COLOR0000FF;
HY:=金死叉价,COLORFF00FF;
IF(ZJ>REF(ZJ,1),ZJ,DRAWNULL),COLORRED,LINETHICK2;
IF(HY>REF(HY,1),HY,DRAWNULL),COLORMAGENTA,LINETHICK2,NODRAW;
IF(HY<REF(HY,1),HY,DRAWNULL),COLORBLUE,LINETHICK2,NODRAW;
STICKLINE(C>ZJ AND C>O,H,C,0,0 ),COLORRED;
STICKLINE(C>ZJ AND C>O,L,O,0,0 ),COLORRED;
STICKLINE(C>ZJ AND C>O,O,C,2.8,1),COLORRED;
STICKLINE(C>ZJ AND C<=O,H,L,0,0 ),COLORRED;
STICKLINE(C>ZJ AND C<=O,O,C,2.8,0),COLORRED;
STICKLINE(CLOSE=ZJ,H,L,3,0),COLORWHITE;
STICKLINE(CLOSE<ZJ,H,L,0,0),COLORYELLOW;
STICKLINE(CLOSE<ZJ,O,C,2.5,0),COLORYELLOW;
STICKLINE(C<HY AND C>O,H,C,0,0),COLORCYAN;
STICKLINE(C<HY AND C>O,O,L,0,0),COLORCYAN;
STICKLINE(C<HY AND C>O,O,C,2.8,1),COLORCYAN;
STICKLINE(C<HY AND C<=O,H,L,0,0),COLORCYAN;
STICKLINE(C<HY AND C<=O,O,C,2.8,0),COLORCYAN;
HD0:=CROSS(DIF,DEA);
金收:REF(L,BARSLAST(HD0)),COLORYELLOW,DOTLINE;
LD0:=CROSS(DEA,DIF);
死收:REF(H,BARSLAST(LD0)),COLOR00FF00,DOTLINE;
买入准备:DRAWICON(CROSS(柱变向价,DIF拐头价),上拐,34);
卖出准备:DRAWICON(CROSS(DIF拐头价,柱变向价),下拐,35);
SBL:=STRCAT(STRCAT(STRCAT(STRCAT(DYBLOCK,HYBLOCK),FGBLOCK),GNBLOCK),ZDBLOCK);
DRAWTEXT_FIX(ISLASTBAR,0.01,0.005,0,SBL),COLORCYAN;
原理解析:
SHORT赋值:12
LONG赋值:26
M赋值:12
DIF赋值:收盘价的SHORT日指数移动平均-收盘价的LONG日指数移动平均
DEA赋值:DIF的M日指数移动平均
MACD:=2*(DIF-DEA)
如果D>DEA返回5否则返回-5
JCSC赋值:(M-1)/(M+1)*DEA/(1-2/(M+1))
{计算出金叉死叉时的DIFF值}
DD:=(MACD/2+(DEA*(M-1)/(M+1)))/(1-2/(M+1))
{计算出明日MACD=MACD时的DIFF值}
DIF拐头价:=(DIF*(SHORT+1)*(LONG+1)-(LONG+1)*(SHORT-1)*C的SHORT日指数移动平均+(SHORT+1)*(LONG-1)*C的LONG日指数移动平均)/(2*((LONG+1)-(SHORT+1)))画绿色,POINTDOT
金死叉价赋值:(JCSC*(SHORT+1)*(LONG+1)-(LONG+1)*(SHORT-1)*C的SHORT日指数移动平均+(SHORT+1)*(LONG-1)*C的LONG日指数移动平均)/(2*((LONG+1)-(SHORT+1))),NODRAW
柱变向价赋值:(DD*(SHORT+1)*(LONG+1)-(LONG+1)*(SHORT-1)*C的SHORT日指数移动平均+(SHORT+1)*(LONG-1)*C的LONG日指数移动平均)/(2*((LONG+1)-(SHORT+1))),画黄色,POINTDOT
如果柱变向价>=D拐头价返回柱变向价否则返回DRAWNULL
如果D拐头价<柱变向价返回DIF拐头价否则返回DRAWNULL
如果D拐头价>=柱变向价返回DIF拐头价否则返回DRAWNULL
ZJ赋值:上拐,COLOR0000FF
HY赋值:金死叉价,COLORFF00FF
IF(ZJ>1日前的ZJ,ZJ,DRAWNULL),画红色, 线宽为2
IF(HY>1日前的HY,HY,DRAWNULL),COLORMAGENTA, 线宽为2,NODRAW
IF(HY<1日前的HY,HY,DRAWNULL), 画蓝色, 线宽为2,NODRAW
当满足条件C>ZJ AND C>O时,在H和C之间画柱状线
当满足条件C>ZJ AND C>O时,在L和O之间画柱状线
当满足条件C>ZJ AND C>O时,在O和C之间画柱状线
当满足条件C>ZJ AND C<=O时,在H和L之间画柱状线
当满足条件C>ZJ AND C<=O时,在O和C之间画柱状线
当满足条件收盘价=ZJ时,在H和L之间画柱状线
当满足条件收盘价
当满足条件C
当满足条件C
当满足条件C
HD0赋值:DIF上穿DEA
输出金收:REF(L,上次HD0距今天数),画黄色,DOTLINE
LD0赋值:DEA上穿DIF
输出死收:REF(H,上次LD0距今天数),COLOR00FF00,DOTLINE
输出买入准备:DRAWICON(柱变向价上穿DIF拐头价,上拐,34)
输出卖出准备:DRAWICON(DIF拐头价上穿柱变向价,下拐,35)
SBL赋值:STRCAT(STRCAT(STRCAT(STRCAT(DYBLOCK,HYBLOCK),FGBLOCK),GNBLOCK),ZDBLOCK)
当满足条件ISLASTBAR时,在横轴0.01纵轴0.005位置书写文字