[求助]如何标记macd出现金叉和死叉时标记在K线上? (文华财经WH8赢智V8.2)

投资者咨询:[求助]如何标记macd出现金叉和死叉时标记在K线上? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-27 16:32

定义布林带上轨UP=20日均线+2.5*SD (SD是过去20日收市价的标准差),下轨down=20日均线-2.5*SD
如何统计过去3年,收盘价有多少次在布林带之外?若突破布林带,即上轨或下轨则标记显示,函数如下,测试的历史数据中以最后一次突破(无论上轨或下轨)作为标记起点,

之后macd指标出现金叉或死叉则标记数字,即第一次记1,第二次记2,但遇到3的倍数(包含3),用另一种颜色标记,直到下一次突破点,则重新开始以新的突破点为起点做标记,

麦语言如何实现?

 

MID:MA(CLOSE,20);//中轨
TMP2:=STD(CLOSE,20);
TOP:MID+2.5*TMP2;//上轨
BOTTOM:MID-2.5*TMP2;//下轨
AA:=IF(C>TOP||C<BOTTOM,1,0);
NA:SUM(AA,BARPOS);//在外个数


DRAWICON(CROSS(C,TOP),C,1);
DRAWICON(CROSSDOWN(C,BOTTOM),C,2);


N1:=BARSLAST(CROSS(C,TOP))+1;
N2:=BARSLAST(CROSSDOWN(C,BOTTOM))+1;
BB:=IF(CROSS(N1<=5&&C<TOP&&C>BOTTOM,0.5)||CROSS(N2<=5&&C<TOP&&C>BOTTOM,0.5),1,0);

 
技术人员回复
日期:2018-11-27 16:38
您是想要统计有多少次穿过还是有多少根收盘价在布林上下轨外的k线呢?

在进行macd标记时您详细说明一下

是要在最后一次收盘价穿过布林后开始计数 不区分上穿和下穿吗?

金叉死叉是分开计数还是统一计数呢?金1 死2 金3 死4 还是 金1 死1 金2 死2呢  
投资者咨询:[求助]如何标记macd出现金叉和死叉时标记在K线上? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-27 16:32
 

只是标记收盘价在布林上下轨外的K线,在K线图上显示。

进行macd标记时, 是要在最后一次收盘价穿过布林后开始计数,不区分上穿和下穿,

金叉死叉是统一计数,不分开。如金1,死2,金3,死4。

但是3的倍数(包含3)用不同颜色标记,并且附加向上或向下的箭头,3的倍数(包含3)若是金叉,则标记向上的箭头,死叉则标记向下的箭头。

麦语言如何实现?

技术人员回复
日期:2018-11-28 10:29
这样:

MID:MA(CLOSE,20);//中轨
TMP2:=STD(CLOSE,20);
TOP:MID+2.5*TMP2;//上轨
BOTTOM:MID-2.5*TMP2;//下轨
AA:=IF(C>TOP||C<BOTTOM,1,0);
NA:SUM(AA,BARPOS);//在外个数
DIFF :EMA(CLOSE,12) - EMA(CLOSE,26),LINETHICK1;
DEA  : EMA(DIFF,9),LINETHICK1;
MACD:2*(DIFF-DEA),COLORSTICK;

J:=CROSS(DIFF,DEA);
S:=CROSSDOWN(DIFF,DEA);


DRAWNUMBER(C>TOP,H,COUNT(C>TOP,BARPOS),0,COLORRED);
DRAWNUMBER(C<BOTTOM,L,COUNT(C<BOTTOM,BARPOS),0,COLORYELLOW);

AX:CROSS(BACKSET(ISLASTBAR,BARSLAST(CROSS(C,TOP)||CROSSDOWN(C,BOTTOM))+1),0.5),NODRAW;
VERTLINE(AX,COLORRED);
DRAWNUMBER(BARSLAST(AX)>0&&(J||S),H,IF(MOD(COUNT(J||S,BARSLAST(AX)),3)<>0,COUNT(J||S,BARSLAST(AX)),NULL),0,COLORYELLOW);
DRAWNUMBER(BARSLAST(AX)>0&&(J||S),H,IF(MOD(COUNT(J||S,BARSLAST(AX)),3)=0,COUNT(J||S,BARSLAST(AX)),NULL),0,COLORRED);
DRAWICON(BARSLAST(AX)>0&&J&&MOD(COUNT(J||S,BARSLAST(AX)),3)=0,L,4);
DRAWICON(BARSLAST(AX)>0&&S&&MOD(COUNT(J||S,BARSLAST(AX)),3)=0,L,5);