以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于信号闪烁  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=87259)

--  作者:陈伟明
--  发布时间:2015/11/13 11:44:38
--  关于信号闪烁

前期发现自己其中一个模型信号会出现闪烁现象。而且代码上面检查不出问题。最近发现一个好久以前的帖子,火哥的一个例子如下:


十二、突破模型信号也会消失的一个例子及其处理方法,大家小心。

 

比如,大家常用的四周法则,一般人都是这样写的

 

//4周转向
hh:=ref(hhv(h,20),1);
ll:=ref(llv(l,20),1);

entertime:=time<=143000;

if h>hh then begin//突破高点,平空做多
 sellshort(1,1,limitr,max(o,hh+0.2)+0.6);
 buy(holding=0 and entertime,1,limitr,max(o,hh+0.2)+0.6);
end

if l<ll then begin
 sell(1,1,limitr,min(o,ll-0.2)-0.6);//突破低点,平多做空
 buyshort(holding=0 and entertime,1,limitr,min(o,ll-0.2)-0.6);
end

if time>=150000 then begin//收盘平仓
 sell(1,1,limitr,o);
 sellshort(1,1,limitr,o);
end

 

咋一看,没啥问题。其实信号也是会消失的......................


请问:我仔细看过代码,发现不出哪个地方会导致信号闪烁,请老师指出谢谢。(H在K线中已经出现,这只能更加高,而不会缩小,而且HH在当条K线也不会改变,为何会闪烁呢?L同理,想不明白。)


--  作者:jinzhe
--  发布时间:2015/11/13 13:14:33
--  

同一根k线h>hh和l<ll同时满足时会出现的情况

处理办法阿火后面也写了


--  作者:陈伟明
--  发布时间:2015/11/13 15:18:51
--  

 火哥后面的解答我不是很明白。我节选了其中一部分,如下:


goto skip@;

end

if holding>0 and l<ll then begin

 sell(1,1,limitr,min(o,ll-0.2)-0.6);//先是平仓

 buyshort(1,1,limitr,min(o,ll-0.2)-0.6);

end

skip@;

//注意做多条件和做空条件同时成立的处理方法,这里采用20周期均线向上才做多,向下才做空
if holding=0 and h>hh and ref(c,1)>ref(c,20) and entertime then buy(1,1,limitr,max(o,hh+0.2)+0.6);//后开仓
if holding=0 and l<ll  and ref(c,1)<ref(c,20) and entertime then buyshort(1,1,limitr,min(o,ll-0.2)-0.6);//后开仓
if time>=150000 then begin
 sell(1,1,limitr,o);
 sellshort(1,1,limitr,o);
end



1.其中 GO TO SKIP@ 不知道什么作用。
2. 对于同时成立的处理方法,我看代码也不是用均线,而是用红色部分代码。

--  作者:jinzhe
--  发布时间:2015/11/13 15:24:45
--  

1.满足条件后跳过,不再处理后面的反向开仓

2.这是新加的一个条件,在H>HH和L<LL之外另加了一个,避免同时开多开空在一根k线上同时满足


--  作者:陈伟明
--  发布时间:2015/11/13 15:27:52
--  
原来这样,谢谢解答。