MACD进阶版指标公式,提前一天判断MACD金叉

MACD是一种常用的技术分析指标,用于判断价格的趋势和动能,其原理是基于两条指数移动平均线的比较和对价格的平滑处理,MACD金叉是指MACD指标中的快线DIF从下方向上穿过慢线DEA。快线、慢线都是根据收盘价计算出来的,如果想提前一天判断MACD金叉,就要知道明天的收盘价是多少。我们无法预知未来,但是可以根据MACD金叉时的值倒推出明天的收盘价。如果明天的实际收盘价超过我们推算的收盘价,MACD就金叉了。

一、MACD指标的原理

以MACD指标默认参数为例,MACD指标由三个部分构成(如下图):

快线(白线):计算短期(12天)EMA均线与长期(26天)EMA均线之间的差值;

慢线(黄线):计算快线的9天EMA均线;

MACD柱线(红绿柱):计算快线和慢线之间的差值,算出来之后绘制柱状图显示出来。

MACD金叉,快线DIF从下方向上穿过慢线DEA,实际上就是从前一天的DIF<DEA变成当天的DIF>DEA,MACD=(DIF-DEA)*2,MACD从小于0变成大于0,也就是MACD柱线从绿柱变成红柱。

SHORT:=12;

LONG:=26;

MID:=9;

DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:EMA(DIF,MID);

MACD:(DIF-DEA)*2,COLORSTICK;

了解了MACD的原理还不够,无法倒推到收盘价,还需要了解EMA的原理。

二、EMA指标的原理

EMA(指数移动平均)是一种技术分析指标,用于平滑价格数据并识别趋势。它与MA(简单移动平均)相比,更加重视最近的价格数据。

以收盘价为例,周期数为N,EMA的计算公式如下:

今日EMA=今日收盘价*2/(N+1) + 昨日EMA*(N-1)/(N+1)

EMA的原理是通过加权平均的方式,给予最近的价格数据较高的权重,从而能更加敏感地反应价格的变动,这使得EMA能够更快捕捉到趋势的变化,而不会过于受到过去价格的影响。

三、验证EMA计算公式

了解了EMA指标的原理,我们可以用未来函数REFX获取明天的收盘价,来验证计算结果是否正确。

明日EMA(C,12)=明日收盘价*2/(12+1)+今日EMA(C,12)*11/(12+1)

EMA(C,12)*11/13+REFX(C,1)*2/13

明日EMA(C,26)=明日收盘价*2/(26+1)+今日EMA(C,26)*25/(26+1)

EMA(C,26)*25/27-REFX(C,1)*2/27

明日MACD指标公式如下:

DIF:=EMA(C,12)-EMA(C,26);

DEA:=EMA(DIF,9);

MACD:=(DIF-DEA)*2;

DIFX:EMA(C,12)*11/13+REFX(C,1)*2/13-EMA(C,26)*25/27-REFX(C,1)*2/27;

DEAX:EMA(DIF,9)*8/10+DIFX*2/10;

MACDX:(DIFX-DEAX)*2,COLORSTICK;

 通过上图可以看出,明日MACD指标公式相当于提前了一天(上图黄色箭头),计算的结果是一致的,因此计算方法没有问题。此外最后一天的值都是空的(上图中横线处),因为明天的收盘价今天肯定不知道,所以接下来计算金叉时的收盘价。

四、提前一天判断MACD金叉指标公式

把REFX(C,1)换成价格P,我们就是要计算这个P是多少。

金叉MACDX>0,即(DIFX-DEAX)*2>0,换算一下,得到价格P的计算公式:

P:=-(EMA(C,12)*11/13-EMA(C,26)*25/27-EMA(DIF,9))*351/28;

提前一天判断MACD金叉指标公式:

DIF:EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:EMA(DIF,9);

MACD:(DIF-DEA)*2,COLORSTICK;

P:=-(EMA(C,12)*11/13-EMA(C,26)*25/27-EMA(DIF,9))*351/28;

ZF:=(ROUND2(P,2)-C)/C*100;

CZT:=P>ZTPRICE(C,IF(RANGE(FINANCE(3),2,5),0.2,0.1));{涨幅大于涨停价}

CDT:=P<DTPRICE(C,IF(RANGE(FINANCE(3),2,5),0.2,0.1));{跌幅小于跌停价}

SZ1:=STRCAT(STRCAT('明天收盘价大于',CON2STR(P,2)),',');

SZ2:=STRCAT(STRCAT('涨幅大于',CON2STR(ZF,2)),'%');

SZ:=STRCAT(STRCAT(SZ1,SZ2),',MACD金叉');

DRAWTEXT_FIX(ISLASTBAR AND ZF>0,0.78,0,0,SZ),COLORMAGENTA;

XD1:=STRCAT(STRCAT('明天收盘价小于',CON2STR(P,2)),',');

XD2:=STRCAT(STRCAT('跌幅小于',CON2STR(ZF,2)),'%');

XD:=STRCAT(STRCAT(XD1,XD2),',MACD死叉');

DRAWTEXT_FIX(ISLASTBAR AND ZF<0,0.78,0,0,XD),COLORGREEN;

DRAWTEXT_FIX(ISLASTBAR AND ZF>0 AND CZT,0.78,0.12,0,'明天不会金叉'),COLORYELLOW;

DRAWTEXT_FIX(ISLASTBAR AND ZF<0 AND CDT,0.78,0.12,0,'明天不会死叉'),COLORYELLOW;

用沙盘推演来验证一下计算结果(如下面两张图),可以看到结果是正确的,当收盘价大于P时,MACD可以实现金叉。

 

 另外对于计算出的价格P超过了涨跌幅,明显不能实现金叉死叉,上面的公式也能给出提示。

 关注技术Pie,学习更多通达信指标公式编写知识。版权所有,转载请注明出处。

友情提醒:本文仅供学习交流技术指标公式,不构成任何投资建议。投资有风险,入市需谨慎。

猜你喜欢

转载自blog.csdn.net/m0_74754828/article/details/131667120
今日推荐