请老师写一个突破程序的修改 (文华财经WH6赢顺V6.7)

投资者咨询:请老师写一个突破程序的修改 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-5-31 9:33
 当突破20日高点时,发出做多信号,如果不能每天创出新高的话,在20日最高点的基础上每天减去0.1倍ATR。做多入场后按反向2倍ATR来止损出局。
当突破20日最低点时,发出做空信号,如果不能每天创出新低的话,在20日最低点的基础上每天增加0.1倍ATR,做空入场后按反向2倍ATR来止损出局。
技术人员回复
日期:2018-5-31 9:45

需要跟您核实下,

 

以做多为例,买开仓的条件是最高价突破前20日最高或者最高价突破前20日高点减0.1倍的ATR?

 

止损平仓的条件是,最低价下破前20日低点加2倍的ATR?

投资者咨询:请老师写一个突破程序的修改 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-5-31 9:33
 开多,是以突破前20日高点为信号,触发信号后,如果不能每天创出新高,这根最近20日高点以每天0.1倍ATR进行下降。入场后按当时触发
的20日高点的反向2倍ATR为止损。
技术人员回复
日期:2018-5-31 10:26

经核实,您的止损要取到买开信号触发位置的高点,要用到信号记录函数,需要在wh8程序化软件中使用,

 

给您编写适用wh8的模型?

 

 

投资者咨询:请老师写一个突破程序的修改 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-5-31 9:33
 止损怎么还要用到WH8的函数呢?
HH:REF(H-2*ATR,HHVBARS(H,20)),COLORRED,DOT;
LL:REF(L+2*ATR,LLVBARS(L,20)),COLORGREEN,DOT;
我关键是需要前面的不能每天创出新高后的,下降,怎么写
技术人员回复
日期:2018-5-31 10:35

您的止损思路是 “按当时触发的20日高点的反向2倍ATR为止损”,买开信号触发位置的20日高点要通过信号记录函数来取得的,

 

属于程序化思路的,而wh6是看盘软件,所以没有这类函数。

 

如果不能每天创出新高的话,在20日最高点的基础上每天减去0.1倍ATR”  可以参照下面的写法:

 

TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR,26),COLORYELLOW;
HH:=HV(H,20);
LL:=LV(L,20);
HH1:IF(H<HH,HH-0.1*ATR,HH),COLORRED,DOT;
LL1:IF(L<LL,LL+0.1*ATR,LL),COLORGREEN,DOT;

 
投资者咨询:请老师写一个突破程序的修改 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-5-31 9:33
 如果不能创出新高的话,在20日最高点的基础上每天减去0.1倍ATR。这边我可能表达错了。应该是只要条件符合,是在昨天的基础上不断减少0.1倍ATR。
比如:20日最高点是100,ATR:10,如果每天不创新高,那么取值就是今天99,明天98,后天97,大后天96。刚才写的变成了一直在100的基础上减0.1倍ATR了。
请老师再写一下。谢谢
技术人员回复
日期:2018-5-31 11:37

这么试下,

 

TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR,26),COLORYELLOW;
HH:=HV(H,20);
LL:=LV(L,20);
AA1:=VALUEWHEN(CROSS(H<HH,0.5),HH);
SS1:=COUNT(H<HH,BARSLAST(CROSS(H<HH,0.5))+1);
AA2:=VALUEWHEN(CROSS(L<LL,0.5),LL);
SS2:=COUNT(L<LL,BARSLAST(CROSS(L<LL,0.5))+1);
HH1:IF(H<HH,AA1-0.1*ATR*SS1,HH),COLORRED,DOT;
LL1:IF(L<LL,AA2+0.1*ATR*SS2,LL),COLORGREEN,DOT;