老师,发生低背离时,柱体面积要求接近于0或小于前期(蓝色做空能量值)几十倍,或是正值(做多能量值),平掉空单开多;顶背离时,柱体面积要求接近于0或小于前值几十倍,或是负做空能量值,平掉多单开空。帮我修改一下,谢谢!
MA70 :MA(C, 70);
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA : =EMA(DIFF,9);
MACD := 2*(DIFF-DEA);
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;
A,SPK;
B,BPK;
DIFF>DEA,BP;
DIFF<DEA,SP;
AUTOFILTER;
DRAWICON(A,H,1);
DRAWICON(B,L,2);//背离标记,可删除
分析后回复
参考:
N:=10;//倍数可以自己修改
MA70 :MA(C, 70);
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA : =EMA(DIFF,9);
MACD := 2*(DIFF-DEA);
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;
NN:=REF(BARSLAST(CROSS(MACD,0)||CROSSDOWN(MACD,0)),1)+1;
MJ:=REF(ABS(SUM(MACD,NN+1)),1);
RMJ:=REF(REF(ABS(SUM(MACD,NN+1)),1),NN);
COND:=MJ<RMJ/N;
A&&COND,SPK;
B&&COND,BPK;
DIFF>DEA,BP;
DIFF<DEA,SP;
AUTOFILTER;
DRAWICON(A,H,1);
DRAWICON(B,L,2);//背离标记,可删除


