macd背离 (文华财经WH8赢智V8.2)

投资者咨询:macd背离 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-1 11:12
 老师请问如何读取macd金叉及死叉处的数值。以及金叉,死叉时的价格?
我想这样定义背离:macd红柱时死叉的数值要是比金叉的高,并且此时死叉时的价格比金叉的价格低,就是顶背离
                         macd绿柱时金叉得数值要比死叉高,此时金叉的价格比死叉低,底背离
技术人员回复
日期:2018-8-1 11:28
参考

DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
MACD:2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
CJ:=VALUEWHEN(CROSS(DIFF,DEA),C);//金叉价格
CS:==VALUEWHEN(CROSSDOWN(DIFF,DEA),C);//死叉价格
CMJ:=VALUEWHEN(CROSS(DIFF,DEA),MACD);
CMS:=VALUEWHEN(CROSS(DIFF,DEA),-1*MACD);
A:=CROSSDOWN(DIFF,DEA)&&CMJ<CMS&&C<CJ;//顶背离
B:=CROSS(DIFF,DEA)&&C<CS&&CMJ>CMS;//底背离
DRAWICON(A,MACD,5);
DRAWICON(B,MACD,4);
投资者咨询:macd背离 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-1 11:12
SETDEALPERCENT(20);
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MAX(TR,26);

DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
MACD:2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
CJ:=VALUEWHEN(CROSS(DIFF,DEA),C);//金叉价格
CS:=VALUEWHEN(CROSSDOWN(DIFF,DEA),C);//死叉价格
CMJ:=VALUEWHEN(CROSS(DIFF,DEA),MACD);//金叉MACD值
CMS:=VALUEWHEN(CROSS(DIFF,DEA),-1*MACD);//死叉MACD值
A:=(CMS-CMJ>0 && CS-CJ<0) OR (CMS-CMJ<0 && CS-CJ>0);
AA:=(CROSSDOWN(DIFF,DEA) && A);//顶背离
B:=(CMS-CMJ>0 && CS-CJ<0) OR (CMS-CMJ<0 && CS-CJ>0);
BB:=(CROSS(DIFF,DEA) && (CMS-CMJ)/(CS-CJ)<0);//底背离
AA,SK;
BB,BK;
AA1:C-SKPRICE>1.5*ATR OR (C-SKLOW>=2*ATR);
BB1:(BKHIGH-C>=2*ATR) OR BKPRICE-C>1.5*ATR;
ISLASTSK && AA1,BP;
ISLASTBK && BB1,SP;
AUTOFILTER;



图片点击可在新窗口打开查看老师。我用了上面的程序进行回测螺纹指数。想问一下图中标注的信号不满足条件该如何去掉?
 
技术人员回复
日期:2018-8-1 16:22
没有明白您说的不满足指的是什么,请您具体说下


投资者咨询:macd背离 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-1 11:12
 这个位置的cs-cj>0, cms-cmj>0,不满足我的背离定义
技术人员回复
日期:2018-8-1 16:36
 macd红柱时死叉的数值要是比金叉的高,并且此时死叉时的价格比金叉的价格低,就是顶背离
                         macd绿柱时金叉得数值要比死叉高,此时金叉的价格比死叉低,底背离

CJ:=VALUEWHEN(CROSS(DIFF,DEA),C);//金叉价格
CS:=VALUEWHEN(CROSSDOWN(DIFF,DEA),C);//死叉价格
CMJ:=VALUEWHEN(CROSS(DIFF,DEA),MACD);//金叉MACD值
CMS:=VALUEWHEN(CROSS(DIFF,DEA),-1*MACD);//死叉MACD值

死叉为例,当前死叉,MACD值小于0 如果要和之前金叉MACD对比,必须取正值

也就是CMS>CMJ,几个正常对比C<CJ,这是2楼给您条件中书写的,金叉同理,这样看来和您1文字思路是吻合的

您3楼模型是自选修改的,我们并不知道您具体思路,如果要修改您具体量化完整思路,说明不对的地方具体是什么
投资者咨询:macd背离 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-1 11:12
 老师,如果用您写的模型存在一个问题就是macd的数值比较。因为会有macd金叉死叉同为正值,或者同为负值。这种情况能否也考虑在内呢?
技术人员回复
日期:2018-8-2 9:18
您可以给出MACD金叉时 MACD小于0的截图,您肯定是找不到的

因为金叉时 DIFF>DEA,MACD必然是大于0的,不存在小于0的情况
 
投资者咨询:macd背离 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-1 11:12

 

图片点击可在新窗口打开查看能否改成这样子:要是穿越0轴的macd。红柱就是A:=+1,sc-jc>0  就是+1,sc-jc<0 就是-1.相乘要是-1就是顶背离。绿柱B:=-1.sc-jc>0, -1;sc-jc<0,+1;相乘要是-1就是底背离。要是macd没穿越0轴。就用数值差进行比较。

技术人员回复
日期:2018-8-2 10:03
 DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
MACD:2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
CJ:=VALUEWHEN(CROSS(DIFF,DEA),C);//金叉价格
CS:==VALUEWHEN(CROSSDOWN(DIFF,DEA),C);//死叉价格
Q:=CS-CJ;
A:=Q*MACD<0&&JC&&DIFF>0;//顶背离
B:=Q*MACD<0&&SC&&DIFF<0;//底背离
DRAWICON(A,MACD,5);
DRAWICON(B,MACD,4);