我是新手,跪求版主及高手们帮忙看看,该策略为日内震荡模型,开空、开多后分批止盈,未平仓的收盘前平仓。
现在的问题 1、当天先出现开多信号,图标就显示开多,开空信号出现后未出现开空,反之先出现开空信号,图标就显示开空,开多信号出现后未出现开多,
我希望出现开多信号就开多,出现开空就开空,只要有信号两者都开仓。
2、开空后分批止盈好像未表现出来,如何才能实现?
//5分钟图表交易系统
INPUT:SS(3,1,100,1);
VARIABLE:手数=SS,KCJ=0,ZS=0,KCJ1=0,zs1=0;
entertime:=time>091000 AND time<144000;exittime:=time>=145500;
//交易条件
开多条件
开空条件
//交易系统
//开多
IF entertime THEN BEGIN
BUY(开多条件,SS,MARKET);
KCJ:=O;
ZS:=O-10;
HL:=H;//记录开多后的最高点
BUYSHORT(开空条件,SS,MARKET);
KCJ1:=O;
ZS1:=O+10;
HL1:=L;//记录开空后的最低点
END
//止损
if holding>0 and l<zs then sell(1,0,limitr,zs-1*mindiff);
if holding<0 and h>zs1 then sellshort(1,0,limitr,zs1+1*mindiff);
//分批止盈
if holding<>0 then begin
if holding>0 and h>=hl then begin
hl:=h;
if hl>kcj+10 then begin
zs:=hl-10;
sell(holding=3,1,limitr,kcj+10);
sell(holding=2 and hl>kcj+15,1,limitr,kcj+15);
sell(holding=1 and hl>kcj+20,1,limitr,kcj+20);
end
end
if holding<0 and l<=hl1 then begin
hl1:=l;
if hl1<kcj1-10 then begin
zs1:=hl1+10;
sellshort(holding=-3,1,limitr,kcj1-10);
sellshort(holding=-2 and hl1<kcj1-15,1,limitr,kcj1-15);
sellshort(holding=-1 and hl1<kcj1-20,1,limitr,kcj1-20);
end
end
END
//日内平仓
IF exittime THEN BEGIN
收盘平多:SELL(1,HOLDING,MARKET);
收盘平空:SELLSHORT(1,HOLDING,MARKET);
END
//其他
当前持仓:HOLDING,LINETHICK0;
当前资产:ASSET,NOAXIS,LINETHICK0;
见图,下面为相应的技术指标
1.图表不能对锁,也就是说不能做到在有多仓的情况下开空仓,或者是在有空仓的情况下多仓
2.图上的不是分批止盈?连续两个平多信号,一次平一手,这个不是分批?
1.没有,这个是图表原理,不能对锁
2.看到图上面的小字了没?平空都是收盘前平仓,说明平空条件在交易时间内不满足,所以都在收盘前平仓了
条件肯定是不成立的,做程序化不要凭直觉来做,给个调试的方法,看看调试结果是不是不满足
http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=1246&replyID=&skin=1
把条件调试输出一下,就能清楚看出在你认为条件满足的情况下,这个条件到底是不是满足
贴出来