以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  [交易系统]R-Breaker  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=9038)

--  作者:z7c9
--  发布时间:2011/11/18 22:38:44
--  [交易系统]R-Breaker

图片点击可在新窗口打开查看

 

runmode:0;

input:notbef(090000);
input:notaft(145500);
input:f1(0.35);
input:f2(0.07);
input:f3(0.25);
input:myreverse(1);
input:rangemin(0.2);
input:xdiv(3);

variable:ssetup=0;
variable:bsetup=0;
variable:senter=0;
variable:benter=0;
variable:bbreak=0;
variable:sbreak=0;
variable:ltoday=0;
variable:hitoday=999999;
variable:startnow=0;
variable:div=0;
variable:rfilter=false;

i_reverse:=myreverse*(callstock(stklabel,vtopen,6,0)/100);
i_rangemin:=rangemin*(callstock(stklabel,vtopen,6,0)/100);

if barpos=1 then begin
 startnow:=0;
 div:=max(xdiv,1);
end

hh:=ref(hitoday,1);
cc:=ref(close,1);
ll:=ref(ltoday,1);

if date>ref(date,1) then begin
 startnow:=startnow+1;
 
 ssetup:=hh+f1*(cc-ll);
 senter:=((1+f2)/2)*(hh+cc)-f2*ll;
 benter:=((1+f2)/2)*(ll+cc)-f2*hh;
 bsetup:=ll-f1*(hh-cc);
 bbreak:=ssetup+f3*(ssetup-bsetup);
 sbreak:=bsetup-f3*(ssetup-bsetup);
 
 hitoday:=high;
 ltoday:=low;
 
 rfilter:=hh-cc>=rangemin;
end

if high>hitoday then hitoday:=high;
if low<ltoday then ltoday:=low;

if time>=notbef and time<notaft and startnow>=2 and rfilter then begin
 if hitoday>=ssetup and holding>=0 then begin
  if low<=senter+(hitoday-ssetup)/div then begin
   sell(1,holding,limitr,senter+(hitoday-ssetup)/div);
   sellshort(1,1,limitr,senter+(hitoday-ssetup)/div);
  end 
 end
 
 if ltoday<=bsetup and holding<=0 then begin
  if high>=benter-(bsetup-ltoday)/div then begin
   if high>=benter-(bsetup-ltoday)/div then begin
    sellshort(1,holding,limitr,benter-(bsetup-ltoday)/div);
    buy(1,1,limitr,benter-(bsetup-ltoday)/div);
   end
  end
 end
 
 if holding<0 then begin
  if high-enterprice>=i_reverse then
   sellshort(1,enterprice+i_reverse);
 end
 
 if holding>0 then begin
  if enterprice-low>=i_reverse then
   sell(1,enterprice-i_reverse);
 end
 
 if holding=0 then begin
  if high>=bbreak then
   buy(1,bbreak);
 end
 
 if holding=0 then begin
  if low<=sbreak then
   sellshort(1,sbreak);
 end
end

if time>=notaft then begin
 if holding<0 then
  sellshort(1,holding,limitr,open);
  
 if holding>0 then
  sell(1,holding,limitr,open); 
end

盈亏:asset-500000,noaxis,coloryellow,linethick2;


--  作者:newbasic
--  发布时间:2011/11/20 8:48:30
--  

什么周期?


--  作者:淡定688
--  发布时间:2011/11/20 22:23:23
--  
非常感谢z7c9版主!
--  作者:yin8jun
--  发布时间:2012/6/12 13:54:44
--  

rb强大


--  作者:carl9186
--  发布时间:2012/6/25 17:24:06
--  

if holding=0 then begin
if high>=bbreak then
buy(1,bbreak);
end

if holding=0 then begin
if low<=sbreak then
sellshort(1,sbreak);
end
end

 

条件有问题,会产生不断的开平仓  >= 改为 >  把 <=改为<   现象消失, 不知符合愿意否?


--  作者:疾风游侠
--  发布时间:2012/8/3 1:50:53
--  

这帖子没人回啊?是有这个问题啊

 


--  作者:Jamselizj
--  发布时间:2012/8/9 17:16:20
--  
 if hitoday>=ssetup and holding>=0 then begin//这里错误,应该是high
  if low<=senter+(hitoday-ssetup)/div then begin
   sell(1,holding,limitr,senter+(hitoday-ssetup)/div);
   sellshort(1,1,limitr,senter+(hitoday-ssetup)/div);
  end 
 end
 
 if ltoday<=bsetup and holding<=0 then begin//这里错误,应该是low
  if high>=benter-(bsetup-ltoday)/div then begin
   if high>=benter-(bsetup-ltoday)/div then begin//重复了
    sellshort(1,holding,limitr,benter-(bsetup-ltoday)/div);
    buy(1,1,limitr,benter-(bsetup-ltoday)/div);
   end
  end
 end
这样修改后,B-breaker就完善了。否则会出现锁仓的bug。
--  作者:jzts
--  发布时间:2012/9/28 23:46:42
--  

公式里定义了

hitoday:=high;
ltoday:=low;

 

还会出现您说的问题吗???


--  作者:jzts
--  发布时间:2012/9/28 23:48:05
--  

公式里定义了

hitoday:=high;
ltoday:=low;

还会出现您说的问题吗???

 
以下是引用Jamselizj在2012-8-9 17:16:20的发言:
 if hitoday>=ssetup and holding>=0 then begin//这里错误,应该是high
  if low<=senter+(hitoday-ssetup)/div then begin
   sell(1,holding,limitr,senter+(hitoday-ssetup)/div);
   sellshort(1,1,limitr,senter+(hitoday-ssetup)/div);
  end 
 end
 
 if ltoday<=bsetup and holding<=0 then begin//这里错误,应该是low
  if high>=benter-(bsetup-ltoday)/div then begin
   if high>=benter-(bsetup-ltoday)/div then begin//重复了
    sellshort(1,holding,limitr,benter-(bsetup-ltoday)/div);
    buy(1,1,limitr,benter-(bsetup-ltoday)/div);
   end
  end
 end
这样修改后,B-breaker就完善了。否则会出现锁仓的bug。