DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);
DEA : EMA(DIFF,9);
MACD:=2*(DIFF-DEA);
JC:=CROSS(DIFF,DEA);
SC:=CROSS(DEA,DIFF);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
HH:=BACKSET(REFX(SC,1) or ISLASTBAR and MACD>0,HHVBARS(H,N1)+1);
LL:=BACKSET(REFX(JC,1) or ISLASTBAR and MACD<0,LLVBARS(L,N2)+1);
DRAWICON(JC and DEA>0 and COUNT(SC,BARSLAST(DEA<=0))=2,0,'ICO130'),VALIGN0;
DRAWICON(SC and DEA<0 and COUNT(JC,BARSLAST(DEA>=0))=2,0,'ICO131'),VALIGN2;
还有一个小问题,用DIFF和DEA金叉死叉在主图上绘制波段,当DEA大于0时,在波段的低点绘制支撑线;当DEA小于0时,在波段的高点绘制压力线
注:支撑压力线用虚线呈现,不要用实线
如图所示,在金字塔上这种公式怎么写

此主题相关图片如下:qq浏览器截图20200511155419.png

从金叉位置的最低价上画到 死叉 或者是dea<=0
从死叉位置的最高价画到 金叉或者dea>0
是这样的思路?
不要画这么长,用MACD的diff和dea的金叉死叉来绘制波段,如图所示,当DEA大于0时,在每一个上升波段的最低点画一根支撑线;反之当当DEA小于0时,在每一个下降波段的最高点画一根压力线。波段的最高最低点以最高最低价来绘制,而不是收盘价。支撑压力线横向绘制3个单位的长度就够了
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26),COLORRED;
DEA := EMA(DIFF,9);
MACD:=2*(DIFF-DEA),COLORSTICK;
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
HH:=BACKSET(REFX(SC,1)||ISLASTBAR&&MACD>0,HHVBARS(H,N1)+1);
LL:=BACKSET(REFX(JC,1)||ISLASTBAR&&MACD<0,LLVBARS(L,N2)+1);
DRAWLINE1(CROSS(LL,0.001),L,CROSS(HH,0.001),H,0),COLORLIGHTRED,LINETHICK1;
DRAWLINE1(CROSS(HH,0.001),H,CROSS(LL,0.001),L,0),RGB(0,64,0),LINETHICK1;
DRAWSL(CROSS(HH,0.001)&&DEA<0,H,0,5,0,COLORGREEN),DOT;
DRAWSL(CROSS(LL,0.001)&&DEA>0,L,0,5,0,COLORRED),DOT;
这个是文华财经的源码,您可以参照修改一下,用到金字塔上
有现成的直接改造下就行,省的我写了。
//DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);
//DEA : EMA(DIFF,9);
//MACD:=2*(DIFF-DEA);
//
//JC:CROSS(DIFF,DEA);
//SC:CROSS(DEA,DIFF);
//N1:=BARSLAST(JC)+1;
//N2:=BARSLAST(SC)+1;
//
//DRAWLINE(JC and dea<=0,L,sc or dea>0,ref(L,N1),COLORRED);
//DRAWLINE(sc and dea>0,h,jc or dea<=0,ref(h,N2),COLORRED);
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26),COLORRED;
DEA := EMA(DIFF,9);
MACD:=2*(DIFF-DEA),COLORSTICK;
JC:=CROSS(DIFF,DEA);
SC:=CROSS(DEA,DIFF);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
HH:=BACKSET(REFX(SC,1) or ISLASTBAR and MACD>0,HHVBARS(H,N1)+1);
LL:=BACKSET(REFX(JC,1) or ISLASTBAR and MACD<0,LLVBARS(L,N2)+1);
DRAWLINE(CROSS(LL,0.001),L,CROSS(HH,0.001),H,0,COLORRED),,LINETHICK1;
DRAWLINE(CROSS(HH,0.001),H,CROSS(LL,0.001),L,0),LINETHICK1;
DRAWSL(CROSS(HH,0.001) and DEA<0,H,0,5,0,COLORGREEN,1,vtDOT);
DRAWSL(CROSS(LL,0.001) and DEA>0,L,0,5,0,COLORRED,1,vtDOT);

此主题相关图片如下:temp.png
