能否帮助写出产生两根背离线段的代码 (文华财经WH6赢顺V6.7)

投资者咨询:能否帮助写出产生两根背离线段的代码 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2019-5-10 11:28

  

如图的交易系统,能否帮助写出产生两根背离线段的代码,谢谢!!

 

图片点击可在新窗口打开查看
技术人员回复
日期:2019-5-10 11:34
编写需要量化思路,背离的条件需要您具体定义一下


比如是绿柱期间的最低价比较还是死叉的时刻最低价的比较等等
投资者咨询:能否帮助写出产生两根背离线段的代码 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2019-5-10 11:28

 程序产生了背离概念,但是缺少线段指示:

 

DIFF:EMA(C,12) - EMA(C,26),NOTEXT,COLORWHITE;
DEA:EMA(DIFF,9),DOT,NOTEXT,COLORYELLOW;
MACD:2*(DIFF-DEA),NOTEXT,COLORSTICK;

JC:=CROSS(DIFF,DEA);//定义上穿
SC:=CROSSDOWN(DIFF,DEA);//定义下穿
N1:BARSLAST(JC)+1,PRECIS0,NODRAW;//
N2:=BARSLAST(SC)+1;//
HH:VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1)),PRECIS0,NODRAW;//上次MACD红柱期间合约最大值
//HHB:BARSLAST(HH),PRECIS0,NODRAW;//上一次条件COND成立到当前的周期数
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);

 

MACD画出 DIFF(快线)峰谷点线段

K线图上,顶背离、底背离都使用收盘价C画出线段。


技术人员回复
日期:2019-5-10 13:53
参考:

DIFF:=EMA(C,12) - EMA(C,26),NOTEXT,COLORWHITE;
DEA:=EMA(DIFF,9),DOT,NOTEXT,COLORYELLOW;
MACD:=2*(DIFF-DEA),NOTEXT,COLORSTICK;

JC:=CROSS(DIFF,DEA);//定义上穿
SC:=CROSSDOWN(DIFF,DEA);//定义下穿
N1:BARSLAST(JC)+1,PRECIS0,NODRAW;//
N2:=BARSLAST(SC)+1;//
HH:VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1)),PRECIS0,NODRAW;//上次MACD红柱期间合约最大值
//HHB:BARSLAST(HH),PRECIS0,NODRAW;//上一次条件COND成立到当前的周期数
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;//底背离
DRAWLINE3(A,REF(C,HHVBARS(H,N1)),HHVBARS(H,N1),A,REF(C,REF(HHVBARS(H,N1),SUMBARS(SC,2))+SUMBARS(SC,2)),REF(HHVBARS(H,N1),SUMBARS(SC,2))+SUMBARS(SC,2),0);
DRAWLINE3(B,REF(C,LLVBARS(L,N2)),LLVBARS(L,N2),B,REF(C,REF(LLVBARS(L,N2),SUMBARS(JC,2))+SUMBARS(JC,2)),REF(LLVBARS(L,N2),SUMBARS(JC,2))+SUMBARS(JC,2),0);