-- 作者:jckk
-- 发布时间:2015/3/10 13:31:23
-- 请老师帮忙修改一下...
请老师帮忙先把下面策略的加仓去除了,谢谢!
input:inb(20,1,500,1),outb(10,1,500,1),risk(2,0,10,0.1); variable:times=0,i=0,n=0; rn:=ema(ref(tr,1),20); n:=valuewhen(holding=0,rn); rh:=ref(h,1); rl:=ref(l,1); h1:llv(rh,inb); h2:hhv(rl,outb),linedot; l1:hhv(rl,inb); l2:llv(rh,outb),linedot; lotst:asset*risk*0.01/(n*2*multiplier),linethick0; lots:=if(risk=0,1,lotst); //如果risk取0,表示固定开1手 tbc:=h<>l;//判断是否停板 partline(holding>0,enterprice-2*n); if barpos<inb+1 then exit; if holding=0 and tbc then //不是停板才可以交易 begin if h>h1 AND time<150000 then //开多 begin buyp:=max(o,h1); buy(1,lots,limitr,buyp); times:=1; while h>enterprice+n*0.5 and times<4 do begin buyp:=max(o,enterprice+n*0.5); buy(1,lots,limitr,buyp); times:=times+1; end;//连续开仓 end;//开多结束 else if l<l1 AND time<150000 then //开空 begin sellp:=min(o,l1); buyshort(1,lots,limitr,sellp); times:=1; while l<enterprice-n*0.5 and times<4 do begin sellp:=min(o,enterprice-n*0.5); buyshort(1,lots,limitr,sellp); times:=times+1; end;//连续开仓 end; end;//holding=0 if holding>0 and tbc then //已有多仓 begin exitlongp:=max(enterprice-2*n,l2); if l<exitlongp and enterbars<>0 then //出场 begin exitp:=min(o,exitlongp); sell(1,0,limitr,exitp); times:=0; end;//出场 else begin while h>enterprice+n*0.5 and times<4 do //开多 begin buyp:=max(o,enterprice+n*0.5); buy(1,lots,limitr,buyp); times:=times+1; end;//连续开仓 end;//else end;//holding>0 if holding<0 and tbc then //已有空仓 begin exitlongp:=min(enterprice+2*n,h2); if h>exitlongp and enterbars<>0 then //出场 begin exitp:=max(o,exitlongp); sellshort(1,0,limitr,exitp); times:=0; end;//出场 else begin while l<enterprice-n*0.5 and times<4 do //开多 begin sellp:=min(o,enterprice-n*0.5); buyshort(1,lots,limitr,sellp); times:=times+1; end;//连续开仓 end;//else end;//holding<0 //收盘前平仓 sell(time>151000 and holding>0,holding,market); sellshort(time>151000 and holding<0,holding,market);
|
-- 作者:jinzhe
-- 发布时间:2015/3/10 13:37:18
--
input:inb(20,1,500,1),outb(10,1,500,1),risk(2,0,10,0.1); variable:times=0,i=0,n=0; rn:=ema(ref(tr,1),20); n:=valuewhen(holding=0,rn); rh:=ref(h,1); rl:=ref(l,1); h1:llv(rh,inb); h2:hhv(rl,outb),linedot; l1:hhv(rl,inb); l2:llv(rh,outb),linedot; lotst:asset*risk*0.01/(n*2*multiplier),linethick0; lots:=if(risk=0,1,lotst); //如果risk取0,表示固定开1手 tbc:=h<>l;//判断是否停板 partline(holding>0,enterprice-2*n); if barpos<inb+1 then exit; if holding=0 and tbc then //不是停板才可以交易 begin if h>h1 AND time<150000 then //开多 begin buyp:=max(o,h1); buy(1,lots,limitr,buyp); times:=1; while h>enterprice+n*0.5 and times<4 do begin buyp:=max(o,enterprice+n*0.5); buy(1,lots,limitr,buyp); times:=times+1; end;//连续开仓 end;//开多结束 else if l<l1 AND time<150000 then //开空 begin sellp:=min(o,l1); buyshort(1,lots,limitr,sellp); times:=1; while l<enterprice-n*0.5 and times<4 do begin sellp:=min(o,enterprice-n*0.5); buyshort(1,lots,limitr,sellp); times:=times+1; end;//连续开仓 end; end;//holding=0 if holding>0 and tbc then //已有多仓 begin exitlongp:=max(enterprice-2*n,l2); if l<exitlongp and enterbars<>0 then //出场 begin exitp:=min(o,exitlongp); sell(1,0,limitr,exitp); times:=0; end;//出场
end;//holding>0 if holding<0 and tbc then //已有空仓 begin exitlongp:=min(enterprice+2*n,h2); if h>exitlongp and enterbars<>0 then //出场 begin exitp:=max(o,exitlongp); sellshort(1,0,limitr,exitp); times:=0; end;//出场
end;//holding<0 //收盘前平仓 sell(time>151000 and holding>0,holding,market); sellshort(time>151000 and holding<0,holding,market);
|