航老师请进~ (文华财经wh7睿期)

投资者咨询:航老师请进~ (文华财经wh7睿期)
来源:文华财经  日期:2018-5-12 11:36

 根据您的帖子MACD常见用法的编写介绍 里的背离,我用文华7选股,为何选不出来?

 

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

DEA:EMA(DIFF,9);

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

D:=DIFF;

JC:=CROSS(DIFF,DEA);

SC:=CROSSDOWN(DIFF,DEA);

N1:=BARSLAST(JC)+1;

N2:=BARSLAST(SC)+1;

HH:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值

HH2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(HH,1));//上上次MACD红柱期间合约最大值

MHD:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(MACD,N1));//上次MACD红柱期间MACD最大值

MHD2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(MHD,1));//上上次MACD红柱期间MACD最大值

LL:=VALUEWHEN(CROSS(DIFF,DEA),LLV(L,N2));//上次MACD绿柱期间合约最小值

LL2:=VALUEWHEN(CROSS(DIFF,DEA),REF(LL,1));//上上次MACD绿柱期间合约最小值

MLD:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上次MACD绿柱期间MACD最小值

MLD2:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上上次MACD绿柱期间MACD最小值

A:=CROSSDOWN(DIFF,DEA)&&HH>HH2&&MHD<MHD2;//顶背离

B:=CROSS(DIFF,DEA)&&LL<LL2&&MLD>MLD2;//底背离

DRAWICON(A,MACD,5);

DRAWICON(B,MACD,4);


EXIST(B,30),SELECT;//30个周期内存在条件B,选出

投资者咨询:航老师请进~ (文华财经wh7睿期)
来源:文华财经  日期:2018-5-12 11:36
 顶一下图片点击可在新窗口打开查看
技术人员回复
日期:2018-5-14 15:28
这个公式是用于标注的,选股您这么改下

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

DEA:EMA(DIFF,9);

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

D:=DIFF;

JC:=CROSS(DIFF,DEA);

SC:=CROSSDOWN(DIFF,DEA);

N1:=BARSLAST(JC)+1;

N2:=BARSLAST(SC)+1;

HH:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值

HH2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(HH,1));//上上次MACD红柱期间合约最大值

MHD:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(MACD,N1));//上次MACD红柱期间MACD最大值

MHD2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(MHD,1));//上上次MACD红柱期间MACD最大值

LL:=VALUEWHEN(CROSS(DIFF,DEA),LLV(L,N2));//上次MACD绿柱期间合约最小值

LL2:=VALUEWHEN(CROSS(DIFF,DEA),REF(LL,1));//上上次MACD绿柱期间合约最小值

MLD:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上次MACD绿柱期间MACD最小值

MLD2:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上上次MACD绿柱期间MACD最小值

A:=HH>HH2&&MHD<MHD2;//顶背离

B:=LL<LL2&&MLD>MLD2;//底背离

A||B,SELECT;

投资者咨询:航老师请进~ (文华财经wh7睿期)
来源:文华财经  日期:2018-5-12 11:36

3楼最后一句替换成下面这句

 

 EXIST(B,20),SELECT;//

 

选股结果还是无法选出,请帮忙解决。谢谢!

技术人员回复
日期:2018-5-14 21:41
没有选股结果主要是因为日线背离的条件比较苛刻,20周期内不存在底背离的条件

您可以适当再调整周期参数,或者背离条件来优化
投资者咨询:航老师请进~ (文华财经wh7睿期)
来源:文华财经  日期:2018-5-12 11:36
 我把参数调整到50,还是没有能选出,因此可以断定公式存在问题,毕竟3000多个股票,在2个月内没有发生底背离的股票,是不肯能的。加上最近的走势,前一段时间有很多股票发生了底背离。请帮忙再审查一下公式,最好能运行一下选股看看结果。谢谢!
技术人员回复
日期:2018-5-14 22:58
这样修改一下:

DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD:2*(DIFF-DEA),COLORSTICK;
D:=DIFF;
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
HH:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值
HH2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(HH,1));//上上次MACD红柱期间合约最大值
MHD:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(MACD,N1));//上次MACD红柱期间MACD最大值
MHD2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(MHD,1));//上上次MACD红柱期间MACD最大值
LL:=VALUEWHEN(CROSS(DIFF,DEA),LLV(L,N2));//上次MACD绿柱期间合约最小值
LL2:=VALUEWHEN(CROSS(DIFF,DEA),REF(LL,1));//上上次MACD绿柱期间合约最小值
MLD:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上次MACD绿柱期间MACD最小值
MLD2:=VALUEWHEN(CROSS(DIFF,DEA),REF(MLD,1));//上上次MACD绿柱期间MACD最小值
A:=CROSSDOWN(DIFF,DEA)&&HH>HH2&&MHD<MHD2;//顶背离
B:=CROSS(DIFF,DEA)&&LL<LL2&&MLD>MLD2;//底背离
DRAWICON(A,MACD,5);
DRAWICON(B,MACD,4);

 EXIST(B,50),SELECT;//
投资者咨询:航老师请进~ (文华财经wh7睿期)
来源:文华财经  日期:2018-5-12 11:36

 谢谢,现在能选出股票,就是符合条件的太多了。能不能同时把黄白线也同时加进去限制掉一部分。

 

也就是上面的D值,条件也和上面的MACD一样,比较两个波谷之间的D值,和MACD同时满足。谢谢!

技术人员回复
日期:2018-5-15 8:54
参考:

DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD:2*(DIFF-DEA),COLORSTICK;
D:=DIFF;
JC:=CROSS(DIFF,DEA);
SC:=CROSSDOWN(DIFF,DEA);
N1:=BARSLAST(JC)+1;
N2:=BARSLAST(SC)+1;
HH:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值
HH2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(HH,1));//上上次MACD红柱期间合约最大值
MHD:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(MACD,N1));//上次MACD红柱期间MACD最大值
MHD2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(MHD,1));//上上次MACD红柱期间MACD最大值
RHD:=VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(D,N1));//上次MACD红柱期间D最大值
RHD2:=VALUEWHEN(CROSSDOWN(DIFF,DEA),REF(RHD,1));//上上次MACD红柱期间D最大值

LL:=VALUEWHEN(CROSS(DIFF,DEA),LLV(L,N2));//上次MACD绿柱期间合约最小值
LL2:=VALUEWHEN(CROSS(DIFF,DEA),REF(LL,1));//上上次MACD绿柱期间合约最小值
MLD:=VALUEWHEN(CROSS(DIFF,DEA),LLV(MACD,N2));//上次MACD绿柱期间MACD最小值
MLD2:=VALUEWHEN(CROSS(DIFF,DEA),REF(MLD,1));//上上次MACD绿柱期间MACD最小值
RLD:=VALUEWHEN(CROSS(DIFF,DEA),LLV(D,N2));//上次MACD绿柱期间MACD最小值
RLD2:=VALUEWHEN(CROSS(DIFF,DEA),REF(RLD,1));//上上次MACD绿柱期间MACD最小值

A:=CROSSDOWN(DIFF,DEA)&&HH>HH2&&MHD<MHD2&&RHD<RHD2;//顶背离
B:=CROSS(DIFF,DEA)&&LL<LL2&&MLD>MLD2&&RLD>RLD2;//底背离
DRAWICON(A,MACD,5);
DRAWICON(B,MACD,4);

EXIST(B,50),SELECT;//